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

如何在Python Matplotlib中将天气图表的X轴日期时间标签分为两行显示?

解决Matplotlib时间轴标签拥挤并分成两行显示的问题

我完全理解你遇到的X轴标签拥挤困扰——5天每天3个时段的时间挤在一起,确实会让图表显得杂乱难读。要把日期和时间分成两行显示其实很简单,核心就是把时间字符串里的空格替换成换行符\n,再配合一点布局调整,就能让标签清晰又整洁。

具体实现步骤

  1. 格式化时间标签:把每个原始时间字符串(比如"2022-06-19 12:00:00")转换成「日期+换行+时间」的格式,也就是"2022-06-19\n12:00:00",用列表推导式就能快速完成批量转换。
  2. 适配图表布局:适当调整图表高度,给两行标签留出足够显示空间,再用tight_layout()自动优化布局,避免标签被图表边缘截断。

修改后的完整代码

import matplotlib.pyplot as plt

# 假设time、temp、feels_like是你从API获取到的有效数据
# 第一步:格式化时间标签,将空格替换为换行符
formatted_time = [t.replace(' ', '\n') for t in time]

plt.figure(figsize=(15, 10))  # 调整高度,适配两行标签的显示
plt.title("Changes of Temperature and Feels_like")
plt.plot(formatted_time, temp, label="temperature")
plt.plot(formatted_time, feels_like, label="feels_like")
plt.xlabel("time(JST)")
plt.ylabel("temperature and feels_like(C)")
plt.xticks(rotation=0)  # 两行显示无需旋转,若仍有轻微拥挤可改为rotation=30
plt.legend()
plt.tight_layout()  # 自动调整布局,防止标签被边缘截断
plt.show()

额外提示(如果时间是datetime对象)

如果你的time列表里是Python的datetime对象而不是字符串,可以用strftime方法更灵活地控制格式:

from datetime import datetime
# 假设time是datetime对象列表
formatted_time = [t.strftime('%Y-%m-%d\n%H:%M:%S') for t in time]

这样处理后,X轴的每个标签都会分成两行,日期在上、时间在下,既解决了拥挤问题,又完整保留了时间信息,图表可读性会提升很多。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 00:42:46