第四章 数据分布可视化
1 解释原始数据
faithful是R语言中自带的一个经典数据集,它记录了美国黄石国家公园老忠实间歇泉(Old Faithful geyser)的喷发数据。这个数据集经常被用于统计教学和数据分析示例。faithful数据集包含两个变量,共有272个观测值。eruptions: 喷发持续时间,连续数值变量,以分钟为单位,范围:1.6分钟到5.1分钟。waiting: 两次喷发之间的等待时间,连续数值变量,以分钟为单位,范围:43分钟到96分钟。
2 单变量直方图
2.1 绘图要求
利用
geom_histogram(aes(y=..density..))绘制eruptions的直方图,使用预设主题:mytheme;利用
geom_rug()为直方图添加地毯图;利用
geom_density()为直方图添加核密度曲线;利用
annotate()在直方图标注峰度和偏度信息;利用
geom_vline()为直方图添加一条垂直的均值参考线;利用
geom_point()在横轴上添加一个中位数参考点,并在点上方添加文字注释
2.2 作图代码
2.3 图形观察和代码编写的心得体会
- 复制原本代码,修改变量名,观察图例位置最后完成修改。qmd文件可以一边改一边看,可以提高效率。看不懂的地方可以问ai解答。
3 叠加直方图和镜像直方图
3.1 绘图要求
绘制
eruptions和waiting两个变量的叠加直方图和镜像直方图,使用预设主题:mytheme。将数据转化为长型数据再作叠加直方图,利用
scale_fill_brewer()将叠加直方图配色方案改为set3。镜像直方图中
eruptions在正方向,waiting在负方向,直方数bins=30,并添加文字标签作标签。两种图都需要针对原始数据作图和标准标准化数据作图,可以使用
scale()函数对变量标准化,分类标准化可以使用plyr::ddply()函数。
3.2 叠加直方图代码
3.3 镜像直方图代码
3.4 图形观察和代码编写的心得体会
镜像直方图清晰对比eruptions和waiting的分布。左图未标准化,eruptions(0-5)范围窄,waiting(40-100)范围广,分布差异大。右图标准化后,std.eruptions和std.waiting范围一致(-2到2),均呈双峰分布,方便比较形状和对称性。
ggplot2绘制镜像直方图,y=..density..和y=-..density..实现上下对称,alpha=0.3增强透明度,标签用geom_label标注清晰。grid.arrange组合图形,布局直观,便于对比标准化前后的分布差异。
4 核密度图
4.1 绘图要求
绘制eruptions和 waiting两个变量的分组核密度图、分面核密度图和镜像核密度图。
分组核密度图,采用
geom_density(position="identity")。分面核密度图,采用
geom_density()+facet_wrap(~xx,scale="free")。镜像核密度图中
eruptions在正方向,waiting在负方向,直方数bins=30,并添加文字标签作标签。分组核密度图和镜像核密度图需要针对原始数据作图和标准标准化数据作图。
4.2 分组核密度图
4.3 分面核密度图
4.4 镜像核密度图
4.5 图形观察和代码编写的心得体会
- 镜像图突出两变量差异,分面图适合多变量独立分析,分组图适合少变量直接对比。ggplot2的灵活性让我能通过调整参数(如alpha、color)优化视觉效果,未来我会更注重图形可读性和代码简洁性。
5 箱线图和小提琴图
5.1 绘图要求
根据实际数据和标准化后的数据绘制
eruptions和waiting两个变量的箱线图geom_boxplot和小提琴图geom_violin。采用
stat_summary(fun="mean",geom="point")在箱线图和均值图中要添加均值点。小提琴图中要加入点图和箱线图
采用调色板前两种颜色,
brewer.pal(6,"Set2")[1:2],作为箱体填充颜色。
"#66C2A5" "#FC8D62" "#8DA0CB" "#E78AC3" "#A6D854" "#FFD92F"5.2 箱线图代码
5.3 小提琴图代码
- 通过
d3r::d3_nest将数据框转化为层次数据“d3.js”作为绘图输入
5.4 图形观察和代码编写的心得体会
- 图形观察:箱线图清晰展示中位数、四分位距和离群点,小提琴图结合点图和箱线图更全面地反映分布形状和数据点分布。标准化后数据范围一致,便于比较。
- 代码编写:ggplot2的图层叠加(如小提琴图内嵌箱线图和点图)功能强大,stat_summary添加均值点简洁高效。brewer.pal配色美观,grid.arrange布局灵活,适合多图对比展示。
6 威尔金森点图、蜂群图和云雨图
6.1 绘图要求
绘制
eruptions和waiting两个变量的威尔金森点图、蜂群图和云雨图。三种图形均采用标准化数据作图
威尔金森点图采用
geom_dotplot(binaxis="y",bins=30,dotsize = 0.3),要求作出居中堆叠和向上堆叠两种情况的图。蜂群图采用
geom_beeswarm(cex=0.8,shape=21,size=0.8),要求作出不带箱线图和带有箱线图两种情况的图。云雨图采用
geom_violindot(dots_size=0.7,binwidth=0.07),要求作出横向和纵向图两种情况的图。
6.2 威尔金森点图代码
分别作矩形热图和极坐标热图