回答问题

如果我绘制一个imshow图我可以使用

fig, ax = plt.subplots()
ax.imshow(data)
plt.xticks( [4, 14, 24],  [5, 15, 25] )

替换我的 xtick 标签。

现在,我正在使用 12imshow绘图

f, axarr = plt.subplots(4, 3)
axarr[i, j].imshow(data)

如何仅为这些子图之一更改我的 xticks?我只能使用axarr[i, j]访问子图的轴。如何仅针对一个特定的子图访问plt?

Answers

有两种方法:

  1. 使用 subplot 对象的 axes 方法(例如ax.set_xticksax.set_xticklabels)或

  2. 使用plt.sca设置 pyplot 状态机的当前轴(即plt接口)。

作为示例(这也说明了使用setp更改所有子图的属性):

import matplotlib.pyplot as plt

fig, axes = plt.subplots(nrows=3, ncols=4)

# Set the ticks and ticklabels for all axes
plt.setp(axes, xticks=[0.1, 0.5, 0.9], xticklabels=['a', 'b', 'c'],
        yticks=[1, 2, 3])

# Use the pyplot interface to change just one subplot...
plt.sca(axes[1, 1])
plt.xticks(range(3), ['A', 'Big', 'Cat'], color='red')

fig.tight_layout()
plt.show()

在此处输入图像描述

Logo

学AI,认准AI Studio!GPU算力,限时免费领,邀请好友解锁更多惊喜福利 >>>

更多推荐