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

matplotlib绘图x轴标签被截断,常用布局调整方法无效怎么办

可行解决方法
  • 移除多余的坐标轴压缩配置
    你代码中的plt.axis('tight')会强制收紧坐标轴范围,同时挤压子图边距,是导致标签被截断的常见诱因,优先删除该行后再配合plt.tight_layout()或bbox_inches='tight'测试。
  • 手动调整子图底部边距
    如果自动调整仍不生效,可通过subplots_adjust手动给底部预留足够空间,数值可根据显示效果调整:
plt.plot(data)
plt.xticks(rotation=90, ha='right') # 新增ha='right'让标签右对齐,减少空间占用
plt.subplots_adjust(bottom=0.3) # 底部预留30%的画布空间放标签
plt.savefig('plot.png')
plt.close()
  • 显式指定画布大小,避免空间不足
    创建画布时提前设置更宽的尺寸,给时间标签预留横向空间:
fig, ax = plt.subplots(figsize=(12, 6)) # 宽度设为12英寸,高度6英寸,可按需调整
ax.plot(data)
ax.tick_params(axis='x', rotation=90)
plt.tight_layout()
plt.savefig('plot.png')
plt.close()
  • 格式化时间标签,缩短显示长度
    你的数据全部为同一天的时间序列,可隐藏重复的年月日,仅显示时分部分,大幅缩短标签长度:
import matplotlib.dates as mdates
import pandas as pd

# *注意:如果你的datetime列是字符串索引,需要先转为pandas datetime类型,否则时间格式化配置不生效
# data.index = pd.to_datetime(data.index)

fig, ax = plt.subplots(figsize=(10,6))
ax.plot(data)
# 设置时间标签格式为 小时:分钟
ax.xaxis.set_major_formatter(mdates.DateFormatter('%H:%M'))
# 可选:设置每10分钟显示一个标签,避免标签过密
ax.xaxis.set_major_locator(mdates.MinuteLocator(interval=10))
plt.xticks(rotation=90)
plt.tight_layout()
plt.savefig('plot.png')
plt.close()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 17:15:03