Matplotlib中如何隐藏坐标轴中间刻度值仅保留首尾刻度?
实现Matplotlib仅保留坐标轴首尾刻度的方法
当然可以做到!这在Matplotlib里其实有几种简便的实现方式,我给你分享两种最常用的:
方法一:保留刻度线但隐藏中间标签
如果你希望保留坐标轴上的所有刻度线(包括中间的小短线),只是隐藏中间的刻度数字,那可以通过修改刻度标签来实现:
import matplotlib.pyplot as plt import numpy as np # 生成示例数据(替换成你自己的数据集即可) x = np.linspace(0, 10, 100) y = np.sin(x) fig, ax = plt.subplots() ax.plot(x, y) # 保留你的图表线条不受影响 # 获取当前坐标轴的刻度位置 xticks = ax.get_xticks() yticks = ax.get_yticks() # 只保留首尾刻度的标签,中间全部设为空字符串 ax.set_xticklabels([str(xticks[0])] + ['']*(len(xticks)-2) + [str(xticks[-1])]) ax.set_yticklabels([str(yticks[0])] + ['']*(len(yticks)-2) + [str(yticks[-1])]) plt.show()
方法二:仅生成首尾两个刻度(更高效)
如果连中间的刻度线也不需要,只想保留首尾的刻度和标签,那就直接指定要显示的刻度位置,这样Matplotlib只会生成这两个刻度,更简洁高效:
import matplotlib.pyplot as plt import numpy as np x = np.linspace(0, 10, 100) y = np.sin(x) fig, ax = plt.subplots() ax.plot(x, y) # 直接设置坐标轴的刻度为首尾值(动态适配数据范围) ax.set_xticks([x.min(), x.max()]) ax.set_yticks([y.min(), y.max()]) # 如果你需要手动固定刻度值(比如不是数据极值),直接写具体数值就行: # ax.set_xticks([0, 10]) # ax.set_yticks([-1, 1]) plt.show()
两种方法都能完美保留你的图表线条,只是在刻度线的显示上略有区别,你可以根据自己的需求选择~
内容的提问来源于stack exchange,提问作者medi
相关产品推荐
相关产品推荐

