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

使用Matplotlib与Pandas绘制的图表模糊,求原因解析

问题分析与解决办法

嘿,我来帮你拆解下这个问题~先看看你贴的图表:

输入图片描述

从你的描述(指数收益率范围在100-130)和代码来看,图表看起来混乱的核心原因是日期列没有被pandas识别为时间类型!

你代码里最后一行type(df['Date'][3])如果输出不是datetime64相关的类型,而是str或者其他类型,那就完全印证了这点——matplotlib把日期当成了普通的离散标签来绘制,导致x轴的元素挤成一团,折线也显得乱糟糟的。

解决步骤

我给你调整下代码,主要是处理日期列的类型,同时优化图表可读性:

# 导入所需库
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

# 读取Excel时直接解析Date列为日期类型
df = pd.read_excel('art.xlsx', parse_dates=['Date'])
# 注:pd.read_excel本身返回的就是DataFrame,不需要再转一次哦
df.head(8)

# 绘制折线图
plt.plot(df['Date'], df['Index returns'])
# 旋转x轴日期标签,避免重叠
plt.xticks(rotation=45)
# 自动调整布局,防止标签被截断
plt.tight_layout()
# 显示图表
plt.show()

# 再次检查日期类型,现在应该是datetime了
print(type(df['Date'][3]))

关键修改点说明

  • 读取Excel时添加parse_dates=['Date']参数,让pandas自动把Date列转换成时间格式,这样matplotlib就能正确渲染时间轴,不会挤在一起。
  • 新增plt.xticks(rotation=45)和plt.tight_layout(),解决日期标签重叠、被截断的问题,让图表更清晰易读。

这样调整后,你的折线图应该就能正常展示指数收益率随时间的变化趋势啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:19:40