我正在尝试在seaborn中创建一个小提琴图。输入是一个pandas DataFrame,为了沿x轴分离数据,我需要在单个列上进行区分。我目前有一个DataFrame,其中包含几个传感器的浮点值:
>>>df.columns
Index('SensorA', 'SensorB', 'SensorC', 'SensorD', 'group_id')
也就是说,每个Sensor[A-Z]
列都包含一堆数字:
>>>df['SensorA'].head()
0 0.072706
1 0.072698
2 0.072701
3 0.072303
4 0.071951
Name: SensorA, dtype: float64
针对这个问题,我只关心两个群体:
>>>df['group_id'].unique()
'1', '2'
我希望每个Sensor
在x轴上都是一个独立的小提琴。
我认为这意味着我需要将其转换为以下形式之一:
>>>df.columns
Index('Value', 'Sensor', 'group_id')
新的DataFrame中,当 Sensor
列包含文本 "SensorA"、"SensorB" 等时,Value
列包含原始在每个 Sensor[A-Z]
列中的值,并且组信息保留。
然后,可以使用以下命令创建小提琴图:
ax = sns.violinplot(x="Sensor", y="Value", hue="group_id", data=df)
我在考虑我需要进行反向旋转。有没有简单的方法可以做到这一点?