import sys
sys.version
#deviation
## 偏差图 是单个特征中的所有值跟特定值之间的关系图 ,
#反应的是所有值偏离特定值得距离
#典型的偏差图:面积图,发散性条形图
#1.发散条形图
#如果你也想根据单个指标查看项目的变化情况,并且可视化此差异的顺序和数量,它有助于快速的区分
#数据中的组的性能,非常直观
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
#plt.hlines() shift + tab 可以查看 参数
#任何事情都需要从简单的事情做起
x = np.random.rand(10)
x.sort()
print(x.mean())
x= x -x.mean() # sub 均值 ,保持有 负值
#x.=sorted(x,reverse =False)
colors =[]
for i in x :
if i > 0 :
colors.append('red')
else :
colors.append('blue')
plt.figure(figsize= (8,4))
#plt.hlines(y=range(10),xmin=0,xmax=x,linewidth=2,color='b');
plt.hlines(y=range(10),xmin=0,xmax=x,linewidth=2,color=colors,alpha=0.6);
#alpha 颜色饱和度
df = pd.read_csv("https://github.com/selva86/datasets/raw/master/mtcars.csv")
#df.head()
#df.shape
#df.cars
plt.figure(figsize=(12,8),dpi = 65)
x=df.loc[:,'mpg'] #提取出mpg 这一列所有的数据
#对目标数据进行标准化处理
#采用z-score 标准化
#将原来的数据进行了线性变换,并没有改变一个数据在该集合中位置
#也没有改变该组数据的分布,而只是将均值变为 0 ,标准差变为 1
df['mpg_z'] = (x - x.mean())/x.std()
df['mpg_z'].values
df['colors'] = ['green' if i > 0 else 'red' for i in df['mpg_z']]
#df.head()
df["colors"].value_counts() # 统计计算
df.sort_values('mpg_z',inplace=True)# inplace 更改原数据集
df.reset_index(drop=True ,inplace =True ) #drop 参数是不要增加新的索引列 ,直接修改原来的index
df.head()
#plt.hlines(y=df.cars,xmin=0,xmax=df.mpg,alpha=0.55,linewidth=2)
#增加装饰
plt.ylabel('$model$',fontsize=12) #设置y 标签, $$ 设置斜体
plt.xlabel('$mileage$',fontsize =12)
plt.yticks(fontsize=10) # y 刻度字段大小
plt.title('Diverging Bars of car Mileage',fontdict={'size':17})
plt.grid(linestyle='--',alpha=0.4)
plt.hlines(y=df.cars,xmin=0,xmax=df.mpg_z,alpha=0.55,linewidth=2,color=df.colors)