figure.add_subplot() 与 pyplot.subplot()

Posted

技术标签:

【中文标题】figure.add_subplot() 与 pyplot.subplot()【英文标题】:figure.add_subplot() vs pyplot.subplot() 【发布时间】:2016-03-30 06:40:51 【问题描述】:

add_subplot()subplot() 有什么区别?如果一个不存在,他们似乎都添加了一个子图。我查看了文档,但无法区分。只是为了让未来的代码更灵活吗?

例如:

fig = plt.figure()
ax = fig.add_subplot(111)

plt.figure(1)
plt.subplot(111)

来自 matplotlib 教程。

【问题讨论】:

【参考方案1】:

如果您需要参考 ax 以供以后使用:

ax = fig.add_subplot(111)

给你一点时间:

plt.subplot(111)

您需要执行以下操作:

ax = plt.gca()

同样,如果以后想对图形进行操作:

fig = plt.figure()

立即为您提供参考,而不是:

fig = plt.gcf()

如果您使用多个图的子图,则获取显式引用会更加有用。比较:

figures = [plt.figure() for _ in range(5)]

与:

figures = []
for _ in range(5):
    plt.figure()
    figures.append(plt.gcf())

【讨论】:

这个解释有帮助吗? 这不是真的。 plt.subplot(111) 返回一个 matplotlib.axes._subplots.AxesSubplot 对象,与 add_subplot 完全一样,所以你可以这样做 ax=plt.subplot(111)【参考方案2】:

pyplot.subplotFigure.add_subplot 的包装器,但行为有所不同。 使用pyplot.subplot 创建一个子图将删除与它重叠的任何预先存在的子图,而不是共享一个边界。 如果您不希望这种行为,请改用Figure.add_subplot 方法或pyplot.axes 函数。 More

【讨论】:

以上是关于figure.add_subplot() 与 pyplot.subplot()的主要内容,如果未能解决你的问题,请参考以下文章

matplotlib画散点图折线图柱状图

matplotlib:我可以创建 AxesSubplot 对象,然后将它们添加到 Figure 实例吗?

如何在 matplotlib 图形上绘制框架

从 Pandas DataFrame 绘图时注释数据点

py2与py3区别总结

py 与 pyc 文件