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
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Seaborn是一个基于matplotlib的数据可视化库,它提供了一些高级的绘图功能。Seaborn还内置了一些数据集,可以用于练习和演示。 下面是一个简单的Seaborn教程,帮助你入门: ### 安装Seaborn 要安装Seaborn,你可以使用pip命令: ``` pip install seaborn ``` ### 导入Seaborn 在使用Seaborn之前,你需要导入它。通常,它被导入为sns: ```python import seaborn as sns ``` ### 加载内置数据集 Seaborn有一些内置的数据集,可以用于练习和演示。你可以使用以下命令加载其中一个数据集: ```python tips_data = sns.load_dataset("tips") ``` ### 绘制散点图 Seaborn的散点图功能非常强大。你可以使用以下命令绘制一个简单的散点图: ```python sns.scatterplot(x="total_bill", y="tip", data=tips_data) ``` ### 绘制直方图 Seaborn的直方图功能也非常强大。你可以使用以下命令绘制一个简单的直方图: ```python sns.histplot(x="total_bill", data=tips_data) ``` ### 绘制箱线图 Seaborn的箱线图功能可以用于显示数据的分布情况。你可以使用以下命令绘制一个简单的箱线图: ```python sns.boxplot(x="day", y="total_bill", data=tips_data) ``` ### 绘制热力图 Seaborn的热力图功能可以用于显示数据的相关性。你可以使用以下命令绘制一个简单的热力图: ```python corr = tips_data.corr() sns.heatmap(corr, cmap="coolwarm") ``` 这只是Seaborn的一小部分功能。它还有很多其他的绘图选项,如线性回归图、分面图等。你可以查看Seaborn的官方文档来了解更多信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值