我正在尝试使用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
答案 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()