Python xticks在子图中

use*_*577 60 python matplotlib imshow

如果我绘制一个imshow我可以使用的情节

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

替换我的xtick标签.

现在,我正在imshow使用绘制12个地块

f, axarr = plt.subplots(4, 3)
axarr[i, j].imshow(data)
Run Code Online (Sandbox Code Playgroud)

如何才能为这些子图之一更改我的xticks?我只能访问子图的轴axarr[i, j].我如何plt只访问一个特定的子图?

Joe*_*ton 127

有两种方法:

  1. 使用子图对象的轴方法(例如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()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述


Arc*_*hie 34

请参阅matplotlib 存储库上的(相当)最近的答案,其中建议使用以下解决方案: