Pandas DataFrame.plot重置pyplot当前数字

时间:2017-08-10 18:13:15

标签: python pandas matplotlib dataframe

我正在尝试使用pandas绘制为具体的数字,但它似乎想要制作它自己的数字而不是使用/重置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 个答案:

答案 0 :(得分:3)

解决方案非常简单。您可以指定绘图需要参考的对象。这可以通过从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

答案 1 :(得分:0)

不完全是您的问题,但可以通过不同的机制解决您的需求:

如果您只想设置数字大小,可以将pyplot kwargs传递给df.plot

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