科学计算库(三)

seaborn

Posted by 新宇 on January 29, 2020

一、seaborn

1. seaborn是什么?

Seaborn基于 Matplotlib核心库进行了更高级的API封装,可以轻松地画出更漂亮的图形,而Seaborn的漂亮主要体现在配色更加舒服,以及图 形元素的样式更加细腻。

# 安装

pip install seaborn==0.10.1
# 导入

import seaborn as sns
 

2. 绘制单变量分布

  1. API

    seaborn.distplot(a, bins=None, hist=True, kde=True, rug=False, fit=None, color=None)

  2. 参数说明

  3. 代码演示
     import seaborn as sns
     np.random.seed(0)
     arr = np.random.randn(1000)
     # 单变量的分布情况
    
     sns.distplot(arr, bins=10,hist=True, kde=True,rug=True)
    
  4. 图像

3. 绘制双变量分布

  1. API

    seaborn.jointplot(x, y, data=None,kind=’scatter’, stat_func=None, color=None,ratio=5, space=0.2, dropna=True)

  2. 参数说明

  3. 代码演示
     import numpy as np 
     import pandas as pd 
     import seaborn as sns
     # 1. 绘制散点图
    
     dataframe_obj = pd.DataFrame({"x": np.random.randn(500),"y": np.random.randn(500)}) 
     sns.jointplot(x="x", y="y", data=dataframe_obj)
    
     # 2.绘制二维直方图
    
     sns.jointplot(x="x", y="y", data=dataframe_obj, kind="hex")
    
     # 3.绘制核密度估计图形
    
     sns.jointplot(x="x", y="y", data=dataframe_obj, kind="kde")
    
  4. 图示

4. 绘制成对双变量分布

  1. API
    • Seaborn.pairplot()
  2. 图示

  3. 代码

     # 加载seaborn中的数据集(此处需要下载数据集并放在用户目录下的seaborn-data目录中)
    
     dataset = sns.load_dataset("iris")
     dataset.head()
    
     # 绘制多个成对的双变量分布 
    
     sns.pairplot(dataset)
    

5. 用分类数据绘图

1. 类别散点图

  1. API
    • 部分重叠:seaborn.stripplot(x=None, y=None, hue=None, data=None, order=None, hue_order=None, jitter=False)
    • 不重叠散点图:sns.swarmplot(x=””, y=””, data=xxx)
  2. 图示

  3. 代码

     # stripplot
    
     # 获取tips数据
    
     tips = sns.load_dataset("tips")
     sns.stripplot(x="day", y="total_bill", data=tips)
    
     # swarmplot
    
     sns.swarmplot(x="day", y="total_bill", data=tips)
    

2. 类别内的数据分布

  1. API
    • 箱型图:seaborn.boxplot(x=None, y=None, hue=None, data=None, orient=None, color=None, saturation=0.75, width=0.8)
    • 小提琴图:seaborn.violinplot(x=None, y=None, hue=None, data=None)
  2. 图示

3. 类别内的统计估计

  1. API
    • 条形图:barplot()
      • 查看集中趋势(均值估计,与matplatlib中的bar不同)
      • 黑色竖线 表示区间估计,95%的置信区间
    • 点图:pointplot()
  2. 图示