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

  • amc

    amc

    21 EYLÜL 2005
  • mist64

    mist64

    30 Mayıs 2006
  • ShayLoss

    ShayLoss

    5 Kasım 2009