第三章 类别数据可视化

Author

221527122张毅晋

1 解释原始数据

  • Titanic数据集是datasets包的配套案例数据,可以通过as.data.frame将其转化为数据框。解析数据包含哪些变量,如果是分类变量分别有哪些类别?

2 条形图

绘制Sex和 Survived的并列条形图和堆叠条形图,并为条形图添加频数标签。

2.1 数据准备

  • 下面代码作了什么数据处理?为什么要这样处理?

2.2 利用geom_col函数作图

  • 你可以通过修改数据
  • 或者修改刻度标签将图中性别和生还的类别标签改为中文,请给出代码完成修改。

  性别   生还 人数
1 男性 未生还 1364
2 女性 未生还  126
3 男性   生还  367
4 女性   生还  344

2.3 介绍图形特点和信息

  • 图(a) 适合比较“性别内”不同生还情况的差异;

  • 图(b) 更适合比较“性别间”总体人数和生还比例的对比

  • 两者结合可全面理解在性别维度上生还情况的分布特征。

3 帕累托图

绘制Class 的帕累托图。

3.1 数据准备

3.2 利用geom_col()+geom_line()+geom_point()等函数作图

3.3 介绍图形特点和信息

  • 分布不均衡性明显:

    • 前两个类别(Crew 和 3rd)人数占总人数的72.3%,说明这两类是主要构成人群。

      1st 和 2nd 类别人数较少,仅占总人数的27.7%。

  • 累计百分比曲线(帕累托原理):

    • 体现“二八法则”:少数类别贡献了大多数人数。

      有助于聚焦前几个主要类别(如Crew、3rd)进行资源或策略优化。

4 脊形图

绘制Class和 Survived 的脊形图。

4.1 数据准备

4.2 利用geom_col() 作图

4.3 利用ggiraphExtra包ggSpine()

4.4 介绍图形特点和信息

  • 一等舱乘客存活率最高,未存活率最低,显示出社会地位或舱位等级对存活率的影响。
  • 船员虽然未存活比例最高,但存活比例也不低,可能与职责或救援优先级有关。
  • 三等舱乘客未存活比例较高,存活率较低,可能反映了资源分配或逃生机会的不平等。

5 树状图和旭日图

绘制Class、Sex、Age和Survived4个变量的矩形树状图和旭日图

5.1 利用treemap::treemap()函数作树状图

5.2 利用sunburstR::sunburst() 函数作旭日图

  • 通过d3r::d3_nest将数据框转化为层次数据“d3.js”作为绘图输入

Legend

5.3 介绍图形特点和信息

6 热图和南丁格尔玫瑰图

绘制Class和Survived 的点阵图、热图和南丁格尔玫瑰图。

6.1 数据准备

6.2 利用ggiraphExtra::ggHeatmap()作热力图

分别作矩形热图和极坐标热图

6.3 利用ggiraphExtra::ggRose() 作玫瑰图

tibble [8 × 3] (S3: tbl_df/tbl/data.frame)
 $ Class: Ord.factor w/ 4 levels "1st"<"2nd"<"3rd"<..: 1 1 2 2 3 3 4 4
 $ 生还 : Factor w/ 2 levels "No","Yes": 1 2 1 2 1 2 1 2
 $ 人数 : num [1:8] 122 203 167 118 528 178 673 212
# A tibble: 8 × 5
  Class 生还   人数 cumsum  ypos
  <ord> <fct> <dbl>  <dbl> <dbl>
1 1st   No      122    122  61  
2 2nd   No      167    167  83.5
3 3rd   No      528    528 264  
4 Crew  No      673    673 336. 
5 1st   Yes     203    325 224. 
6 2nd   Yes     118    285 226  
7 3rd   Yes     178    706 617  
8 Crew  Yes     212    885 779  

6.4 介绍图形特点和信息