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

Python中设置xticks字体大小无效,仅Dec2019标签生效问题求助

解决Matplotlib中日期次刻度字体大小不生效的问题

你遇到的问题核心是:plt.xticks(fontsize=26)仅对x轴主刻度(也就是"Dec2019"标签)生效,而日期数字(02、09、16等)是matplotlib自动生成的次刻度,默认不会被plt.xticks()修改。

解决方法

通过获取绘图的轴对象(Axes),使用tick_params()方法同时指定主、次刻度的字体大小:

  • 先捕获pandas绘图返回的Axes对象,这是精准控制刻度的关键
  • 用tick_params()设置which='both',同时覆盖主、次刻度的字体设置

修改后的完整代码

final = reduce(lambda left,right: pd.merge(left,right, left_index=True, right_index=True), dfs_filtered)

# 捕获绘图的轴对象
ax = final.resample('D').mean().plot(figsize=(12,9), marker='.')

# 设置图例、轴标签与标题
ax.legend(etik, fontsize=13)
ax.set_ylabel('Daily mean concentration $(μg/m^3)$', fontsize=13)
ax.set_xlabel('Day', fontsize=13)
ax.set_title(f"{list(aerosols.keys())[n]} ({ABBR[list(aerosols.keys())[n]]})", fontsize=13)

# 同时设置x、y轴的主/次刻度字体大小
ax.tick_params(axis='x', which='both', labelsize=26)
ax.tick_params(axis='y', which='both', labelsize=26)

# 其他绘图范围与边距设置
ax.set_xlim(pd.Timestamp('2019-12-01'), pd.Timestamp('2019-12-31'))
ax.set_ylim(bottom=0)
ax.margins(x=0)

plt.show()

关键说明

  • tick_params()的which参数可选值:'major'(仅主刻度)、'minor'(仅次刻度)、'both'(两者都修改),这里选'both'就能覆盖所有刻度标签
  • 使用Axes对象的ax.set_xxx方法替代plt全局方法,能更精准控制绘图元素,避免全局设置冲突

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 02:13:34