【发布时间】:2021-12-20 10:50:45
【问题描述】:
我有一个化学数据库。它包含 4 个不同类别的不同元素的化学分析。
我对我的 df 做了一个简化的版本,实际上它有更多的元素。
我想绘制比较每个类别的每个元素的箱线图和小提琴图。像这样的:
你会帮我吗?
【问题讨论】:
标签: pandas matplotlib seaborn boxplot violin-plot
我有一个化学数据库。它包含 4 个不同类别的不同元素的化学分析。
我对我的 df 做了一个简化的版本,实际上它有更多的元素。
我想绘制比较每个类别的每个元素的箱线图和小提琴图。像这样的:
你会帮我吗?
【问题讨论】:
标签: pandas matplotlib seaborn boxplot violin-plot
Seaborn 期望 long-form data 每一行对应一个观察结果。
meltCategory的数据:
melted = df.melt('Category', var_name='Element', value_name='Concentration')
# Category Element Concentration
# 0 A Au 0.1000
# 1 A Au 0.1500
# 2 A Au 0.4000
# 3 B Au 0.1000
# ...
# 10 D Au 1.0000
# 11 A Ag 1.0000
# ...
# 20 D Ag 40.0000
# 21 D Ag 56.0000
将此melted 数据框与boxplot 和violinplot 一起使用:
sns.boxplot(data=melted, x='Element', y='Concentration', hue='Category')
sns.violinplot(data=melted, x='Element', y='Concentration', hue='Category')
【讨论】: