我正在尝试使用线状图在单个图形中绘制多个数据框来绘制折线图。我的代码是:
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循环的最后一次迭代的折线图。
当前输出:
所需的输出:
请帮助我提供代码!
如果没有适当的数据样本,要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()