美文网首页seaborn数据分析程序员
数据可视化入门(一)——用seaborn进行单变量分析

数据可视化入门(一)——用seaborn进行单变量分析

作者: 墨攻科技 | 来源:发表于2017-11-07 10:56 被阅读128次

    导语

    seaborn是python里面做数据分析和机器学习常用的可视化库。它对matplotlib进行了深度封装,从而可以用非常简单的api接口绘制相对复杂的图形,提供对数据的深入认识。
    这里为了让读者更深入的了解每个图形的意义,我们将从最简单的一维分布介绍起。

    一、认识分布

    import pandas as pd
    import seaborn as sns
    import matplotlib.pyplot as plt
    df = pd.read_csv("C:/Users/GaoJianli/Desktop/ml/SeabornHandbook/demo.csv")
    df 
    
    Id Age
    1 22
    2 38
    3 26
    4 35
    5 35
    6 39

    看下均值、中位数、方差

    df.describe()
    
    count     6.000000
    mean     32.500000
    std       6.892024
    min      22.000000
    25%      28.250000
    50%      35.000000
    75%      37.250000
    max      39.000000
    Name: Age, dtype: float64
    

    二、可视化该分布

    sns.countplot(df["Age"])
    plt.show()
    
    countplot.png

    可以看到,通过countplot会绘制出,每个值在样本中出现的次数。到底哪个值出现得比较多就能很容易的看出来了

    sns.barplot(y="Age", data=df)
    plt.show()
    
    barplot.png

    可以看到,barplot是一个柱状图上面加一个黑线。
    柱状图的值默认情况下对应的要显示的样本的均值,本图中也就是 32.5,而黑线默认情况则标识了95%的置信区间。
    何为95%的置信区间?95%的置信区间指的是对于当前样本所属的分布而言,当有个新的值产生时,这个值有95%的可能性在该区间内,5%的可能性不在该区间内
    我们可以通过速算公式计算95%的置信区间,范围为(26.5,37.5),跟上图可以对应上。
    由此可见,barplot主要用来描述样本的均值和置信区间(置信区间本质上应该算是对整个分布的预估,而不仅仅是展示当前样本里面的信息)

    sns.pointplot(y="Age", data=df)
    plt.show()
    
    pointplot.png
    很容易看出来,pointplot表现的内容跟barplot是一样的。
    pointplot也是用来描述样本的均值和置信区间
    sns.boxplot(y="Age", data=df)
    plt.show()
    
    
    boxplot.png

    boxplot长得跟barplot很像。但描述的内容却不一样。boxplot黑线起点是最小值,终点是最大值。而柱子的起点是25%处的值,终点是75%处的值。柱子中间的那条黑线则对应着50%处的值。跟我们通过df.describe()显示的结果一致(25%是28.25, 75%是37.25,50%是35。注意50%处的这个值和均值是不同的,均值是32.5,boxplot中并未显示出来。)
    因此,boxplot是来表现样本里面的四分位值以及最大最小值的

    sns.distplot(df["Age"])
    plt.show()
    
    distplot.png

    distplot展示了整体的分布情况,其中的曲线图则是概率密度函数。在概率密度函数中,某个点的概率是无意义的。而某两个点之间的概率则是通过对这两个点之间的面积计算得来的。对应到该图上,则意味着Age=40的概率是无意义的,但是Age在30和40之间的概率是二者之间的曲线下的面积。所以,整个曲线下的面积是1,对应着所有值出现的概率总和。
    由此可知,distplot主要用来对整体分布进行预估,并很容易观察出某个区间概率的大小情况

    sns.violinplot(df["Age"])
    plt.show()
    
    violinplot.png
    violinplot是结合了boxplot和distplot的优点。
    通过violinplot既能看到当前样本的最大最小值和四分位值,又能看到对整体分布的预估,了解任意区间的概率分布情况

    相关文章

      网友评论

        本文标题:数据可视化入门(一)——用seaborn进行单变量分析

        本文链接:https://www.haomeiwen.com/subject/rpedmxtx.html