美文网首页
seaborn 简单使用

seaborn 简单使用

作者: 大王叫我来巡老和山 | 来源:发表于2019-01-09 20:32 被阅读0次

    写了matplotlib之后,懒劲复发,不想提笔,蹉跎了多日,今天痛定思痛,下定决心写seaborn,毕竟是很常用的一个包~

    下文主要简单介绍 distplot、boxplot、violinplot、countplot 以及 heatmap 的用法。


    Distplot


    def distplot(data, bins=None, hist=True, kde=True, rug=False, fit=None,
                 hist_kws=None, kde_kws=None, rug_kws=None, fit_kws=None,
                 color=None, vertical=False, norm_hist=False, axlabel=None,
                 label=None, ax=None):
    
    • data:需要绘制的数据。可以是Series对象,一维矩阵或列表。如果是Series对象,则axlabel的值会被设置为Series 的名字。
    • bins:柱状图参数,要绘制的条形柱数目。
    • hist:是否要绘制柱状图。
    • kde:核密度估计(kernel density estimate),是否要绘制密度曲线。
    • rug:控制是否生成观测数值的小细条。
    • norm_hist:如果为True,则直方图纵坐标显示密度而非计数(含有kde图像中默认为True)
    • axlabel:x轴的标签。
    • label:legend标签。
    • ax:如果提供了的话,就在这个axis上面画图。
    import matplotlib.pyplot as plt
    import seaborn as sns
    
    x=np.random.randn(100) 
    sns.distplot(x,axlabel='axlabel',label='label')
    plt.legend()
    plt.show()
    

    图片如下所示:


    distplot

    Boxplot


    箱形图(Box-plot)又称为盒须图、盒式图或箱线图,是一种用作显示一组数据分散情况资料的统计图。它能显示出一组数据的最大值、最小值、中位数及上下四分位数。因形状如箱子而得名。

    seaborn.boxplot(x=None, y=None, hue=None, data=None, order=None,  
                    hue_order=None, orient=None, color=None, palette=None,
                    saturation=0.75, width=0.8, dodge=True, fliersize=5,
                    linewidth=None, whis=1.5, notch=False, ax=None, **kwargs)
    
    • x:横轴,可以是列名(如果data是DataFrame的话)或数据。
    • y:纵轴,可以是列名(如果data是DataFrame的话)或数据。
    • data: DataFrame,数组或者列表类型的数组。
    • orient : “v” | “h”,控制绘图方向。
    import matplotlib.pyplot as plt
    import seaborn as sns
    
    x=np.random.randn(100,3)*3 
    df = pd.DataFrame(x,columns=['a','b','c'])
    df['label'] = df['a'] // 3
    sns.boxplot(x='label',y='a',data=df)
    plt.show()
    

    上面绘制了 df['label'] 和 df['a'] 之间关系的箱型图(两者大约为3倍关系)。效果如下:


    boxplot
    import matplotlib.pyplot as plt
    import seaborn as sns
    
    x=np.random.randn(100,3)*3 
    df = pd.DataFrame(x,columns=['a','b','c'])
    sns.boxplot(data=df)
    plt.show()
    

    这个代码则是分别绘制了 df 中,每列各自的箱型图,效果如下:


    boxplot

    Violinplot


    violinplot与boxplot扮演类似的角色,它显示了定量数据在一个(或多个)分类变量的多个层次上的分布,这些分布可以进行比较。不像箱形图中所有绘图组件都对应于实际数据点,小提琴绘图以基础分布的核密度估计为特征。

    iolinplot(x=None, y=None, hue=None, data=None, order=None,
               hue_order=None, bw='scott', cut=2, scale='area', scale_hue=True, 
               gridsize=100, width=0.8, inner='box', split=False, dodge=True,
               linewidth=None, color=None, palette=None,  ax=None, **kwargs)
    

    栗子如下:

    import matplotlib.pyplot as plt
    import seaborn as sns
    
    x=np.random.randn(100,3)*3
    df = pd.DataFrame(x,columns=['a','b','c'])
    sns.violinplot(data=df)
    plt.show()
    

    结果如下图:


    violinplot

    Countplot


    countplot 主要用来统计数目,函数如下:

    seaborn.countplot(x=None, y=None, hue=None, data=None, order=None, 
    hue_order=None, orient=None, color=None, palette=None, saturation=0.75, 
    dodge=True, ax=None, **kwargs)
    

    简单举一个例子:

    x=np.random.randint(1,10,(100,))
    df = pd.DataFrame(x,columns=['a'])
    sns.countplot(x='a',data=df)
    plt.show()
    

    结果如下:


    countplot

    Heatmap


    热图也是常用的数据分析工具,一般会配合相关系数的计算(说白了就是将计算的相关系数矩阵用热图展示出来)。

    heatmap(data, vmin=None, vmax=None, cmap=None, center=None, 
                annot=None, fmt=".2g", annot_kws=None,
                linewidths=0, linecolor="white",
                square=False, xticklabels="auto", yticklabels="auto",
                mask=None, ax=None, **kwargs):
    
    • data:你所要展示的数据。
    • vmin:右侧坐标最小值。
    • vmax:右侧坐标最大值。
    • cmap: 你所使用的颜色图(color map)。
    • annot:是否在每个格子中显示数值。
    • linewidths: 每个格子之间的线宽。
    • linecolor: 每个格子之间线的颜色。
    • square:格子是否为正方形。
      实例如下:
    x=np.random.randn(50,5)
    df = pd.DataFrame(x)
    sns.heatmap(data=df.corr(),linewidths=0.1,linecolor='white',vmax=1.0,
                square=True, annot=True, cmap="RdBu")
    plt.show()
    

    结果如下:


    heatmap

    好,就先到此为止吧~

    相关文章

      网友评论

          本文标题:seaborn 简单使用

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