【问题标题】:How to get a list of axes for a figure in pyplot?如何在pyplot中获取图形的轴列表?
【发布时间】:2020-12-14 23:55:52
【问题描述】:

我是 pythonpyplot 的新手。我正在尝试了解与图 Figure API 相关的 Matplotlib API 文档。

一开始它说有一个class matplotlib.figure.AxesStack,然后

AxesStack 是一个可调用对象,其中 ax_stack() 返回当前坐标区

当我尝试在程序中使用它时

import numpy as np
import matplotlib.pyplot as plt

n=4
v=np.arange(n)
X,Y = np.meshgrid(v,v)
Z=np.random.rand(n-1,n-1)

fig, ax = plt.subplots()
plt.pcolormesh(X, Y, Z)
plt.axis('tight')
plt.colorbar()
ast=fig.ax_stack()

plt.show()

我收到错误

AttributeError: 'Figure' object has no attribute 'ax_stack'

【问题讨论】:

  • @behzad.nouri 谢谢。似乎get_axes() 返回了两个对象,AxesSubplot 和 Axes。但是我怎样才能为我的人物获得一个 AxesStack 对象呢? (所以如果我在我的图中添加更多轴,那么我可以获得它们的列表)
  • 注意大小写,AxesStackfigure模块中的一个类,引用fig指向一个Figure对象。
  • 你已经有了轴。它是该行中的对象 ax: fig, ax = plt.subplots()

标签: python matplotlib


【解决方案1】:

属性axes 返回Figure 对象中的Axes 对象列表:

ax_list = fig.axes

(doc)

【讨论】:

  • 谢谢!所以AxesStackFigure 都是模块figure 中的类。但是从pyplot 返回的fig 对象不使用任何AxesStack 对象来表示它的轴?或者,AxesStack 的引用可能只是隐藏在 fig 对象内部的某个地方?
  • fig 是一个 Figure 对象。我不确定AxesStack 在哪里使用,但您可能不应该使用它。
  • 如果轴组是二维的,例如使用fig,ax=plt.subplots(5,4),则 fig.axes 返回一维列表。如何获取二维数组中返回的轴对象?
  • 保持从plt.subplots返回的数组。 fig.axes 没有关于轴布局的语义(可能无法很好地映射到网格,例如 matplotlib.org/users/gridspec.html#gridspec-using-subplotspec)。
  • 在我看来,fig.axes 在该文档中没有描述。
猜你喜欢
  • 2020-05-29
  • 1970-01-01
  • 1970-01-01
  • 2018-08-19
  • 1970-01-01
  • 2011-10-21
  • 1970-01-01
  • 1970-01-01
  • 2021-02-12
相关资源
最近更新 更多