如何为X轴添加次级标签层级?实现日期轴下方显示月份名称
为Matplotlib图表添加次级X轴(月份标签)
基于你提供的主X轴代码,以下是添加次级X轴(显示月份名称,位于主X轴下方)的实现方案:
完整代码示例
import matplotlib.dates as mdates # 你的原有主X轴设置代码 plot={} plot['W']=axs[0] plot['W'].xaxis.set_major_formatter(mdates.DateFormatter('%d')) plot['W'].xaxis.set_minor_locator(mdates.HourLocator(interval=6)) plot['W'].xaxis.set_major_locator(mdates.DayLocator(interval=1)) # 添加次级X轴(显示月份名称) # 创建位于主X轴下方的次级轴,-0.1为垂直偏移量,可按需调整 sec_xaxis = plot['W'].secondary_xaxis(-0.1) # 设置次级轴定位器为每月起始,格式化器为完整月份名称 sec_xaxis.xaxis.set_major_locator(mdates.MonthLocator()) sec_xaxis.xaxis.set_major_formatter(mdates.DateFormatter('%B')) # 隐藏次级轴的刻度线,让布局更简洁(匹配目标效果) sec_xaxis.tick_params(axis='x', which='both', length=0)
关键说明
secondary_xaxis(-0.1):创建次级X轴,参数-0.1控制轴在主X轴下方的距离,数值可根据图表高度调整(比如-0.12会更靠下)。MonthLocator():自动定位每个月的第一天,确保月份标签对应正确的时间区间。DateFormatter('%B'):将日期格式化为英文完整月份名称(如April、May),如果需要中文月份,可改用'%m月'或对应中文格式符。- 隐藏刻度线:通过
tick_params去掉次级轴的刻度线,让视觉效果更贴合目标示意图。
内容的提问来源于stack exchange,提问作者Laetis
相关产品推荐
相关产品推荐

