美文网首页
Matplotlib和Seaborn之轴须图和带状图

Matplotlib和Seaborn之轴须图和带状图

作者: IntoTheVoid | 来源:发表于2020-04-24 15:34 被阅读0次

    轴须图和带状图

    你可能遇到过用散点图等双变量图形绘制的边缘分布,或者对这种分布感兴趣。边缘分布是变量的单变量分布,忽略任何其他变量的值。对于定量数据来说,直方图或密度曲线适合边缘分布,但是你可能还见过轴须图。在轴须图中,所有数据点都在一个轴上绘制,每个点一个刻度或线条。与边缘直方图相比,轴须图的分布情况不太好理解,但是在呈现数据方面更紧凑。

    Seaborn 的 JointGrid 类可以绘制这种双变量关系,并对数字数据绘制边缘单变量图形。plot_joint 方法为主变量指定一个绘图函数,并将两个变量的图形连接起来,而 plot_marginals 方法会为两个边缘图形指定绘图函数。此处,我们利用 seaborn 的 rugplot 函数。

    g = sb.JointGrid(data = df, x = 'num_var1', y = 'num_var2')
    g.plot_joint(plt.scatter)
    g.plot_marginals(sb.rugplot, height = 0.25)
    
    

    “height”参数指定轴须图的刻度为边缘轴大小高度的 0.25 倍。

    image.png

    在此例中,轴须图很合适,因为数据并不多或过于密集。在其他情形下,直方图或密度曲线可能更合适。你或许不会将轴须图当做首要选择,但是在某些情形下是个不错的图形。

    另一个和轴须图相似的图形类型是带状图。它和集群图相似(请参阅上一页),但是没有任何躲避或抖动现象,以分开数据点或避开分类线。你还可以将带状图看做根据分类级别分面的轴须图。可以使用 seaborn 的 swarmplot 函数向任何其他图形添加集群图。还可以在 violinplot 函数中使用 inner = "stick"inner = "point" 选项 ,在小提琴区域(而不是箱线图)添加集群图。

    plt.figure(figsize = [10, 5])
    base_color = sb.color_palette()[0]
    
    # left plot: strip plot
    plt.subplot(1, 2, 1)
    ax1 = sb.stripplot(data = df, x = 'num_var', y = 'cat_var',
                       color = base_color)
    
    # right plot: violin plot with inner strip plot as lines
    plt.subplot(1, 2, 2)
    sb.violinplot(data = df, x = 'num_var', y = 'cat_var', color = base_color,
                 inner = 'stick')
    
    
    image.png

    相关文章

      网友评论

          本文标题:Matplotlib和Seaborn之轴须图和带状图

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