我有带结构的Pandas Dataframe:
A B
0 1 1
1 2 1
2 3 4
3 3 7
4 6 8如何生成Seaborn小提琴曲线图,并将每一列作为单独的小提琴曲线图进行并排比较?
发布于 2017-09-10 03:04:06
可以先按melt对列中的组进行整形,然后再按seaborn.violinplot进行整形
#old version of pandas
#df = pd.melt(df, var_name='groups', value_name='vals')
df = df.melt(var_name='groups', value_name='vals')
print (df)
groups vals
0 A 1
1 A 2
2 A 3
3 A 3
4 A 6
5 B 1
6 B 1
7 B 4
8 B 7
9 B 8
ax = sns.violinplot(x="groups", y="vals", data=df)

发布于 2018-05-11 03:27:40
seaborn (至少是0.8.1版本;不确定这是否是新的)支持你想要的东西,而不会弄乱你的数据框架:
import pandas as pd
import seaborn as sns
df = pd.DataFrame({'A': [1, 2, 3, 3, 6], 'B': [1, 1, 4, 7, 8]})
sns.violinplot(data=df)

(请注意,您确实需要设置data=df;如果您只是将df作为第一个参数传入(相当于在函数调用中设置x=df ),它看起来就像是将列连接在一起,然后绘制所有数据的小提琴图)
https://stackoverflow.com/questions/46134113
复制相似问题