[英]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)
这看起来不太好,但这只是一个例子
px.line(df,
x="year",
y="pop",
color="country",
facet_row="continent")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.