python - 用于显示一个图形的 Python 子图
问题描述
当我使用子图并尝试使用以下子图仅绘制一个图形时,它会给出错误:
AttributeError:“AxesSubplot”对象没有“平面”属性
fig, ax = plt.subplots(nrows=nrows, ncols=ncols,figsize=figsize)
for i, ax in enumerate(ax.flat):
ax.plot(X, Y, color='k')
如果我想任意设置子数字的数量,如何解决这个问题?我怎么容易理解ax.flat
?
解决方案
恰好有一种情况是代码
fig, ax = plt.subplots(nrows=nrows, ncols=ncols,figsize=figsize)
for i, ax in enumerate(ax.flat):
ax.plot(X, Y, color='k')
不会按预期工作。这是为了nrows = ncols = 1
. 这是因为对于单个行和列,ax
是单个子图,而不是多个子图的数组。
为了避免这个问题,并且能够在不知道nrows
和ncols
事先知道的情况下使用相同的代码,请使用该squeeze=False
选项。这将确保ax
始终是一个数组,因此具有一个.flat
属性。为了更好地理解,请勿使用与坐标区本身相同的名称来调用坐标区数组。
fig, axs = plt.subplots(nrows=nrows, ncols=ncols, squeeze=False, figsize=figsize)
for i, ax in enumerate(axs.flat):
ax.plot(X, Y, color='k')
推荐阅读
- java - 身份验证后带有 gmail-api 的 UserRecoverableAuthIOException
- google-chrome - 如何在 Chrome 扩展程序中隐藏我的 API 密钥?
- java - 如何在我的二十一点破产系统中修复此 if 语句?
- openid - 访问 ADFS 服务器上的 openid userinfo 端点时出现未经授权的访问 401
- ruby-on-rails - 错误轨道中带有字段名称的字段错误过程
- c# - 用智能方法替换样板代码 C#(也许通过使用指针?)
- excel - 考虑到任何文本和数字,如何定义 excel SUMIFS 标准?
- oracle - 从 sqlplus 连接到 Oracle 19C 云
- c++ - 在 C++ 中使用 Go
- html - 类属性名称具体叫什么?