2017-02-09 50 views
6

grafik:matplotlib: çubuğunda pandalar veri çerçevesinin arsa birden sütun Ben bir bar-grafik çizmek için aşağıdaki kodu kullanıyorum

import matplotlib.pyplot as pls 
my_df.plot(x='my_timestampe', y='col_A', kind='bar') 
plt.show() 

arsa çalışıyor. Ancak grafiğin 3 sütununa sahip olmasını istiyorum: 'col_A', 'col_B' ve 'col_C' hepsi arsada. Aşağıdaki örnek resimde gibi:

enter image description here

ben x ekseninde yukarıda yeşil x ekseni altında kırmızı x ekseni üzerindeki mavi görüntülenen col_A, col_B ve col_C istiyorum. Bu matplotlib'de bir şey mümkün mü? Üç sütunun tamamını çizmek için nasıl değişiklik yapabilirim? Teşekkürler!

cevap

19

ploty argümanına sütun adlarının bir listesini sağlayarak bir kerede birkaç sütun çizebilirsiniz.

df.plot(x="X", y=["A", "B", "C"], kind="bar") 

enter image description here

Bu çubuklar birbirine oturan bir grafik üretecektir.

Onları örtüştürmek için, birkaç kez plot numaralı telefonu aramanız ve arsaya argümanı ax olarak çizmek için eksenleri sağlamanız gerekir. Eğer 3 sütunda mavi ve yeşil renk göremiyorum çünkü

import pandas as pd 
import matplotlib.pyplot as plt 
import numpy as np 

y = np.random.rand(10,4) 
y[:,0]= np.arange(10) 
df = pd.DataFrame(y, columns=["X", "A", "B", "C"]) 

ax = df.plot(x="X", y="A", kind="bar") 
df.plot(x="X", y="B", kind="bar", ax=ax, color="C2") 
df.plot(x="X", y="C", kind="bar", ax=ax, color="C3") 

plt.show() 

enter image description here

+0

İkinci grafik emer. Değişiklik yapmak mümkündür, son değer çok yüksek – hudi

+0

İkinci arsa sadece, en yüksek değerler tüm çubuklar için çizilen ilk sütundan olanlarsa anlamlıdır. Bu sorudan istenen çıktıda durum böyle görünüyor. Aksi takdirde, bu tür bir arsa kullanmayı önermem ve bunun yerine ilk çözümden yığılmış bir arsa veya gruplanmış çubukları kullanmamaya karar verdim. Elbette şeffaflık ('alpha') ile deney yapabilir ve ikinci çözümün çekici bir sonuç verip getirmediğine bakın. Açıklama için – ImportanceOfBeingErnest

+0

ah tamam thx – hudi