matplotlib matplolib如何知道在哪个图上绘图

piok6c0g  于 2023-10-24  发布在  其他
关注(0)|答案(1)|浏览(109)

我试图理解matplotlib是如何工作的(我的问题可能更一般)。
要绘制曲线,我可以执行以下操作之一:

fig,ax=plt.subplots()
plt.plot([1,2,3])
#%%
fig,ax=plt.subplots()
ax.plot([1,2,3])

在第一种情况下,python知道绘图应该相对于坐标轴“ax”来完成。在第二种情况下,我“告诉它”它是针对坐标轴“ax”的,因为我使用了来自ax的方法。

第一个问题:

第一种方式是如何工作的?python如何知道情节必须用ax来完成?这背后的机制是什么?实际上,我希望我必须告诉它要情节什么。但它“推断”了它。

第二个问题:

作为一个相关的问题:这两种绘图方式之间有什么不同,或者它们完全等同?

问题三:

plt.plot有一个轴的“模拟方法”:ax.plot
pcolor有一个“模拟方法”,轴是:ax.pcolor
我们可以找到许多其他的例子。
在matplotlib中,plt.FUNCTION和ax.FUNCTION的代码是否完全相同(两者使用相同的“FUNCTION”)?

w8ntj3qf

w8ntj3qf1#

如果你只有一个图,那么使用plt.plot或ax.plot绘图没有区别。但是,如果你有多个图,如下所示:

如果你使用plt.plot,默认情况下它只在左上角的子图上绘图。所以如果你想绘图,例如在右下角的子图上,你必须定义要绘图的轴。然后你必须使用ax。参见:Plot multiple plots in Matplotlib
所以,如果你有一个plot,plt和ax之间没有区别。而如果你有多个plot或者你正在使用FuncAnimation,那么最好使用ax。

相关问题