2014-05-09 14 views
13

如何將圖例置於情節之外?如何將圖例與熊貓圖外情

import pandas as pd 
import matplotlib.pyplot as plt 
a = {'Test1': {1: 21867186, 4: 20145576, 10: 18018537}, 
    'Test2': {1: 23256313, 4: 21668216, 10: 19795367}} 

d = pd.DataFrame(a).T 
#print d 

f = plt.figure() 

plt.title('Title here!', color='black') 
plt.legend(loc='center left', bbox_to_anchor=(1, 0.5)) 
d.plot(kind='bar', ax=f.gca()) 
plt.show() 
+13

其實它不是一個完整的重複...問題是特別要求熊貓。下面的迴應顯示瞭如何將軸分配給來自'pandas.DataFrame.plot'的繪圖函數調用,這使得可以應用matplotlib.pyplot改進。 – slushy

+0

是的,這不是重複的,它很煩人,它被標記爲這樣。 – ferrouswheel

回答

22

我認爲你需要調用plot您添加呼叫legend之前。

import pandas as pd 
import matplotlib.pyplot as plt 
a = {'Test1': {1: 21867186, 4: 20145576, 10: 18018537}, 
    'Test2': {1: 23256313, 4: 21668216, 10: 19795367}} 

d = pd.DataFrame(a).T 
#print d 

f = plt.figure() 

plt.title('Title here!', color='black') 
d.plot(kind='bar', ax=f.gca()) 
plt.legend(loc='center left', bbox_to_anchor=(1.0, 0.5)) 
plt.show() 
+1

但是,傳說中的一半現在不在圖片中?它怎麼可能修復它? – user977828

+0

這真的是一個單獨的問題,但你可以嘗試'f.subplots_adjust(right = 0.8)'。 – Phil

+3

如果你只是想移動圖例,你可以利用''.plot''返回一個matplotlib軸並添加''.legend(bbox_to_anchor =(1,1))''到你的末尾情節線代碼 –