我有一个看起来像这样的数据框:
num_column is_train
30.75 1
12.05 1
.. ..
43.79 0
15.35 0
我想用小提琴图查看num_column
的分布情况,小提琴的每一面(或各部分)在is_train
列中显示我的两个类别中每个类别的数据。
在examples in documentation中,我可以想到的是:
import seaborn as sns
sns.violinplot(x=merged_data.loc[:,'num_column'], hue=merged_data.loc[:,'is_train'], split=True)
从结果来看,我看到参数hue
和split
根本没有任何作用。小提琴的含义没有分开,我看不到任何图例,因此我认为hue
的论点无效。
我正在尝试比较火车和测试数据中某列的分布情况。
答案 0 :(得分:1)
您可以使用x=
参数创建多个小提琴。如果需要通过第三列进行区分,则使用hue
和split
参数。
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
merged_data = pd.DataFrame({'num_column': 20 + np.random.randn(1000).cumsum(),
'is_train': np.repeat([0, 1], 500)})
sns.violinplot(data=merged_data, x='is_train', y='num_column')
plt.show()
答案 1 :(得分:1)