2017-08-10 89 views
0

我試圖使用熊貓來繪製爲具體的數字,但它似乎想要使它自己的數字,而不是使用/重置pyplot的當前數字。熊貓DataFrame.plot重置pyplot當前數字

我怎樣才能讓熊貓與當前的(或更好的,明確給出的)數字陰謀?

from matplotlib import pyplot 
import pandas 

df = pandas.DataFrame({'a': list(range(1000))}) 
fig1 = pyplot.figure(figsize=(5, 10)) 
assert pyplot.gcf() is fig1 # succeeds 
df.plot() # does not draw to fig1 
assert pyplot.gcf() is fig1 # fails 

回答

2

該解決方案非常簡單。您可以指定繪圖需要引用哪些軸對象。這可以通過從ax = pyplot.gca()獲得當前句柄,隨後繪製到該句柄來完成。當然,你也可以使用類似的語法來繪製另一個句柄。

from matplotlib import pyplot 
import pandas 

df = pandas.DataFrame({'a':list(range(1000))}) 
fig1 = pyplot.figure(figsize=(5, 10)) 
ax = pyplot.gca() 
assert pyplot.gcf() is fig1 # succeeds 
df.plot(ax=ax) # draws to fig1 now 
assert pyplot.gcf() is fig1 # Succeeds now, too 
+0

' df = pandas.DataFrame(範圍(1000))'結果爲: 回溯(最近一次調用的最後一次):... .... ValueError:未正確調用DataFrame構造函數! – Uvar

+0

DataFrame構造函數在我的熊貓上正常工作(0.19.2) – Knio

+0

我使用的是熊貓0.20.3 ...所以我認爲這將是通常情況下的未來。但是,如果這是一個大問題,我會將它從答案中刪除,因爲它與解決方案無關。 – Uvar

0

不完全是你的問題,但可以解決通過不同的機制,你需要:

如果你只是想設置的數字大小,你可以通過pyplot kwargs到:

df.plot(figsize=(5, 10)) 
pyplot.show()