【发布时间】:2019-10-27 03:22:07
【问题描述】:
我想以箱线图的形式描述我在数据集中找到的变量的值。数据集如下:
https://archive.ics.uci.edu/ml/datasets/breast+cancer+wisconsin+(original)
到目前为止,我的代码如下:
import pandas as pd
import numpy as np
from sklearn.impute import SimpleImputer
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn import preprocessing
df=pd.read_csv(file,names=['id', 'clump_thickness','unif_cell_size',
'unif_cell_shape', 'marg_adhesion', 'single_epith_cell_size',
'bare_nuclei', 'bland_chromatin', 'normal_nucleoli','mitoses','Class'])
#boxplot
plt.figure(figsize=(15,10))
names=list(df.columns)
names=names[:-1]
min_max_scaler=preprocessing.MinMaxScaler()
X = df.drop(["Class"],axis=1)
columnsN=list(X.columns)
x_scaled=min_max_scaler.fit_transform(X) #normalization
X[columnsN]=x_scaled
y = df['Class']
sns.set_context('notebook', font_scale=1.5)
sns.boxplot(x=X['unif_cell_size'],y=y,data=df.iloc[:, :-1],orient="h")
我的箱线图返回下图:
但我想如下图所示显示我的信息:
我知道这是来自不同的数据集,但我可以看到他们同时显示了每个特征及其值的诊断。我试图以不同的方式来做,但我不能做那个图表。
我尝试了以下方法:
data_st = pd.concat([y,X],axis=1)
data_st = pd.melt(data_st,id_vars=columnsN,
var_name="X",
value_name='value')
sns.boxplot(x='value', y="X", data=data_st,hue=y,palette='Set1')
plt.legend(loc='best')
但仍然没有结果。有什么帮助吗?
谢谢
【问题讨论】: