美文网首页
Seaborn多图组合

Seaborn多图组合

作者: xieyan0811 | 来源:发表于2019-03-02 13:03 被阅读1次

    1. jointplot 两变量图

     数据分析中常用做图的方式实现相关性分析,即X轴设置为变量A,Y轴设置为变量B,做散点图,由于散点图中点的叠加显示,往往还需要关注每个变量自身的分布情况,jointplot把描述变量的分布图和变量相关的散点图组合在一起,是相关性分析最常用的工具,图片上还能展示回归曲线,以及相关系数。

    import statsmodels.api as sm
    import seaborn as sns
    sns.set(style="darkgrid")
    data = sm.datasets.ccard.load_pandas().data
    g = sns.jointplot('AVGEXP', 'AGE', data=data, kind="reg",
                     xlim=(0, 1000), ylim=(0, 50), color="m")
    

     本例中使用statsmodels库的ccard数据,分析了其中两个数值类型变量的相关性,使用xlim和ylim设置了图片显示范围,忽略了离群点,kind参数可设置做图方式:scatter散点图,kde密度图,hex六边形图等,本例中选择reg画出了线性回归图。

    2. pairplot多变量图

     如果用对N个变量的相关性做散点图,用maplotlib需要做NxN个图,用pairplot函数调用一次即可实现,其对角线上是直方图,其余都是两两变量的散点图,不仅简单,还能组合在一起作对比。

    data = sm.datasets.ccard.load_pandas().data
    sns.pairplot(data, vars=['AGE','INCOME', 'INCOMESQ','OWNRENT'])
    

     图中可以看到,数据类型INCOME与INCOMESQ呈强相关,AGE与INCOME也有一定相关趋势,对角线上的图对应的是每个因素与其自身的对比,图中以直方图显示了该变量的分布。

    3. factorplot两变量关系图

     factorplot用于绘制两维变量的关系图,用kind可指定其作图类型,包括:point, bar, count, box, violin, strip等。

    data = sm.datasets.fair.load_pandas().data
    sns.factorplot(x='occupation', y='affairs', hue='religious', data=data)
    

    4. FacetGrid结构化绘图网格

     FacetGrid可以选择任意的做图方式,以及自定义的做图函数,通常包含两部分,FacetGrid部分指定了数据集,行,列,map部分指定做图方式,以及相应参数。

    g = sns.FacetGrid(tips, col = 'time', row = 'smoker') # 按行和列的分类做N个图
    g.map(plt.hist, 'total_bill', bins = 10) # 指定做图方式
    

     可以看到无论是连续图,还是分类图,无论是用FacetGrid还是barplot都是将多个特征放在同一张图片上展示,其差别一方面在于观察角度不同,另一方面也取决于数据自身的类型。

    相关文章

      网友评论

          本文标题:Seaborn多图组合

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