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

  • DrakeVEVO

    DrakeVEVO

    17 AĞUSTOS 2009
  • MugenPowerBatteries

    MugenPowerBa

    8 EKİM 2010
  • The Verge

    The Verge

    8 AĞUSTOS 2006