我想隐藏我创建的图表上的刻度标签,但保留此刻度本身(轴上的小标记)。例如,当我尝试使用我在这里找到的方法时,整个刻度被删除,而不仅仅是标签。那么,如何仅删除标签?
这里是一个稍微简单的答案,使用ax.tick_params
。
import matplotlib.pylab as plt
fig, ax = plt.subplots()
plt.plot([1,2,3],[4,5,6])
ax.tick_params(labelbottom=False)
plt.show()
这是使用Matplotlib 3生成的结果:
正如@chris所评论的那样,在上面的例子中,可以使用labeltop
、labelleft
、labelright
隐藏任何其他坐标轴上的标签,而不是使用labelbottom
。
将刻度标签设置为非空数组,而是设置为空字符串列表。在下面的示例中,我已经用空字符串替换了x轴标签,保留y轴不变。从这里开始,您可以选择性地保留某些标签(如果您希望的话)。
import pylab as plt
fig, ax = plt.subplots()
ax.plot([1,2,3],[4,5,6])
labels = [item.get_text() for item in ax.get_xticklabels()]
empty_string_labels = ['']*len(labels)
ax.set_xticklabels(empty_string_labels)
plt.show()
这段代码改编自之前的回答。
ax.set_yticklabels([])
来清空纵坐标刻度,无需初始化一个空字符串列表。 - Chidi我发现divenex的回答对我不起作用。这个回答创建刻度,而不触发任何自动标签,因此不需要使用"labelbottom=False":
如果底部和左侧的刻度已经存在:
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
plt.plot([1,2,3],[4,5,6])
ax.tick_params(right= True,top= True)
如果不存在任何时间戳:
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
plt.plot([1,2,3],[4,5,6])
ax.tick_params(right= True,top= True,left= True, bottom= True)
import matplotlib.pylab as plt
fig, ax = plt.subplots()
plt.plot([1,2,3],[4,5,6])
ax.set_xticklabels([])
plt.show()
ax.tick_params
接受以下关键字参数:labelbottom
,labeltop
,labelleft
,labelright
。 - chris