ggplot2作图详解4:分面(faceting)
显然这是对数据进行分组后绘制得到的图形,这类图形对于比较不同数据的趋势非常有帮助。facet_wrap 的参数(facet_grid同)如下:
# 非运行代码 facet_wrap(facets, nrow = NULL, ncol = NULL, scales = "fixed", shrink = TRUE, as.table = TRUE, drop = TRUE)
- facets:分面参数如 ~cut,表示用 cut 变量进行数据分类
- nrow:绘制图形的行数
- ncol:绘制图形的列数,一般nrow/ncol只设定一个即可
- scales:坐标刻度的范围,可以设定四种类型。fixed 表示所有小图均使用统一坐标范围;free表示每个小图按照各自数据范围自由调整坐标刻度范围;free_x为自由调整x轴刻度范围;free_y为自由调整y轴刻度范围。
- shrinks:也和坐标轴刻度有关,如果为TRUE(默认值)则按统计后的数据调整刻度范围,否则按统计前的数据设定坐标。
- as.table:和小图排列顺序有关的选项。如果为TRUE(默认)则按表格方式排列,即最大值(指分组level值)排在表格最后即右下角,否则排在左上角。
- drop:是否丢弃没有数据的分组,如果为TRUE(默认),则空数据组不绘图。
下面看看 scales 的设定效果:
p + geom_point() + facet_wrap(~cut, scales="free") + ggtitle('scales="free"') p + geom_point() + facet_wrap(~cut, scales="free_y") + ggtitle('scales="free_y"')
R语言ggplot2包之坐标轴
如果想去除刻度线,在theme函数中使用axis.ticks.y = element_blank(),如果x、y轴都想去除axis.ticks.y改成axis.ticks即可。
下面的设置效果是:
以DayOfYear为X轴;以Close为Y轴,以Year为分组,Y轴根据数据调整刻度范围;不显示坐标刻度
ggplot(y, aes(DayOfYear, close, group =1)) + geom_line() + facet_grid(Year~., scales="free_y") + theme(axis.text = element_blank())