Nat*_*ata 2 facet plotly plotly-python
我想用条形图和每个面的平均线绘制面网格。此处的图像上可以看到一个图的所需结果的示例,但最终的图应该有多个这样的图,每个图都在一个方面。
我已经尝试过这个问题的解决方案,但我没有找到一种将它与构面一起使用的方法。我想使用facet_col选项,因为它会绘制与列中不同值一样多的图。
理想情况下,我希望将这两个数字显示在一个上(下面的代码在语法上不正确,只是为了便于理解)。
px.bar(df, x='category', y='user_count',facet_col='domain', facet_col_wrap=4)
px.line(df, x='category', y='user_count_avg',facet_col='domain', facet_col_wrap=4)
Run Code Online (Sandbox Code Playgroud)
import pandas as pd
import plotly.express as px
import numpy as np
df = pd.DataFrame(
{
"category": np.tile(list("ABCDEF"), 6),
"domain": np.repeat([".co.uk", ".com", ".sg", ".media", ".fr", ".de"], 6),
"user_count": np.random.randint(20, 100, 36),
}
)
df = df.groupby("domain", as_index=False).apply(
lambda d: d.assign(user_count_avg=d["user_count"].mean())
)
b = px.bar(df, x="category", y="user_count", facet_col="domain", facet_col_wrap=4)
l = px.line(
df, x="category", y="user_count_avg", facet_col="domain", facet_col_wrap=4
).update_traces(line_color="red")
b.add_traces(l.data)
Run Code Online (Sandbox Code Playgroud)