简体   繁体   English

python matplotlib.pyplot不渲染时间序列图

[英]python matplotlib.pyplot doesn't rendering timeseries plot

ax.plot() doesn't render the time series plot, while pandas.plot() and plt.scatter() works. ax.plot()不会渲染时间序列图,而pandas.plot()plt.scatter()可以工作。 But because I need to reform my axis, I need to use ax.plot() . 但是因为我需要调整轴,所以需要使用ax.plot()

My data: 我的资料:

在此处输入图片说明

When I try to plot it: ax=df_cuba['ORD'].plot() 当我尝试绘制它时: ax=df_cuba['ORD'].plot()

It works perfectly: 它完美地工作:

在此处输入图片说明

But when I try to use : plt.plot(x=df_cuba.index,y=df_cuba['ORD']) 但是当我尝试使用时: plt.plot(x=df_cuba.index,y=df_cuba['ORD'])

It shows nothing: 它什么也没显示:

在此处输入图片说明

It also works for scatterplot . 它也适用于scatterplot

I couldn't find any posts about this. 我找不到有关此的任何帖子。 I suspect the py.plot is trying a different way to plot time series data. 我怀疑py.plot正在尝试以其他方式绘制时间序列数据。

plot does not have named x and y arguments. plot没有命名的xy参数。 So suppose you have xdata and ydata you want to plot, you cannot use plt.plot(x=xdata, y=ydata) , but instead need 因此,假设您有要绘制的xdataydata ,则不能使用 plt.plot(x=xdata, y=ydata) ,而需要

plt.plot(xdata, ydata)

For scatter this is different, here you can use both 对于散布,这是不同的,在这里您可以同时使用

plt.scatter(xdata, ydata)
plt.scatter(x=xdata, y=ydata)

我发现了真正的原因: plt.plot只能绘制数值数据,因此,如果要使用np.datetime64pd.datetime格式绘制时间序列数据,则需要使用以下命令:

plt.plot_date(date, y)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM