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

  • bombjack2991

    bombjack2991

    29 HAZİRAN 2008
  • Branboy3

    Branboy3

    12 AĞUSTOS 2012
  • Hollyscoop

    Hollyscoop

    30 Ocak 2007