Matplotlib:具有日期和数值的散点图

use*_*284 2 python matplotlib pandas

我想生成一个简单的散点图,在X轴上显示日期,在Y轴上显示数值,并且出现类型升级错误。数据来自熊猫数据框。

这是我所拥有的价值的一小部分

X(熊猫系列):

....
179   2016-11-08 18:03:00
180   2016-11-08 18:16:00
181   2016-11-08 18:18:00
182   2016-11-08 18:19:00
183   2016-11-08 18:20:00
184   2016-11-08 18:21:00
Run Code Online (Sandbox Code Playgroud)

名称:日期,长度:185,dtype:datetime64 [ns]

Y轴不是问题:

....
180    18.266667
181    18.300000
182    18.316667
183    18.333333
184    18.350000
Run Code Online (Sandbox Code Playgroud)

长度:185,dtype:float64

如果我做:

plt.scatter(X,Y)
plt.show()
Run Code Online (Sandbox Code Playgroud)

我收到类型升级错误。谢谢您的帮助!

Vin*_*iar 5

之所以plt.scatter()会出现此错误,是因为仅接受列表作为参数,您需要先使用将X数据转换为列表pandas.Series.tolist(),然后再进行分散。假设您的数据是一个Pandas DataFrame,df['dates']它是日期列和df['values']值列:

plt.scatter(df['dates'].tolist(), df['values'])
plt.show()
Run Code Online (Sandbox Code Playgroud)

  • 为什么散点图不能处理熊猫。一系列日期?似乎是一件很基本的事情……使用散点图绘制日期。 (2认同)