如果我绘制单个 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_xticksax.set_xticklabels )或
  • 使用 plt.sca 设置 pyplot 状态机的当前轴(即 plt 接口(interface))。

  • 作为一个例子(这也说明了使用 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()
    

    子图中的 Python xticks-LMLPHP

    关于子图中的 Python xticks,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19626530/

    10-16 02:26