如何使用比例和小提琴图绘制我的数据?

How to plot my data using proportions and violin plots?

假设我让人们在阅读问题时嚼一种口香糖,然后回答测试问题。有时他们会在阅读和回答问题时咀嚼橙子口香糖。有时他们会嚼薄荷。不是每个人都咀嚼并回答了所有问题。

假设我的数据布局如下:

ID Gum Type Test (1= correct, 2=incorrect)
1 Orange 1
1 Orange 0
1 Peppermint 0
1 Peppermint 1
2 Orange 0
2 Peppermint 1

我想创建一个小提琴图,在我的 x 轴上,我有口香糖类型,在我的 Y 轴上,我的比例在测试中是正确的,参与者 1 将只显示一个数据Orange 的一个数据点,Peppermint 的一个数据点。因此参与者 1 将作为一个数据点出现在“橙色”小提琴图上,位于中间(50% 的橙色问题是正确的)。

使用:

data = '''ID    Gum Type    Test (1= correct, 2=incorrect)
1   Orange  1
1   Orange  0
1   Peppermint  0
1   Peppermint  1
2   Orange  0
2   Peppermint  1'''
data = [x.split('   ') for x in data.split('\n')]
import seaborn as sns

df = pd.DataFrame(data[1:], columns = data[0])
df['Test (1= correct, 2=incorrect)'] = df['Test (1= correct, 2=incorrect)'].astype(int)
df1 = df.groupby(['ID', 'Gum Type'])['Test (1= correct, 2=incorrect)'].mean().to_frame().reset_index()
ax = sns.violinplot(x="Gum Type", y="Test (1= correct, 2=incorrect)", data=df1)

输出: