Python数据分析:数据可视化Seaborn

Python数据分析:数据可视化Seaborn

seaborn
  • Python中的一个制图工具库,可以制作出吸引人的、信息量大的统计图
  • 在matplotlib上构建,支持numpy和pandas的数据结构可视化,甚至是SciPy和statsmodels的统计模型可视化
特点
  • 多个内置主题及颜色主题
  • 可视化单一变量、二维变量用于比较数据集中各变量的分布情况
  • 可视化线性回归模型中的独立变量及不独立变量
  • 可视化矩阵数据,通过聚类算法探究矩阵间的结构
  • 可视化时间序列数据及不确定性的展示
  • 可在分割区域制图,用于复杂的可视化
数据集分布可视化
  • 单变量分布 sns.distplot()

    import numpy as np
    import pandas as pd
    from scipy import stats
    import matplotlib.pyplot as plt
    import seaborn as sns
    %matplotlib inline
    
    # 单变量分布
    x1 = np.random.normal(size=1000)
    sns.distplot(x1)
    

    运行结果:
    在这里插入图片描述

    x2 = np.random.randint(0, 100, 500)
    sns.distplot(x2)
    

    运行结果:
    在这里插入图片描述

    • 直方图sns.distplot(kde = False)

      # 直方图
      sns.distplot(x1, bins=20, kde=False, rug=True)
      

      运行结果:
      在这里插入图片描述

    • 核密度估计 sns.distplot(hist = False) 或 sns.kdeplot()

      # 核密度估计
      sns.distplot(x2, hist=False, rug=True)
      

      运行结果:
      在这里插入图片描述

    • 拟合参数分布 sns.distplot(kde=False, fit = )

      # 拟合参数分布,拟合伽马曲线
      sns.distplot(x1, kde=False, fit=stats.gamma)
      

      运行结果:
      在这里插入图片描述

  • 双变量分布

    • 散布图 sns.jointplot()

      # 双变量分布
      df_obj1 = pd.DataFrame({"x": np.random.randn(500),
                         "y": np.random.randn(500)})
      
      df_obj2 = pd.DataFrame({"x": np.random.randn(500),
                         "y": np.random.randint(0, 100, 500)})
      # 散布图
      sns.jointplot(x="x", y="y", data=df_obj1)
      

      运行结果:
      在这里插入图片描述

    • 二维直方图 Hexbin sns.jointplot(kind = ‘hex’)

      # 二维直方图
      sns.jointplot(x="x", y="y", data=df_obj1, kind="hex");
      

      运行结果:
      在这里插入图片描述

    • 核密度估计 sns.jointplot(kind = ‘kde’)

      # 核密度估计
      sns.jointplot(x="x", y="y", data=df_obj1, kind="kde");
      

      运行结果:
      在这里插入图片描述

  • 数据集中变量间关系可视化 sns.pairplot()

    # 数据集中变量间关系可视化,tips为seaborn自带数据集
    dataset = sns.load_dataset("tips")
    sns.pairplot(dataset);
    

    运行结果:
    在这里插入图片描述

  • 类别散布图

    • sns.stripplot() 数据点会重叠

      exercise = sns.load_dataset('exercise')
      sns.stripplot(x="diet", y="pulse", data=exercise)
      

      运行结果:
      在这里插入图片描述

    • sns.swarmplot() 数据点避免重叠

      sns.swarmplot(x="diet", y="pulse", data=exercise, hue='kind')
      

      运行结果:
      在这里插入图片描述

    • hue 指定子类别

  • 类别内数据分布

    • 盒子图 sns.boxplot() , hue指定子类别

      # 盒子图
      sns.boxplot(x="diet", y="pulse", data=exercise, hue='kind')
      

      运行结果:
      在这里插入图片描述

    • 小提琴图 sns.violinplot(), hue指定子类别

      # 小提琴图
      sns.violinplot(x="diet", y="pulse", data=exercise, hue='kind')
      

      运行结果:
      在这里插入图片描述

  • 类别间统计图

    • 柱状图 sns.barplot()

      # 柱状图
      sns.barplot(x="diet", y="pulse", data=exercise, hue='kind')
      

      运行结果:
      在这里插入图片描述

    • 点图 sns.pointplot()

      # 点图
      sns.pointplot(x="diet", y="pulse", data=exercise, hue='kind');
      

      运行结果:
      在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_41792682/article/details/89608612