在单个图形中输出多个折线图

问题描述 投票:1回答:1

我正在尝试使用线状图在单个图形中绘制多个数据框来绘制折线图。我的代码是:

import plotly.express as px
labels=category_names[:10]
for category in category_names[:10]:
    df_b=df1[df1['Country/Region']==category]    
    fig=px.line(df_b, x="Date", y="Confirmed",labels="Country/Region") 
    print(category)    
fig.show()

但是,通过使用上面的代码,我仅能获得for循环的最后一次迭代的折线图。

当前输出:

enter image description here

所需的输出:

enter image description here

请帮助我提供代码!

python dataframe for-loop plotly linegraph
1个回答
0
投票

如果没有适当的数据样本,要100%地确定问题的用途并不容易。但是在我看来,您的数据结构与px.data.gapminder()

的结构匹配
    country continent   year    lifeExp pop         gdpPercap   iso_alpha   iso_num
0   Afghanistan Asia    1952    28.801  8425333     779.445314  AFG 4
1   Afghanistan Asia    1957    30.332  9240934     820.853030  AFG 4
2   Afghanistan Asia    1962    31.997  10267083    853.100710  AFG 4
3   Afghanistan Asia    1967    34.020  11537966    836.197138  AFG 4
4   Afghanistan Asia    1972    36.088  13079460    739.981106  AFG 4

因此,我将提供答案,您可以尝试从那里进行排序。当然,除非您愿意共享完整的数据样本和代码片段。

图:

完整代码:

import plotly.express as px
import plotly.graph_objects as go
import pandas as pd

# sample dataset from plotly express
df = px.data.gapminder()

# Filter and pivot dataset for each country,
# and add lines for each country
fig = go.Figure()
for c in df['country'].unique()[:3]:
    dfp = df[df['country']==c].pivot(index='year', columns='country', values='pop') 
    fig.add_traces(go.Scatter(x=dfp.index, y=dfp[c], mode='lines', name = c))

fig.show()
© www.soinside.com 2019 - 2024. All rights reserved.