Matplotlib绘图如何设置X轴仅显示1、2、3三个整数刻度
解决方法
你的原有代码只设置了X轴刻度的旋转角度,没有指定刻度显示位置,matplotlib会按默认规则自动生成刻度,很容易出现多余的非整数刻度。只需要显式指定X轴的刻度位置即可解决问题,不需要改动其他绘图逻辑,手动传入你需要显示的刻度列表就能强制X轴只渲染1、2、3三个整数刻度。
直接把你代码里原来的plt.xticks(rotation=90)替换成指定刻度值的版本即可,修改后的完整代码如下:
fig = plt.figure(figsize=(6,7)) ax = fig.add_subplot() plt.title('Number of Passengers by Class', size=18) plt.bar([1, 2, 3], [ttick, ftick, stick], width=.5) ax.set_xlabel('Pclass', size=15) ax.set_ylabel('Count', size=15) # 强制X轴仅在1、2、3位置显示刻度,保留90度旋转设置 plt.xticks([1, 2, 3], rotation=90) plt.grid() plt.show()
可选加固方案
如果遇到特殊场景下matplotlib自动篡改刻度格式的情况,可以引入ticker模块强制锁定刻度位置和整数格式:
- 先在代码开头导入对应模块:
from matplotlib import ticker - 在设置X轴的部分加一行固定刻度的代码:
ax.xaxis.set_major_locator(ticker.FixedLocator([1, 2, 3]))
这个方案会彻底把X轴主刻度锁定在你指定的三个位置,不会出现任何额外刻度或者非整数格式。
内容的提问来源于stack exchange,提问作者Edward
相关产品推荐
相关产品推荐

