我已经引用了之前的查询 All arguments should have the same length plotly但仍然没有得到我的问题的答案。
我有一个黄金价格数据集。
Date Price
31-01-1979 1840.8
28-02-1979 2011.7
30-03-1979 1940.2
30-04-1979 2013.1
. .
. .
. .
26-02-2021 128073.3
31-03-2021 123639
30-04-2021 130934.3
31-05-2021 137979.1
我创建了 12 个月的移动平均线:
df['MA12'] = df['Price'].rolling(12).mean()
1) 首先我使用下面的命令:我分别得到了两个不同的价格图和移动平均线图。
import plotly.express as px
fig1 = px.line(df, x="Date", y="Price", template = 'plotly_dark')
fig2 = px.line(df, x="Date", y="MA12", template = 'plotly_dark')
fig1.show()
fig2.show()
2) 现在我使用下面的命令来绘制时间序列:我想要在单个图上相对于日期的价格和移动平均价格趋势
import plotly.express as px
fig = px.line(df, x='Date', y=["Price","MA12"], template = 'plotly_dark')
fig.show()
获取错误:ValueError:所有参数应具有相同的长度。参数 y
的长度为 2,而先前参数 ['Date'] 的长度为 509。
我的查询:
a) 为什么我会收到此错误。
b) 请帮助我获取 plotly 命令,以便在单个图中获取价格和移动平均价格。
最佳答案
虽然评论中已经解决了答案,但我添加了一个答案,以便遇到相同问题的人可以找到解决方案。
Colab 的 Plotly 版本为 v4.4.1,该版本 Plotly 中的 px.line
函数不支持将多元素列表作为 y
的输入争论。升级到最新版本的 Plotly v4.14.3
,然后在 Colab 中重新启动运行时即可解决此问题。
关于Python:ValueError:所有参数都应该具有相同的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67955946/