2

假设轴子图的标记显示为“0,20,40,60,80,100”,但我想让最后一个标记 100 不可​​见。不确定如何为 matplotlib 轴子图执行此操作?

4

2 回答 2

4

如果要设置 x-ticks 的位置,只需将最后一个标签替换为空字符串即可。

import pylab as plt

x=[12, 13, 14, 15, 16]
y=[14, 15, 16, 17, 18]

xticks=[12,13,14,15,16]

fig=plt.figure()
ax=fig.add_subplot(111)
ax.plot(x,y,'o-')

ax.set_xticks(xticks)
ax.set_xticklabels(xticks[:-1]+[""])
plt.show()

您还可以使用以下内容删除最后一个 x-tick 标签

for label in ax.get_xticklabels():
    pass
label.set_visible(False)
于 2012-07-23T10:25:29.827 回答
3

你的问题没有指定除了ticklabel之外是否要隐藏tickline,所以如果你还想隐藏tickline,这条线应该这样做

plt.setp(ax.get_xticklines()[-2:],visible=False)

Matplotlib 的刻度标签的顺序在底部和顶部之间交替,从左到右移动。因此,隐藏最后两个假设您希望隐藏顶部和底部的刻度标签。只隐藏底部的一个:

plt.setp(ax.get_xticklines()[-2],visible=False)

或者只是最上面的一个:

plt.setp(ax.get_xticklines()[-1],visible=False)

我应该补充一点,这是对@imsc 先前答案的补充,它应该在任何设置 xticklabels 身份的行之后输入,以避免将其可见性状态重置为 True。

于 2012-07-23T12:58:56.970 回答