2013-06-19 30 views
36

Dağılım grafiğindeki noktaların renklerini boşluk fraksiyonunun değerine karşılık, ancak farklılıkları yükseltmek için logaritmik bir ölçekte yapmak istiyorum. Bunu yaptım, ama şimdi plt.colorbar() yaptığımda, gerçek boşluk kısmını gerçekten istediğimde boşluk kesirinin günlüğünü görüntüler. Renk çubuğunda, [0.00001,1] 'e ait boşluk fraksiyonunun uygun etiketleri ile bir günlük ölçeği nasıl yapabilirim?Matplotlib dağılım grafiğinde bir logaritmik colorbar

Şimdi sahip olduğum çizimin bir resmi, ancak boşluk kesir rengi çubuğu, günlüğünün yerine gerçek boşluk bölümüne karşılık gelecek şekilde etiketlenmiyor. Yardımlarınız için

current plot

fig = plt.figure() 
plt.scatter(x,y,edgecolors='none',s=marker_size,c=np.log(void_fraction)) 
plt.colorbar() 
plt.title('Colorbar: void fraction') 

teşekkürler.

cevap

50

how color mapping and normalization works açıklayan belgelerin bir bölümü artık yoktur (yani gelişme dokümanlara link olmakla mpl tüm sürümleri için geçerlidir. Bu 'yakında' ana hat belgelerinde olacaktır)

yolu, matplotlib, renk eşlemesini iki adımda yapar, önce Normalize işlevi (matplotlib.colors.Normalize alt sınıfları tarafından sarılır), el ile verdiğiniz verileri [0, 1]'a eşler. İkinci adım [0,1] -> RGBA alanında değerleri eşler.

norm kwarg ile iletilen LogNorm normalizasyon sınıfını kullanmanız yeterlidir.

plt.scatter(x,y,edgecolors='none',s=marker_size,c=void_fraction, 
       norm=matplotlib.colors.LogNorm()) 

sen/ölçek planlamaktan verileri oynamak istiyorum

, onu kendi kendine yapmak yerine matplotlib dönüşümleri yapalım daha iyidir.

  • Normalizedoc
  • LogNormdoc
  • matplotlib.colordoc
+0

Mükemmel, teşekkür ederim! – Cokes

+5

Sonuç, Şekil 2'de. Http://pubs.rsc.org/en/content/articlehtml/2014/cp/c3cp55039g Kabullerde Yığın Taşması ekledim! – Cokes

+0

Teşekkürler! Sadece dokümanlar nereye bakılacağını ima ettiler. Fantastik parametreler ile fantastik parametreler sunan bu fantastik fonksiyonlar var ama bunların nasıl kullanılacağı konusunda hiçbir şey yok. – EndsOfInvention

İlgili konular