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

使用PyPlot可视化同一数据时折线异常问题求助

问题原因与解决办法

你的问题出在排序操作没有实际生效,导致时间序列处于乱序状态,matplotlib按原始数据顺序绘图时,折线就会出现交叉。

具体分析

你执行了active_addresses.sort_values(by='Active Addresses/t'),但sort_values默认参数inplace=False——这行代码只会返回一个排序后的新DataFrame,不会修改原有的active_addresses。当你用plt.plot直接绘制时,X轴的时间数据还是乱序的,折线会在时间点之间来回跳转,呈现交叉状态。

而pandas自带的plot()方法,会自动识别时间列并按时间顺序绘图(即使数据乱序),所以显示正常。

解决办法

把排序后的结果赋值回原DataFrame,或者设置inplace=True实现原地修改:

方法一:赋值回原变量

active_addresses["Active Addresses/t"] = pd.to_datetime(active_addresses["Active Addresses/t"])
# 保存排序后的结果到原变量
active_addresses = active_addresses.sort_values(by='Active Addresses/t')

方法二:使用inplace参数原地修改

active_addresses["Active Addresses/t"] = pd.to_datetime(active_addresses["Active Addresses/t"])
# 原地排序,无需额外赋值
active_addresses.sort_values(by='Active Addresses/t', inplace=True)

完成排序后再执行matplotlib绘图代码,折线就会按时间顺序正常显示:

plt.plot(active_addresses["Active Addresses/t"], active_addresses["Active Addresses/v"])
plt.gca().set(xlabel="Year", ylabel="Value") 
plt.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 11:48:24