做练习题,不仅仅是为了检验学到的知识,还在教锻炼我们理解问题、解决问题的能力,所以不管直白浅显、深奥晦涩,都应认真对待每一题。
- 使用本章节已讨论过的技巧,尝试三种方法可视化两个分类变量的分布,使用
mpg
数据集中的model and manufacturer, trans and class, and cyl and trans
进行测试。
# 只要数据点的数量不是很多,都可以使用geom_jitter()先看下数据的整体分布
ggplot(mpg,aes(model,manufacturer)) + geom_point() + geom_jitter()
# 一家汽车制造商生产的同一型号的车辆的配置可能是不同的,所以对应多条记录
mpg %>% mutate(manufacturer_model = paste(manufacturer,model)) %>% ggplot() + geom_bar(aes(y=manufacturer_model))
# 柱状图
ggplot(mpg) + geom_bar(aes(x=trans,color=class,fill=class),position=position_dodge())
# 使用分面可以看到每个cyl下,各种trans的具体分布
ggplot(mpg) + geom_bar(aes(trans)) + facet_wrap(vars(cyl))
- 对2D数据可视化,
geom_point()
在数据点不是很多的情况下,适用于两个连续变量、两个离散变量、一个连续变量和一个离散变量。存在的点重合的问题可以用geom_jitter()
解决。 - 对一个连续变量和一个离散变量的2D可视化,可使用
geom_boxplot()
,geom_violin()
,geom_histogram()
,geom_freqpoly()
,geom_line()
,geom_path()
,一般情
况下,连续变量(y轴)用来做统计、看分布,离散型变量(x轴或分组)用来分组、做比较、看差异。还有分面。 - 对两个连续型变量的2D可视化,一般情况下是为了研究两个连续型变量之间是否具有某种关系,比如说相关性关系、线性关系、某变
量随时间的变化关系等,所以可以用geom_smooth()
进行平滑拟合,可以用geom_line()
,geom_path()
研究随时间的变化。 - 对两个离散型变量的2D可视化,离散型变量一般只能用来计数、分类,所以可以用其中一个离散变量进行计数,另一个用来分类,
geom_bar()
或分面。 - axes和legend统称为guides。
ggplot2
中guides的设置有多种方法,其中可以通过labs()
、lims()
函数同时对多个scales进行设置,也可以通过scale_(aesthetic)_(scale_name)
函数对单个scale进行设置。因为这些设置太常用了,所以ggplot单独给出前者以简化操作。 -
labs()
、xlab()
、ylab()
、ggtitle()
可设置图片标题、副标题、说明文字、tag(比如文献中多图,每张图的标签)和alt(图像的可替换名字,类似HTML的alt属性)、横纵坐标标题和图例标题,labs()使用示例。 -
lims()
、xlim()
、ylim()
可设置坐标轴的显示范围,连续变量、离散变量均可设置,超出范围的点被强制为NA从而不再图像
中显示。 - 将一个ggplot对象保存为一个变量(比如p),在交互模式下,直接键入p可出图;在一个loop或function中,需要键入
print(p)
。还可用ggsave()
保存到磁盘上;用summary()
简单描述ggplot对象的结构;用saveRDS()
保存其cached copy,再用readRDS()
恢复它。
网友评论