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 库返回的值。
我可以手动计算每个物种的平均值并制作新的字典/数据框。但是我觉得应该有一种简单的方法可以直接从 Plotly 显示均值。
我已经检查了文档并且没有运气。我错过了什么?
答案 0 :(得分:1)
我认为你没有遗漏任何东西。我想 Plotly 开发人员的想法是,传递给 px.bar
方法的 DataFrames 每个唯一类别都有一个 y 值,正如 this documentation 显示的 Plotly Express 如何处理长格式或宽格式数据所证明的那样。在奖牌数据集中,有 9 个不同类别的 9 个条形。
正如您所说,这意味着您需要计算每个独特物种的平均值,这可以通过将数据帧的分组平均值直接传递给 data_frame
参数来实现,即使它不是最优雅。
fig = px.bar(
data_frame=df.groupby(['species']).mean().reset_index(),
x="species",
y="bill_depth_mm"
)