箱线图筛选异常值

############### Boxplot ################
fig = plt.figure(figsize = (15,9))
ax1 = fig.add_subplot(2,1,1)
color = dict(boxes='DarkGreen', whiskers='DarkOrange', medians='DarkBlue', caps='red')
data.plot.box(vert=False, grid = True,color = color,ax = ax1,label = 'Sample data')

################## plot ###################
st = data.describe()
q1 = st['25%']
q3 = st['75%']
iqr = q3-q1
mi = q1 - 1.5*iqr
ma = q3 + 1.5*iqr
error = data[(data<mi)|(data>ma)]
print('Error:{}'.format(len(error)))
data_c1 = data[(data>=mi)&(data<=ma)]
ax2 = fig.add_subplot(2,1,2)
plt.scatter(data_c1.index,data_c1.values,color = 'g',alpha = 0.6,label='normal')
plt.scatter(error.index  ,error.values  ,color = 'r',alpha = 0.8,label='outliers')
ax2.set_xlabel('Index')
ax2.set_ylabel('Value')
ax2.legend()

你可能感兴趣的:(Python,python,Boxchart,异常值筛选)