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

  • Random Act of Kindness Video Contest

    Random Act o

    18 EYLÜL 2012
  • picster

    picster

    20 NİSAN 2006
  • Plugable

    Plugable

    19 Mayıs 2010