如何在plotly中创建包含6个线子图的绘图?

2024-07-02 10:47:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我有6个不同的数据帧,我想制作一个图,显示6个图表,其中x轴上显示年份,y轴上显示每100k的事件案例。我一直在使用下面的代码创建一个我想要的图形,但现在我被困在如何将它们全部放入一个图形中

px.line(gyeEUR, x="year", y="incident cases per 100k", color="country", title="Incident Cases per 100k in Europe")

我只想用6个不同的数据帧(即gyeEUR,gyeEMR…)绘制6次。最好的办法是什么


Tags: 数据代码图形line图表事件year案例
1条回答
网友
1楼 · 发布于 2024-07-02 10:47:41

您可以考虑读取所有6个数据帧,向它们添加一个列^ {CD1>} 最后将它们连接到更大的数据帧df并使用

px.line(df,
        x="year",
        y="incident cases per 100k",
        color="country",
        title="Incident Cases per 100k in Europe",
        facet_row="fn")

更新:完整示例

生成数据

在这里,我们只需读取gapminder在plotly.express中构建的数据,并将其拆分为几个文件。考虑到文件名中包含大陆,我们将该列放在每个组中

import os
import plotly.express as px
os.makedirs("data", exist_ok=True)

df = px.data.gapminder()

df.groupby("continent")\
  .apply(lambda x: 
         x.drop("continent", axis=1)\
          .to_csv("data/{}.csv".format(x.name),
                  index=False))

读取数据和concat

# list all csv in data/
files = os.listdir("data/")
files = list(filter(lambda f: f.endswith('.csv'), files))

# read, add continent and concat

out = []
for file in files:
    df = pd.read_csv(f"data/{file}")
    df["continent"] = file[:-4]
    out.append(df)
df = pd.concat(out)

密谋

这看起来不太好,但只是一个例子

px.line(df,
        x="year",
        y="pop",
        color="country",
        facet_row="continent")

相关问题 更多 >