示例数据
使用reshape2 包中的tips 数据集来做示例
- library(reshape2)
- # 让我们来看看数据集的前面几行
- head(tips)
- #> total_bill tip sex smoker day time size
- #> 1 16.99 1.01 Female No Sun Dinner 2
- #> 2 10.34 1.66 Male No Sun Dinner 3
- #> 3 21.01 3.50 Male No Sun Dinner 3
- #> 4 23.68 3.31 Male No Sun Dinner 2
- #> 5 24.59 3.61 Female No Sun Dinner 4
- #> 6 25.29 4.71 Male No Sun Dinner 4
这是一个根据 tip 占 total bill 比值大小绘制的散点图。
- library(ggplot2)
- sp <- ggplot(tips, aes(x=total_bill, y=tip/total_bill)) + geom_point(shape=1)
- sp
数据可以按照一个或者多个变量分开,使其在水平或者垂直方向有差异。
通过使用 facet_grid()来实现,使用vertical ~ horizontal的形式。
- # 以“sex”变量来分开,纵向排列
- sp + facet_grid(sex ~ .)
- # 以“sex”变量来分开,横向排列
- sp + facet_grid(. ~ sex)
- # 以“sex”变量来分开, 水平方向按时间“day”的差异排列
- sp + facet_grid(sex ~ day)
分区除了按照变量以横向或者纵向方式产生,也可以彼此相连,按照特定的行列数进行排列。每个图的标签会在子图的顶端。
- # 按照日期的不同分离,共产生两列分区
- sp + facet_wrap( ~ day, ncol=2)
以上内容转自 数析学院 ,后续更多细节调整可以直接查看原文