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

Matplotlib多子图xticks刻度标签45度旋转实现相关问题

问题原因说明

你原来的代码未生效的核心原因是plt.xticks()仅会获取当前活跃子图(默认是最后创建的右下角子图)的x轴刻度标签,无法覆盖所有4张子图。

正确实现方案

方案1:使用plt.setp批量设置

这是最贴合你原有写法思路的实现,仅需修改plt.setp的作用对象即可:

import matplotlib.pyplot as plt
# 创建2*2子图
fig, ax = plt.subplots(2, 2, figsize=(10,5), sharex=True, sharey=True)
# 统一设置所有子图x刻度标签旋转45度
plt.setp([a.get_xticklabels() for a in ax.flat], rotation=45, ha='right')
# 展示
plt.show()

参数说明:

  • ax.flat:将二维的子图数组展平为一维迭代器,遍历所有子图
  • ha='right':设置刻度标签右对齐,避免标签旋转后和刻度位置错位,属于可选但推荐添加的参数

方案2:遍历子图调用tick_params设置

这种写法可读性更强,便于后续扩展其他刻度属性:

import matplotlib.pyplot as plt
fig, ax = plt.subplots(2, 2, figsize=(10,5), sharex=True, sharey=True)
# 遍历所有子图设置x轴刻度
for current_ax in fig.axes:
    current_ax.tick_params(axis='x', rotation=45)
plt.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 15:54:02