使用ggplot2绘图的小伙伴都了解ggplot2的优势是基于一套图形语法,让我们在绘图时将图形添加至不同的图层,大大增强了我们对数理统计绘图的可控性。我们常常通过看书或借鉴前人在网络上发布的绘图模板、教程等方式学习使用ggplot2,就会发现大家使用这套图形语法各有各的风格。新手接触各种逻辑不同的绘图模板就会云里雾里,反而加重了对ggplot2使用的不理解,可以说是日抛代码。
为了让学习曲线更平滑,同时也加深ggplot2的学习记忆,我用了一个简单的双坐标轴绘图来解说如何进行图层控制。
首先展示双坐标轴绘图的结果,然后再一步步分析如何实现该结果的图层控制步骤。也算是以后给自己再绘图时候的模板。
一个简单的双坐标轴绘图。
值得说明的是,这张图由两个数据集构成。主数据data集用于生成直方图,另一个数据集num根据主数据集计算得到百分比(折线图)。因为在我的测试中也尝试过在ggplot中使用group_by计算并映射,但是没有成功。后续工作中学习到新的方法再进行修改。不过这个代码也可以作为一张图要使用两个数据集共同绘制的例子。
p <- ggplot() + #先用函数,后续再使用+的方式添加图层
geom_bar(data = data, aes(x = year, fill = dummy), stat="count") + #绘制直方图
guides(fill = guide_legend(keywidth = 0.5, keyheight