繁体   English   中英

如何在 plotly 中创建带有 6 行子图的 plot?

[英]How do I create a plot with 6 line subplots in plotly?

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

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

我只是想要这个 plot 6 次,使用 6 个不同的数据帧(即 gyeEUR,gyeEMR....)。 go 关于这个的最佳方法是什么?

您可能会考虑读取所有 6 个数据帧,向它们添加一列df_i["fn"]= "filename" ,最后将它们连接到更大的 dataframe 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))

读取数据并连接

# 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)

Plot

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM