如果我绘制单个imshow
图我可以使用
fig, ax = plt.subplots()
ax.imshow(data)
plt.xticks( [4, 14, 24], [5, 15, 25] )
替换我的xtick标签。
现在,我正在绘制12个imshow
地块
f, axarr = plt.subplots(4, 3)
axarr[i, j].imshow(data)
如何才能为这些子图之一更改我的xticks?我只能用axarr[i, j]
访问子图的轴。我怎样才能为一个特定的子情节访问plt
?
有两种方法:
ax.set_xticks
和ax.set_xticklabels
)或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()
请参阅matplotlib存储库中的(相当)最新的answer,其中建议使用以下解决方案:
ax.set_xticks([1,4,5])
ax.set_xticklabels([1,4,5], fontsize=12)
ax.tick_params(axis="x", labelsize=12)
似乎在Matplotlib的后期版本中,plt.setp(ax.get_xticklabels(), fontsize=12, fontweight="bold",
horizontalalignment="left")`
和set_yticks
函数被删除。我做的是,而不是设置x,y刻度的大小,我只是改变了数字大小。
set_xticks
我知道它有点反直觉,但这对我有用...让我知道在Matplotlib的更高版本中是否有更好的方法来解决这个问题。谢谢