Kni*_*nio 1 python matplotlib dataframe pandas
我正在尝试使用 pandas 来绘制特定的图形,但它似乎想要制作自己的图形而不是使用/重置 pyplot 的当前图形。
如何使 pandas 绘制到当前(或者更好的是,明确给出的)数字?
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
Run Code Online (Sandbox Code Playgroud)
解决方案非常简单。您可以指定绘图需要引用哪个轴对象。这可以通过从 获取当前句柄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
Run Code Online (Sandbox Code Playgroud)