首页 > 解决方案 > 为什么“xticks”在图形上工作,但“set_xticks”不在轴上?

问题描述

这应该有效,但它没有?

plt.figure()
plt.plot(x)
plt.xticks(range(4), [2, 64, 77, 89])  # works

f, ax = plt.subplots(nrows=2, ncols=2)
ax[0, 0].plot(x)
ax[0, 0].set_xticks(range(4), [2, 64, 77, 89])  # does not work

标签: pythonmatplotlib

解决方案


当使用面向对象的 API(如第二个示例中)时,设置刻度位置和刻度标签的函数是分开的 -ax.set_xticksax.set_xticklabels. 因此,您将需要:

f, ax = plt.subplots(nrows=2, ncols=2)
ax[0, 0].plot(x)
ax[0, 0].set_xticks(range(4))
ax[0, 0].set_xticklabels([2, 64, 77, 89])

推荐阅读