#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)
Комментариев нет:
Отправить комментарий