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.subplot
是 Figure.add_subplot
的包装器,但行为有所不同。
使用pyplot.subplot
创建一个子图将删除与它重叠的任何预先存在的子图,而不是共享一个边界。
如果您不希望这种行为,请改用Figure.add_subplot
方法或pyplot.axes
函数。 More
【讨论】:
以上是关于figure.add_subplot() 与 pyplot.subplot()的主要内容,如果未能解决你的问题,请参考以下文章