You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

matplotlib.pyplot如何修改x轴刻度为指定月份标签(七月居中)

实现方法

你只需要在调用plt.show()前通过plt.xticks()手动指定x轴刻度位置和对应标签即可,原有绘图逻辑不需要做任何改动,两条曲线的颜色、线宽、点样式等原有效果会完全保留。
要满足七月(Jul)在x轴中间的要求,只需要把Jul对应的刻度位置设为x=0(当前x轴范围是-21到20,0就是视觉中点),其余月份按等间隔向两侧分布即可。


方案1:保留全部7个月份标签

7个标签按间隔6均匀分布,不会出现重叠问题,仅需添加1行代码:

# 刻度位置依次对应Apr、May、Jun、Jul、Aug、Sep、Oct,0点对应Jul处于轴中间
plt.xticks([-18, -12, -6, 0, 6, 12, 18], labels)

完整可运行代码如下:

import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm
import statistics
  
x_axis = np.arange(-21, 21, 1)
  
# Calculating mean and standard deviation
mean = statistics.mean(x_axis)
sd = 0.5*statistics.stdev(x_axis)
labels =["Apr","May","Jun","Jul","Aug","Sep","Oct"]

plt.plot(x_axis, norm.pdf(x_axis, mean, sd),'ro',color='b',linewidth=3)
plt.plot(x_axis, norm.pdf(x_axis, mean-0.3, sd-0.3),color='r',linewidth=2.5)
# 替换x轴刻度为月份标签
plt.xticks([-18, -12, -6, 0, 6, 12, 18], labels)
plt.show()

方案2:移除Apr、Oct标签(适配小尺寸画布)

如果画布尺寸偏小、x轴显示空间不足,可以删掉labels首尾的Apr和Oct,对应调整刻度位置即可,Jul依然保持在x轴中点:

# 移除首尾两个月份
labels =["May","Jun","Jul","Aug","Sep"]
# 对应调整刻度位置,0点依然对应Jul
plt.xticks([-12, -6, 0, 6, 12], labels)

将上述代码替换原代码中labels定义和xticks设置部分即可。


内容的提问来源于stack exchange,提问作者Luigi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.03 03:33:32