SORU
30 Temmuz 2010, Cuma


Set Colorbar matplotlib Aralığı

Aşağıdaki kodu var:

import matplotlib.pyplot as plt

cdict = {
  'red'  :  ( (0.0, 0.25, .25), (0.02, .59, .59), (1., 1., 1.)),
  'green':  ( (0.0, 0.0, 0.0), (0.02, .45, .45), (1., .97, .97)),
  'blue' :  ( (0.0, 1.0, 1.0), (0.02, .75, .75), (1., 0.45, 0.45))
}

cm = m.colors.LinearSegmentedColormap('my_colormap', cdict, 1024)

plt.clf()
plt.pcolor(X, Y, v, cmap=cm)
plt.loglog()
plt.xlabel('X Axis')
plt.ylabel('Y Axis')

plt.colorbar()
plt.show()

Yani bu 'v' eksenleri X vs, belirtilen colormap kullanarak Y. değerleri bir grafik oluşturur X ve Y eksenleri mükemmel, ama colormap v. colormap 0 ve 1 arasında değişiyor zorlamak istiyorum min ve max arasında yayılır.

Kullanarak düşündüm:

plt.axis(...)

Eksen aralıklarını ayarlamak için, ama bu sadece min ve max X bağımsız değişkenleri ve Y, colormap değil alır.

Düzenleme:

Açıklık getirmek için, bakalım değişen bir grafik (0 ... 0.3), ve olan değerleri başka bir grafik (0.2 ... 0.8) var.

Hem grafikleri, colorbar aralığı (0 ... 1) istiyorum. Hem grafikleri, renk bu dizi aynı yukarıda cdict tam kapsamlı (hem grafikleri çok 0.25 aynı renk olacak) kullanarak olmak istiyorum. 0.3 ve 1.0 arasında ilk grafikte, tüm renkler grafik özelliği olmayacak, ama colourbar içinde tarafındaki anahtarı olacaktır. Diğer, 0.2 ve 0.8 arasında 0 ve 1 arasındaki tüm renkler grafikte özellik değil, ama yanındaki colourbar olacak.

CEVAP
31 Temmuz 2010, CUMARTESİ


vmin vmax kullanarak güçlerini renk aralığı. İşte size bir örnek:

alt text

import matplotlib as m
import matplotlib.pyplot as plt
import numpy as np

cdict = {
  'red'  :  ( (0.0, 0.25, .25), (0.02, .59, .59), (1., 1., 1.)),
  'green':  ( (0.0, 0.0, 0.0), (0.02, .45, .45), (1., .97, .97)),
  'blue' :  ( (0.0, 1.0, 1.0), (0.02, .75, .75), (1., 0.45, 0.45))
}

cm = m.colors.LinearSegmentedColormap('my_colormap', cdict, 1024)

x = np.arange(0, 10, .1)
y = np.arange(0, 10, .1)
X, Y = np.meshgrid(x,y)

data = 2*( np.sin(X)   np.sin(3*Y) )

def do_plot(n, f, title):
    #plt.clf()
    plt.subplot(1, 3, n)
    plt.pcolor(X, Y, f(data), cmap=cm, vmin=-4, vmax=4)
    plt.title(title)
    plt.colorbar()

plt.figure()
do_plot(1, lambda x:x, "all")
do_plot(2, lambda x:np.clip(x, -4, 0), "<0")
do_plot(3, lambda x:np.clip(x, 0, 4), ">0")
plt.show()

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Fuse

    Fuse

    21 Kasım 2005
  • Joshua Kywn

    Joshua Kywn

    17 Mayıs 2010
  • THE RED DRAGON

    THE RED DRAG

    6 ŞUBAT 2009