当前位置: 首页 > 面试题库 >

Matplotlib:如何为每个子图添加xlabel,标题

长孙泉
2023-03-14
问题内容

我正在尝试使用绘制多个热图plt.subplots。我发现一个示例如下:

import numpy as np
import matplotlib.pyplot as plt

# Generate some data that where each slice has a different range
# (The overall range is from 0 to 2)
data = np.random.random((4,10,10))
data *= np.array([0.5, 1.0, 1.5, 2.0])[:,None,None]

# Plot each slice as an independent subplot
fig, axes = plt.subplots(nrows=1, ncols=4,figsize=(12,3))
i=0
for dat, ax in zip(data, axes.flat):
    # The vmin and vmax arguments specify the color limits
    im = ax.imshow(dat, vmin=0, vmax=2,cmap='Reds')
    # ax.xlabel(str(i))
    # ax.ylabel(str(i))
    i += 1

# Make an axis for the colorbar on the right side
cax = fig.add_axes([0.95, 0.155, 0.03, 0.67])
fig.colorbar(im, cax=cax)

figtype = 'jpg'
fig.savefig('aaa.jpg',format = figtype,bbox_inches='tight')
fig.tight_layout()

如果我注释以下两行,则代码成功(在上面的示例中完成):

ax.xlabel(str(i))
ax.ylabel(str(i))

如果使用这两行,则会收到错误消息:

AttributeError: 'AxesSubplot' object has no attribute 'xlabel'

我该如何纠正?

谢谢大家的帮助!!!


问题答案:

使用matplotlib面向对象的接口时,要使用的正确命令是ax.set_xlabelax.set_ylabel

plt.xlabel对于状态机接口,将其与等比较)。

同样,要设置标题,您需要 ax.set_title

您可以axes在api文档中(此处)查看实例的所有可用方法。



 类似资料:
  • 有没有一种方法可以直接将标题(以及xlabel和ylabel)添加到plt.scatter(x,y,…)或plt.plot(x,y,…)中,而无需写额外的行? 当我们使用Series_name.plot时,很容易添加它,我们简单地写Series_name.plot(...,title='name'),但是如果我写:plt.scatter(...,title='name',它对我不起作用')或plt

  • 问题内容: 我一直在一个网站上工作,我想在浏览器标签中添加一个小图标。 我该如何在HTML中执行此操作以及需要在代码中放置它的位置(例如标头)?我有一个徽标文件,希望将其转换为图标。 相关:浏览器标签上的HTML设置图像。 问题答案: 实际上,有两种向网站添加图标的方式。 只需将以下代码添加到元素中: 大多数浏览器均支持 PNG图标,但IE <= 10除外 。为了向后兼容,您可以使用ICO图标。

  • 问题内容: 例如,在matplotlib中有3行子图,其中一行可以与下一行的标题重叠。人们不得不摆弄,这很烦人。 是否有防止重叠并适用于任何结石的配方? 我的版本: matplotlib 0.99.1.1, Python 2.6.4, Mac OSX 10.4.11, 后端: (=>异常在Tkinter的回调) (关于其他几点,有谁能像Tcl/Tk书中第17章“包装器”那样概述matplotlib

  • 好吧,这可能很容易,即使我在网上搜索,但无法得到它。基本上我想添加两个不同的标签到我的情节和这是我的代码行 但我得到了以下结果,其中有相同的标签为plot.as以下 连我都试过了 但请给出错误: 此链接指南为简单的方式,但在这里已在接受的答案中使用了两次。我的问题是我怎么能在单行代码中做同样的事情,就像我在代码中做的一样?

  • 问题内容: 我正在使用具有“很高”的xlabel的位置绘制数据集(这是在TeX中渲染的公式,其中包含一个分数,因此其高度等于几行文本)。 无论如何,当我绘制数字时,公式的底部总是被切除。更改图形大小似乎无济于事,而且我还无法弄清楚如何将x轴“向上”移动以为xlabel腾出空间。诸如此类的东西将是一个合理的临时解决方案,但最好的办法是使matplotlib自动识别标签被切断并相应调整大小。 这是我的

  • 问题内容: 我在用 在或中,如果我们向其添加标签,则可以轻松放置图例。但是如果是或 我知道有一个可以显示颜色范围的颜色,但是并不满意。我想要一个带有名称(标签)的 我能想到的是,向矩阵中的每个元素添加标签,然后,尝试legend(),以查看其是否有效,但是如何向元素添加标签(如值)? 就我而言,原始数据如下: 例如,1代表“草”,2代表“沙”,3代表“山” …依此类推。imshow()非常适合我的