#python #pandas #dataframe #matplotlib #seaborn
Загружаю данные из датасета iris:
from sklearn import datasets
data = datasets.load_iris(return_X_y=False)
X = data.data
y = data.target
names = data.target_names
Датафрейм со всеми данными и целевой переменной в y:
dfy = pd.DataFrame(y)
df = pd.DataFrame(X)
dfy = dfy.rename(columns={0: 'y'})
df_ = pd.concat([df,dfy], axis = 1)
sns.pairplot(df_, hue = 'y')
Несколько боксплотов в одной картинке без классов выводится:
plt.figure(figsize=(14,7))
sns.boxplot(data=df_.drop(['y'], axis=1), palette=sns.color_palette('Greens'))
plt.show()
А несколько бохплотов с классами из столбца y смогла вывести только так:
for i in range(4):
sns.boxplot(data=df_, x ='y', y = i, hue='y')
plt.show()
Как вывести несколько бохплотов с классами в одной картинке?
Ответы
Ответ 1
df = (pd.DataFrame( data.data, columns=data.feature_names) .assign(target=data.target)) d = (df.set_index("target") .stack() .reset_index(name="val") .rename(columns={"level_1":"feature"})) sns.boxplot(x="feature", y="val", hue="target", data=d) или так: sns.boxplot(x="feature", y="val", data=d)
Комментариев нет:
Отправить комментарий