Matplotlib绘图如何隐藏x、y坐标轴的刻度数值
解答
这个需求完全可以实现,而且不需要改动你现有代码里刻度位置、网格、坐标轴比例的相关逻辑,只要把刻度对应的数值文本隐藏就行,网格线和刻度小标记都能正常保留。
具体操作
你在现有代码里设置完ax.set_xticks、ax.set_yticks的位置后,加两行代码把刻度标签置空就可以:
ax.set_xticklabels([]) ax.set_yticklabels([])
修改后的完整代码
import numpy as np import matplotlib.pyplot as plt fig = plt.figure() ax = fig.add_subplot(1, 1, 1) n=3 X = np.arange(n) Y = -X x_sorted = np.sort(X) y_sorted = np.sort(Y) ax.set_xticks(x_sorted) ax.set_yticks(y_sorted) # 隐藏坐标轴刻度数值 ax.set_xticklabels([]) ax.set_yticklabels([]) ax.set_xlim(x_sorted[0], x_sorted[-1]) ax.set_ylim(y_sorted[0], y_sorted[-1]) ax.grid() ax.set_aspect('equal', 'box') plt.show()
运行这段代码输出的效果和预期效果完全一致:网格线正常显示,坐标轴比例不变,仅隐藏了x、y轴上标注的刻度数值。
如果后续你需要调整刻度线本身的显示/隐藏,也可以用ax.tick_params方法配置,比如要连刻度小短线也隐藏的话,可以改成:
ax.tick_params(axis='both', which='both', length=0)
按照你给出的预期效果,只需要置空刻度标签就足够满足需求。
内容的提问来源于stack exchange,提问作者Wiz123
相关产品推荐
相关产品推荐

