我找了好几天也没找到答案。如何在Dash Plotly中将时间序列数据绘制为带有可选线条的线形图?
我的数据(熊猫数据帧)描述了不同国家的GDP。索引为国家/地区,列为年份。

我没有找到将数据传递到Dash Plotly线形图的解决方案。我的x和y值是多少?
fig = px.line(df, x=?, y=?)发布于 2020-11-15 03:18:59
从外观上看,示例中的解决方案应该是:
fig = px.line(df, x=df.index, y = df.columns)图1-按数据集中显示的列绘制

在这里,如果您想在图例中显示国家/地区,并且有时间在x轴上,只需将df = df.T添加到mix中即可:
图2-转置数据帧以显示x轴上的时间

详细信息
在绘制time series with plotly.时,有很多种可能性,您的示例显示了一个宽格式的数据集。在最新版本中,plotly可以直接优雅地处理long and wide format的两个数据集。如果您需要plotly中详细的详细信息,您还可以仔细查看here。
下面的代码片段使用了上面描述的方法,但是为了让它以完全相同的方式为您工作,必须将您的国家设置为dataframe行索引。但是你已经声明他们是,所以试一试,让我知道它是如何为你工作的。还有一件事:您可以通过单击绘图图例中的年份来自由选择要显示的轨迹。通过遵循What About Dash? here一节中的步骤,也可以在Dash中直接实现由下面的代码片段生成的图形。
完整代码:
import pandas as pd
import numpy as np
import plotly.express as px
import plotly.graph_objects as go
import plotly.io as pio
import plotly.io as pio
# sample dataframe of a wide format
np.random.seed(5); cols = ['Canada', 'France', 'Germany']
X = np.random.randn(6,len(cols))
df=pd.DataFrame(X, columns=cols)
df.iloc[0]=0;df=df.cumsum()
df['Year'] = pd.date_range('2020', freq='Y', periods=len(df)).year.astype(str)
df = df.T
df.columns = df.iloc[-1]
df = df.head(-1)
df.index.name = 'Country'
# Want time on the x-axis? ###
# just include:
# df = df.T
##############################
# plotly
fig = px.line(df, x=df.index, y = df.columns)
fig.update_layout(template="plotly_dark")
fig.show()https://stackoverflow.com/questions/64828801
复制相似问题