ggplot的绘图有以下几个特点:第一,有明确的起始(以ggplot函数开始)与终止(一句语句一幅图);其二,图层之间的叠加是靠“+”号实现的,越后面其图层越高。
ggplot2里的所有函数可以分为以下几类:
一个图形对象就是一个包含数据,映射,图层,标度,坐标和分面的列表,外加组件options
ggplot(数据, 映射) geom_xxx(映射, 数据) stat_xxx(映射, 数据)
点(point, text):往往只有x、y指定位置,有shape但没有fill
线(line,vline,abline,hline,stat_function等):一般是基于函数来处理位置
射(segment):特征是指定位置有xend和yend,表示射线方向
面(tile, rect):这类一般有xmax,xmin,ymax,ymin指定位置
棒(boxplot,bin,bar,histogram):往往是二维或一维变量,具有width属性
带(ribbon,smooth):透明是特征是透明的fill
补:包括rug图,误差棒(errorbar,errorbarh)
然后,就是按照你的需要一步步加图层了(使用“+”)。
1 普通堆叠图
2 拆成柱形图
3 添加冲积图
安装依赖:
绘制冲积图:
4 添加facet_wrap分面
5 添加geom_segment分组标记
数据准备:准备geom_segment需要的x、x_end值
绘图:
6 翻转90度
7 绘制堆叠面积图
数据准备:给每个样品按数字编号
绘图:
这配色似乎还可以
一组好看的堆叠图参数:
参考:
R语言ggplot2绘制分组箱型图和分组柱状图
Make Grouped Boxplots with ggplot2