2017-07-20 20 views
2

我有一個包含名稱,日期和統計的多列數據框。我將一段時間內的統計數據繪製成圖,並試圖使每行的圖例與名稱匹配。在for循環中使用變量在pyplot中分配圖例值

每次我嘗試新的東西時,我要麼從名稱列中重複兩次或截斷統計信息的列名稱或名稱。

我可以使用現有的for循環在圖例中顯示這兩個名稱嗎?

fig, ax = plt.subplots() 
for name, group in statistics.groupby('A name'): 
    group.plot(ax=ax, label=name) 
    print(name) 

plt.legend() 

此代碼,打印對劇情兩個獨立的線條,給人每一行,我策劃,而不是人的名字的統計列的名稱是什麼,我想用label = name做。 for循環中的print語句正確輸出名稱。

如何將標籤設置爲等於正確名稱的每條標繪線?

回答

2

你需要抓住那些線處理:

statistics = pd.DataFrame({'A name':pd.np.random.choice(list('ABCD'),20),'Data Values':np.random.randint(0,100,20)}) 
fig, ax = plt.subplots() 
lh = {} 
for name, group in statistics.groupby('A name'): 
    lh[name] = group.plot(ax=ax, label=name) 
    print(name) 

plt.legend(lh) 

enter image description here

+0

@vandy如果這個答案幫助了你,你會給予好評和[接受](https://meta.stackexchange.com/questions/5234 /如何-不接受-的回答工作?answertab =#投票製表頂部)。 –

+0

我沒有足夠的代表進行投票,但接受。謝謝!你能向我解釋這是如何工作的嗎?這絕對是,但我不明白它爲什麼。 – vandy

+0

@vandy ...好吧我解決了這個問題。 :-)謝謝你的接受! –

相關問題