gpt4 book ai didi

python - 如何创建显示均值、中值和模式的seaborn violinplot?

转载 作者:行者123 更新时间:2023-12-04 09:47:57 25 4
gpt4 key购买 nike

有没有办法为 violinplot 添加均值和模式?我的其中一列中有分类数据,下一列中有相应的值。我尝试查看 matplotlib fiddle 图,因为它在技术上提供了我正在寻找的功能,但它不允许我在 x 轴上指定分类变量,这很重要,因为我正在查看每个类别的数据分布。我添加了一个小表格来说明数据的形状。

plt.figure(figsize=10,15)
ax=sns.violinplot(x='category',y='value',data=df)

enter image description here

最佳答案

首先我们计算众数和手段:

import seaborn as sns
import pandas as pd
from matplotlib import pyplot as plt

df = pd.DataFrame({'Category':[1,2,5,1,2,4,3,4,2],
'Value':[1.5,1.2,2.2,2.6,2.3,2.7,5,3,0]})

Means = df.groupby('Category')['Value'].mean()
Modes = df.groupby('Category')['Value'].agg(lambda x: pd.Series.mode(x)[0])

您可以使用 seaborn 制作基本图,下面我使用 inner= 删除内部箱线图。参数,以便我们可以看到模式和含义:
fig, ax = plt.subplots()
sns.violinplot(x='Category',y='Value',data=df,inner=None)
plt.setp(ax.collections, alpha=.3)
plt.scatter(x=range(len(Means)),y=Means,c="k")
plt.scatter(x=range(len(Modes)),y=Modes)

enter image description here

关于python - 如何创建显示均值、中值和模式的seaborn violinplot?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62062042/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com