首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Seaborn子绘图

Seaborn子绘图
EN

Stack Overflow用户
提问于 2020-05-07 17:46:28
回答 1查看 241关注 0票数 0

我正在处理虹膜数据集。

我想在数据集中为四个变量中的每个变量绘制一个小提琴图和每行一个箱图。

代码语言:javascript
复制
variables=['SepalLengthCm','SepalWidthCm','PetalLengthCm','PetalWidthCm']

for var in variables:
    sns.boxplot(x = 'Species', y = var, data = iris)
    plt.show()
    sns.violinplot(x='Species', y=var, data= iris)
    plt.show()

sns.pairplot(iris, hue="Species")
plt.show()

我已经使用了上面的代码,每个图形都出现在一行中。

有没有人可以帮我把这些数字排序,得到一个矩阵4(变量的数量)x 2(每个变量的字符数)?

提前感谢。

EN

回答 1

Stack Overflow用户

发布于 2020-06-05 16:36:18

可以使用plt.subplots()设置子图栅格,将其轴指定给一个变量,然后该变量就是一个二维数组(对应于子图栅格的行和列的尺寸)。然后,您可以使用ax参数引用seaborn绘图调用中的各个子轴。

注意,为了方便起见,我使用了原始变量,最后只需要调用一次plt.show()

代码语言:javascript
复制
import matplotlib.pyplot as plt
import seaborn as sns
sns.set()

iris = sns.load_dataset('iris')
variables=['sepal_length', 'sepal_width', 'petal_length', 'petal_width']

fig, axes = plt.subplots(4, 2, figsize=[10, 15])

for row, var in enumerate(variables):
    sns.boxplot(x='species', y=var, data=iris, ax=axes[row, 0])
    sns.violinplot(x='species', y=var, data=iris, ax=axes[row, 1])

plt.show()

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61654697

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档