Подпрограмма Seaborn - PullRequest
0 голосов
/ 07 мая 2020

Я работаю с набором данных радужки.

Я хотел бы построить для каждой из четырех переменных в наборе данных график скрипки и коробчатую диаграмму для каждой строки.

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 (символов на переменную) ?

Заранее спасибо.

1 Ответ

0 голосов
/ 05 июня 2020

Вы можете настроить сетку подзаголовка с помощью plt.subplots(), назначив его оси переменной, которая в таком случае представляет собой двумерный массив (размеры, соответствующие строкам и столбцам сетки подзаголовка). Затем вы можете ссылаться на соответствующие подоси в вызовах графика seaborn с параметром ax.

Обратите внимание, что я использую исходные переменные для удобства, и вам нужно вызвать 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()

Iris data subplots

...