我正在处理虹膜数据集。
我想在数据集中为四个变量中的每个变量绘制一个小提琴图和每行一个箱图。
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(每个变量的字符数)?
提前感谢。
发布于 2020-06-05 16:36:18
可以使用plt.subplots()设置子图栅格,将其轴指定给一个变量,然后该变量就是一个二维数组(对应于子图栅格的行和列的尺寸)。然后,您可以使用ax参数引用seaborn绘图调用中的各个子轴。
注意,为了方便起见,我使用了原始变量,最后只需要调用一次plt.show()。
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()

https://stackoverflow.com/questions/61654697
复制相似问题