我这里有一个非常简单的例子。我正在从函数返回的 ax 对象绘制一个图:import matplotlib.pyplot as pltx = ['a', 'b', 'c']y = [1, 2, 3]def make_plot(): fig, ax = plt.subplots() ax.set_title('test bar chart') return axchart = make_plot()chart.bar(x, y)plt.show() #why does this show the chart?我的问题是最后关于 plt.show() 的问题。显然,这显示了图表的输出。但为什么?对我来说, plt.show() 似乎与任何东西都没有联系。我有我的chart对象,其中包含我的图表及其所有参数等等。但是 plt.show() 如何知道与之交互呢?拥有类似的东西似乎更直观chart.show(),就像chart类实例一样。
1 回答
尚方宝剑之说
TA贡献1788条经验 获得超4个赞
好问题!chart
是调用时创建的 Axes plt.subplots()
。Pyplot 是所谓的“有状态”API。当您调用 plt.* 函数时,它会更改 pyplot 的内部状态,这可能会影响将来的调用。当您调用 时plt.subplots()
,它知道有一个新创建的Figure,其中包含新创建的子图Axes。
同样,如果您调用plt.plot()
,它会存储最新轴的记录,并在该图上绘制数据。
添加回答
举报
0/150
提交
取消