为时间序列图添加趋势线

3

我想在Python中的时间序列图中添加趋势线,这意味着我的x轴(日期)格式为datetime64[ns]。当我遵循这个主题时:如何在python matplotlib点(散点)图中添加趋势线?,并运行我的代码:

import numpy as np
#Trendlines
z = np.polyfit(df1['Datum'], df1['Score'], 1)
p = np.poly1d(z)

我遇到了以下错误:

UFuncTypeError: ufunc 'add' 无法使用类型为 dtype(' 的操作数

我该如何解决?这个thread也没有帮助

2个回答

7
解决方法是:
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
x = mdates.date2num(df1['Datum'])
y= df1['Score']
z = np.polyfit(x, df1['Score'], 1)
p = np.poly1d(z)
#then the plot
df1.plot('Datum', 'Score')
plt.plot(x, p(x), "r--")

使用线图和趋势线给出结果


1
#  date         value
# 01-01-2021    141937
# 01-02-2021    41204
# 01-03-2021    2198991
# 01-04-2021    8744873
# 01-09-2021    7825446

x = df['date']
x = pd.to_datetime(x)
plt.scatter(x, y)

y = df['value'].tolist()
x = dates.date2num(list(pd.to_datetime(x)))
z = np.polyfit(x,y,1)
p = np.poly1d(z)
plt.plot(pd.to_datetime(a['date']), p(x), "r--")

你能解释一下 a['date'] 是什么,它是从哪里来的吗?另外,dates 是什么? - Joe Ferndz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接