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

Python绘图:如何优化Datetime横轴并设置末位刻度加粗?

解决双Y轴图横轴Datetime拥挤及最后刻度加粗问题

核心思路

针对850条数据的Datetime横轴拥挤问题,通过控制刻度密度、优化标签显示解决,再通过定位最后一个刻度对象实现加粗效果。以下是完整可运行的代码方案:

步骤1:数据预处理与基础绘图

先确保Datetime列是datetime类型,再初始化双Y轴画布:

import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.dates as mdates

# 转换Datetime列为datetime类型(假设你的DataFrame名为df)
df['Datetime'] = pd.to_datetime(df['Datetime'])

# 创建画布与第一个Y轴
fig, ax1 = plt.subplots(figsize=(12, 6))

# 绘制Cloud Coverage曲线
ax1.plot(df['Datetime'], df['Cloud Coverage'], color='tab:blue', label='Cloud Coverage')
ax1.set_xlabel('Datetime')
ax1.set_ylabel('Cloud Coverage', color='tab:blue')
ax1.tick_params(axis='y', labelcolor='tab:blue')

# 创建双Y轴并绘制Cloud type曲线
ax2 = ax1.twinx()
ax2.plot(df['Datetime'], df['Cloud type'], color='tab:orange', label='Cloud type')
ax2.set_ylabel('Cloud type', color='tab:orange')
ax2.tick_params(axis='y', labelcolor='tab:orange')

# 合并两组图例
lines1, labels1 = ax1.get_legend_handles_labels()
lines2, labels2 = ax2.get_legend_handles_labels()
ax1.legend(lines1 + lines2, labels1 + labels2, loc='upper right')

步骤2:优化横轴刻度(解决黑块/拥挤)

提供两种适配不同时间分布的方案,选其一即可:

方案A:按时间间隔设置刻度(适配规律时间序列)

用时间定位器自动控制刻度密度,比如每4小时显示一个刻度:

# 设置横轴主刻度为每4小时一个
ax1.xaxis.set_major_locator(mdates.HourLocator(interval=4))
# 设置刻度显示格式(可根据需求调整,比如只显示日期+小时)
ax1.xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m-%d %H'))

方案B:按数据采样间隔设置刻度(适配无规律时间序列)

直接按数据索引采样,比如每50条数据显示一个刻度:

# 每隔50条数据取一个Datetime作为刻度
tick_indices = range(0, len(df), 50)
tick_dates = df['Datetime'].iloc[tick_indices]
ax1.set_xticks(tick_dates)
# 设置刻度标签格式并旋转,避免重叠
ax1.set_xticklabels(tick_dates.dt.strftime('%Y-%m-%d %H'), rotation=45, ha='right')

步骤3:将最后一个Datetime刻度设为加粗

获取横轴刻度标签对象,修改最后一个的字体权重:

# 获取所有横轴刻度标签
xtick_labels = ax1.get_xticklabels()
# 把最后一个标签设置为加粗
if xtick_labels:
    xtick_labels[-1].set_weight('bold')

最后调整布局并显示

plt.tight_layout()
plt.show()

额外注意事项

  • 若时间跨度较大(比如跨多天),可改用mdates.DayLocator()设置按天显示刻度。
  • 若仍有标签重叠,可进一步调大画布尺寸(比如figsize=(15,6))或增加采样间隔。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 15:22:19