【问题标题】:Python: ValueError: All arguments should have the same length plotlyPython:ValueError:所有参数都应具有相同的长度
【发布时间】:2021-06-13 07:41:43
【问题描述】:

我已经参考了上一个查询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 命令以在单个图中获取价格和移动平均价格。

【问题讨论】:

  • 我用雅虎财经的APPL股票价格运行了你的代码,第二个代码也正确显示,没有错误。包括缺失值在内的行数相同。
  • 您使用的是什么版本的 Plotly?如果您使用的不是最新版本,您可能需要升级
  • @r-beginners,那么为什么我会收到此错误。我已将价格保存在 csv 表中。注意:我使用了来自 LBMA(伦敦金银市场协​​会)的黄金价格。我的第一个代码工作正常。使用 y=["Price","MA12"] 时出现第二个代码问题。分别使用 y="Price" 和 x = "Date" 或 y="MA12" 和 x = "Date" 时获取绘图。
  • @DerekO 我正在使用 Colab Notebook 运行这些命令。
  • 我在 google Colab 中运行它时遇到了同样的错误,Colab 版本是 4.4.1,我更新了它,图表显示在 4.14.3 中。让我们升级版本。

标签: python pandas plotly


【解决方案1】:

即使答案已在 cmets 中得到解决,我仍会添加一个答案,以便遇到相同问题的人可以找到解决方案。

Colab 的 Plotly 版本是 v4.4.1,此版本 Plotly 中的 px.line 函数不支持将多元素列表作为 y 参数的输入。升级到最新版本的 Plotly v4.14.3,然后在 Colab 中重新启动运行时可解决此问题。

【讨论】:

  • 嗨,Derek,只是添加一条评论 - 我们需要在升级后重新启动 Colab 中的运行时。
  • 哦,好点! - 我已经相应地编辑了我的答案
猜你喜欢
  • 2015-06-17
  • 2021-09-13
  • 2023-04-06
  • 2019-05-04
  • 2021-07-12
  • 2017-06-22
  • 1970-01-01
  • 1970-01-01
  • 2021-12-05
相关资源
最近更新 更多