下面的代码段使用了上述方法,但为了让它以完全相同的方式为您工作,您的国家/地区必须设置为dataframe行索引。但是你已经说过了,所以试一下,让我知道它对你的效果如何。还有一件事:通过单击绘图图例中的年份,您可以自由选择要显示的轨迹。下面的代码段生成的图也可以直接在Dash中实现,方法是按照What About Dash?here节下的步骤进行
完整代码:
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()
从外观上看,您的示例中的解决方案应该是:
绘图1-按数据集中显示的列进行绘图
从这里开始,如果您希望在图例中显示国家,并且在x轴上有时间,您可以将
df = df.T
添加到混合中,并获得:图2-在x轴上显示时间的转置数据帧
详细信息
当涉及到绘制time series with plotly.时,有多种可能性。您的示例显示了一个宽格式的数据集。在最新版本中,plotly可以优雅地直接处理long and wide format的两个数据集。如果您需要plotly中的长数据和宽数据的详细信息,还可以仔细查看here
下面的代码段使用了上述方法,但为了让它以完全相同的方式为您工作,您的国家/地区必须设置为dataframe行索引。但是你已经说过了,所以试一下,让我知道它对你的效果如何。还有一件事:通过单击绘图图例中的年份,您可以自由选择要显示的轨迹。下面的代码段生成的图也可以直接在Dash中实现,方法是按照
What About Dash?
here节下的步骤进行完整代码:
相关问题 更多 >
编程相关推荐