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

Matplotlib绘制加密货币价格子图:X轴显示数字而非日期的解决方法

解决Matplotlib子图X轴显示数字而非日期的问题

问题出在你的DataFrame索引大概率不是日期类型,或者绘图时没让Matplotlib正确识别日期。直接按下面的步骤改就行:

1. 先把日期转成正确的类型

先检查每个子DataFrame的日期列,把它转成datetime类型并设为索引:

# 遍历所有子DataFrame处理日期
for df in list_df_month:
    # 把你的日期列(比如叫Date)转成datetime,列名不对就换成你实际的
    df['Date'] = pd.to_datetime(df['Date'])
    # 设置该列为索引
    df.set_index('Date', inplace=True)

2. 修改绘图代码,强制渲染日期轴

把绘图循环改成下面这样,用Matplotlib原生的轴对象来绘图,确保日期被识别:

import matplotlib.pyplot as plt
import pandas as pd

plt.figure(figsize=(15, 7))
plt.subplots_adjust(top=1.25, bottom=1.2)
for i, month in enumerate(list_df_month, 1):
    ax = plt.subplot(2, 2, i)
    # 直接指定x为日期索引,y为Close价格
    ax.plot(month.index, month['Close'])
    ax.set_ylabel('Close')
    ax.set_xlabel(None)
    ax.set_title(f"Price for {coin_name[i - 1]}")
    # 把日期标签转45度,避免挤在一起
    plt.xticks(rotation=45)
    
plt.tight_layout()
plt.show()

额外提醒

  • 如果你的索引已经是日期类型但还是显示数字,那就是Pandas的plot方法没自动触发日期格式化,改用Matplotlib的ax.plot就能解决。
  • 旋转日期标签这步很实用,不然日期多了会重叠看不清。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 13:25:18