4.machinelearning的好伙伴seaborn
seaborn库初识
import matplotlib.pyplot as plt import matplotlib as mpl import numpy as np import seaborn as sns """ seaborn是基于matplotlib的一个画图库 """ def sinplot(flip = 1): x = np.linspace(0,14,100) for i in range(1,7): plt.plot(x,np.sin(x+i * 0.5)*(7 - i )* flip) # sinplot() # seaborn默认风格设置 sns.set() sns.set_style("white") # 背景为白色,有刻度 # sns.set_style('ticks') # 默认去掉没用的轴 """对图像的边框和位移的操作必须在图像绘制完成之后才能使用""" #sns.despine(offset=100) # 对图像进行平移 # sns.despine(left=True) # 对于不同的多个图指定统一风格 with sns.axes_style('darkgrid'): plt.subplot(211) sinplot() plt.subplot(212) sinplot(-1)
调色板
import matplotlib as mpl import matplotlib.pyplot as plt import numpy as np import pandas as pd import seaborn as sns # 分类色板 # 离散型画板 # RGB空间色板 current_palette = sns.color_palette() # hls空间的色板 current_palette = sns.hls_palette(8) sns.palplot(current_palette) # seaborn的色板画图函数 # hls画板实例 data = np.random.normal(size = (20,8)) + np.arange(8) / 2 sns.boxplot(data = data,palette= sns.hls_palette(8)) plt.show()
调色板设置
import seaborn as sns import matplotlib.pyplot as plt # 连续性画板 sns.palplot(sns.color_palette('Blues')) sns.palplot(sns.color_palette('BuGn_r')) # 线性的调色板 sns.palplot(sns.color_palette('cubehelix',8)) # 可以设置一个开始到结束值 sns.palplot(sns.cubehelix_palette(8,start = 0.5, rot = - 0.75)) # 指定连续画板的深浅 sns.palplot(sns.light_palette('yellow')) # 由浅到深 sns.palplot(sns.light_palette('yellow',reverse= True)) # 由浅到深反转 sns.palplot(sns.dark_palette('purple')) # 有深入浅 plt.show()
分类属性绘制
import matplotlib.pyplot as plt import seaborn as sns import numpy as np import pandas as pd sns.set(style='whitegrid', color_codes=True) np.random.seed(sum(map(ord,'categorical'))) titanic = pd.read_csv('seaborn_data/titanic.csv') tips = pd.read_csv('seaborn_data/tips.csv') iris = pd.read_csv('seaborn_data/iris.csv') # 柱状图 sns.barplot(x='sex',y='survived',hue='class',data=titanic) # hue指定图像中分几类统计元素 plt.show() # 点线图 sns.pointplot(x='sex',y='survived',hue='class',data=titanic) plt.show() # 可以指定点线图的颜色,点形状,线形式 sns.pointplot(x='class',y='survived',hue='sex',data=titanic,palette={'male':'g','female':'m'} ,markers=['^','o'],linestyles=['-','--']) plt.show() # 多层面板分类图,什么都不指定的时候 sns.catplot(x = 'day', y = 'total_bill', hue = 'smoker', row = 'day', kind = 'box', data = tips, height=5, aspect=0.5) # kind指定图像类型,col指定分几类图像增加维度,height控制图形高度,aspect横纵此 """ 参数大全 *x,y,hue 数据集变量,变量名 *date 数据集 数据集名 *row col 更多分类变量平铺显示 变量名 *aspect横纵此 *oriend方向 """ plt.show()