微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

一次使用 Seaborn 为数据集中的所有变量绘制箱线图

如何解决一次使用 Seaborn 为数据集中的所有变量绘制箱线图

我看了很多视频,阅读了 Seaborn 文档,浏览了很多网站,但我仍然没有找到问题的答案。

这是来自 Seaborn 的文档:

iris = sns.load_dataset("iris")
ax = sns.Boxplot(data=iris,orient="h",palette="Set2")

代码为单个图形中的每个数值变量创建箱线图。

Boxplots for Iris dataset

当我尝试添加 Hue="species" 时,ValueError: 不能在没有 huex 的情况下使用 y。有没有办法用 Seaborn 做到这一点?我想查看所有数值变量的箱线图并探索一个类变量。因此该图将显示每个物种的所有数值变量。由于有 3 个物种,因此箱线图的总数将为 12 个(3 个物种乘以 4 个数值变量)。

我正在学习 EDA(探索性数据分析)。我认为上图可以帮助我同时探索许多变量。

感谢您花时间阅读我的问题!

解决方法

要应用“色调”,seaborn 需要 "long" form 中的数据框。 df.melt() 是一个可以在这里提供帮助的 Pandas 函数。它将数字列转换为 2 个新列:一个称为“变量”,带有列的旧名称,另一个称为“值”,带有值。生成的数据帧的长度将是 x= 的 4 倍,y= 可以使用“value”,import seaborn as sns from matplotlib import pyplot as plt iris = sns.load_dataset("iris") iris_long = iris.melt(id_vars=['species']) ax = sns.boxplot(data=iris_long,x="value",y="variable",orient="h",palette="Set2",hue="species") plt.tight_layout() plt.show() 可以使用“variable”。

长格式如下:

物种 变量 价值
0 setosa sepal_length 5.1
1 setosa sepal_length 4.9
2 setosa sepal_length 4.7
3 setosa sepal_length 4.6
4 setosa sepal_length 5.0
... ... ...
ajv-formats

boxplot with hue

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。