轻松显示 plotly express 条形图的平均值

Easily show mean value for plotly express bar plot

Plotly Express 的条形图默认堆叠观察值,显示总和。

import seaborn as sns
import plotly.express as px

df =sns.load_dataset("penguins")

px.bar(data_frame=df, x="species", y="bill_depth_mm")

我正在尝试显示每个物种的平均值,这是大多数其他流行的 Python 库 return。

我可以手动计算每个物种的平均值并制作一个新的 dictionary/Data 框架。但是我觉得应该有一种简单的方法可以直接从 Plotly 中显示平均值。

我已经检查了文档,但没有成功。我错过了什么?

我认为你没有遗漏任何东西。我想 Plotly 开发人员的想法是,传递给 px.bar 方法的 DataFrame 每个唯一类别都有一个 y 值,this documentation 证明了 Plotly Express 如何处理长格式或宽格式数据。在奖牌数据集中,9 个不同类别有 9 个条。

正如您所说,这意味着您需要计算每个独特物种的平均值,这可以通过将 DataFrame 的 groupby 平均值直接传递给 data_frame 参数来实现,即使它是不是最优雅的。

fig = px.bar(
    data_frame=df.groupby(['species']).mean().reset_index(), 
    x="species", 
    y="bill_depth_mm"
)