第三章 类别数据可视化
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”作为绘图输入
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