概述
原教程
绘图风格管理
控制图形审美
matplotlib是高度自定义的,但是很难去知道怎么调节参数获得一个很漂亮的plot,Seaborn库包含一些定制好的主题和一些高层次的参数去调节matplotlib的图像。
Seaborn库把matplotlib的参数分为两种,一种是设置图形的审美外观风格,另一种则是为了调节缩放以达到更好的观察效果。
设置风格通过axes_style()和set_style()实现,为了缩放图形一般用plotting_context()和set_context();对于两种情况,前一个函数类似于get,后一个类似于set。
风格
Seaborn内置5种主题:darkgrid, whitegrid, dark, white和ticks,默认为darkgrid
sns.set_style('whitegrid')
data = np.random.normal(size=(20,6))+np.arange(6)/2
sns.boxplot(data=data)
缩放
缩放在seaborn库内相关的尺寸有:paper, notebook, talk和poster, notebook是默认值。
sns.set_context('paper')
plt.figure(figsize=(8,6))
sns.boxplot(data)
选择颜色方案
选择颜色方案是一个很有技巧的事情,Seaborn库定制一些颜色方案可使用。
一般使用到color_palette()和set_palette(),三种类型的调色板:qualitative, sequential和diverging
1. Qualitative 用于离散化没有固定顺序的分块数据
current_palette = sns.color_palette()
sns.palplot(current_palette) #plot current color palette;
sns.set_palette("husl")
pal = sns.dark_palette('purple', as_cmap=True)
sns.kdeplot(x, y, cmap=pal)
- Sequential 用于有顺序的分块数据
- diverging 用于中间有分割点的分块数据
绘图函数
数据分布可视化
- 单变量分布
sns.distplot默认画出一个直方图和kde(核密度估计)图
x = np.random.normal(size=100)
sns.distplot(x, kde=True , rug=True, hist=True)
#sns.rugplot
#sns.kdeplot
核密度估计是非参数估计,关于核密度估计我会出一个详细的博客,distplot也可以采用拟合参数估计。
x = np.random.gamma(6, size=200)
sns.distplot(x, kde=False, fit=stats.gamma)
- 双变量分布
类似于二维的rug plot, kde plot, kind对应的有kde, hex
sns.jointplot(x = 'x', y='y', data =df, kind='kde')
- 成对特征之间的关系
sns.pairplot(iris)
g = sns.PairGrid(iris)
g.map_diag(sns.kdeplot)
g.map_offdiag(sns.kdeplot, cmap='Blues_d', n_levels=6)
回归关系可视化
画出包含95%置信区间的线性回归结果,线性的和多项式的拟合结果都可以,regplot()的参数可以调节。residplot可以画出拟合后的残差结果。
sns.regplot(x='total_bill', y='tip', data=tips)
sns.regplot(x='total_bill', y='tip', data=tips)
sns.residplot() ### plot residual value to check model
sns.jointplot(kind='reg')
类别型变量可视化
- 散点图
sns.stripplot(x='day', y='total_bill',data=tips, jitter=True);
sns.swarmplot(x, y, hue) # can add another categorical variable with hue parameter
- 变量的分布图
sns.boxplot(x,y,hue)
sns.violinplot(x,y,hue) #boxplot with kde
- 统计估计
sns.barplot(x,y,hue)
sns.countplot(x, data)
sns.pointplot(x, y,hue)
- 绘制多面板的相关图
类似于更高层次的pairplot
sns.factorplot(x, y, hue, col, kind)
数据敏感的gridplot
g = sns.FacetGrid(tips, col='time',row='age', hue='smoker')
g.map(plt.hist, 'total_bill', 'tip') #plt.hist can be a customized plot function
参考文献:
- 用Seaborn画出好看的分布图
- seaborn tutorial
最后
以上就是端庄纸飞机为你收集整理的Seaborn教程的全部内容,希望文章能够帮你解决Seaborn教程所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复