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

Matplotlib柱状图问题:twinx双Y轴下X轴日期间隔设为1不生效

matplotlib设置X轴日期间隔为1不生效的解决方案
  • 首先确认依赖导入正确,必须从matplotlib.dates导入相关工具类,不要混用其他库的日期格式化类
  • 提前对数据按日期列排序,避免乱序导致坐标轴渲染异常
  • 增加X轴标签自动旋转和布局自适应配置,避免标签重叠时matplotlib自动跳过部分日期
  • 双Y轴场景下不需要额外配置次坐标轴的X轴,主坐标轴的定位器配置会自动同步

修正后的完整代码如下:

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

# 先处理日期列并排序
df['Dates'] = pd.to_datetime(df.Dates)
df = df.sort_values('Dates').reset_index(drop=True)

fig, ax = plt.subplots(figsize=(16, 9))
ax.bar(df['Dates'],
       df['Score'],
       color='blue',
       width=0.8) # 柱状图宽度建议设置为小于1,避免相邻柱子重叠
date_form = DateFormatter("%d/%m/%Y")
ax.xaxis.set_major_formatter(date_form)
ax.xaxis.set_major_locator(mdates.DayLocator(interval=1))
# 增加X轴标签旋转配置,避免日期标签重叠
plt.setp(ax.get_xticklabels(), rotation=45, ha='right')

ax2=ax.twinx()
ax2.plot(df['Dates'],
       df['Price'],
         color = 'black')
# 自适应布局避免标签被截断
plt.tight_layout()
plt.show()

原代码运行结果图:
运行结果图

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 21:39:02