我是靠谱客的博主 端庄纸飞机,最近开发中收集的这篇文章主要介绍Seaborn教程,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

原教程

绘图风格管理

控制图形审美

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)
  1. Sequential 用于有顺序的分块数据
  2. diverging 用于中间有分割点的分块数据

绘图函数

数据分布可视化

  1. 单变量分布
    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)
  1. 双变量分布
    类似于二维的rug plot, kde plot, kind对应的有kde, hex
sns.jointplot(x = 'x', y='y', data =df, kind='kde')
  1. 成对特征之间的关系
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')

类别型变量可视化

  1. 散点图
sns.stripplot(x='day', y='total_bill',data=tips, jitter=True);
sns.swarmplot(x, y, hue) # can add another categorical variable with hue parameter
  1. 变量的分布图
sns.boxplot(x,y,hue)
sns.violinplot(x,y,hue)  #boxplot with kde
  1. 统计估计
sns.barplot(x,y,hue)
sns.countplot(x, data)
sns.pointplot(x, y,hue)
  1. 绘制多面板的相关图
    类似于更高层次的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

参考文献:

  1. 用Seaborn画出好看的分布图
  2. seaborn tutorial

最后

以上就是端庄纸飞机为你收集整理的Seaborn教程的全部内容,希望文章能够帮你解决Seaborn教程所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(38)

评论列表共有 0 条评论

立即
投稿
返回
顶部