美文网首页R可视化和ggplot2
《R数据可视化手册》学习笔记6---描述数据分布(2)分组直方图

《R数据可视化手册》学习笔记6---描述数据分布(2)分组直方图

作者: RSP小白之路 | 来源:发表于2023-10-03 14:52 被阅读0次

    写在前面。

    这篇文章对应原书的第6章,主要介绍一些描述数据分布的可视化图形。主要包括如下这些:

    • 直方图
    • 密度图
    • 频数多边形
    • 箱线图
    • 小提琴图
    • Wilkinson点图

    直方图

    直方图是常见的一种呈现数据分布情况的图形,下面分别说明一下。

    分组直方图

    如何绘制多组数据的直方图

    • 进行分面

    运行geom_histogram()并进行分面绘图即可,使用的示例数据需要加载MASS包。

    示例数据birthwt数据集:

    > str(birthwt)
    'data.frame':   189 obs. of  10 variables:
     $ low  : int  0 0 0 0 0 0 0 0 0 0 ...
     $ age  : int  19 33 20 21 18 21 22 17 29 26 ...
     $ lwt  : int  182 155 105 108 107 124 118 103 123 113 ...
     $ race : int  2 3 1 1 1 3 1 3 1 1 ...
     $ smoke: int  0 0 1 1 1 0 0 0 1 1 ...
     $ ptl  : int  0 0 0 0 0 0 0 0 0 0 ...
     $ ht   : int  0 0 0 0 0 0 0 0 0 0 ...
     $ ui   : int  1 0 0 1 1 0 0 0 0 0 ...
     $ ftv  : int  0 3 1 2 0 0 1 1 1 0 ...
     $ bwt  : int  2523 2551 2557 2594 2600 2622 2637 2637 2663 2665 ...
    

    图形分面在后面的章节进行说明,这里只进行简单的使用,使用facet_grid(var1~var2)语句:

    ggplot(data = birthwt, aes(x = bwt))  + 
      geom_histogram(fill  = "white", colour = "black") +
      facet_grid(smoke~.)
    

    上例使用数据集中的smoke变量作为了分面的变量

    分面标签只显示了01,可以将smoke进行因子转换。

    birthwt$smoke <- factor(birthwt$smoke, levels = c(0,1), labels = c("No Smoke", "Smoke"))
    ggplot(data = birthwt, aes(x = bwt))  + 
      geom_histogram(fill  = "white", colour = "black") +
      facet_grid(smoke~.)
    

    • 映射给颜色属性

    另一种方式是将分组变量映射给fill参数:

    birthwt$smoke <- factor(birthwt$smoke, levels = c(0,1), labels = c("No Smoke", "Smoke"))
    ggplot(data = birthwt, aes(x = bwt, fill = smoke))  + 
      geom_histogram(position = "identity", alpha = 0.4) 
    

    position = "identity", alpha = 0.4,这些参数的设置很重要,使图形可以看清楚,如果没有position = "identity"设置,图形会垂直堆积。

    ggplot(data = birthwt, aes(x = bwt, fill = smoke))  + 
      geom_histogram() 
    

    相关文章

      网友评论

        本文标题:《R数据可视化手册》学习笔记6---描述数据分布(2)分组直方图

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