R实战:【绘图】ggplot2多维度分析(分面)

来源:互联网 发布:淘宝模特张恋恋多大了 编辑:程序博客网 时间:2024/06/08 19:14

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())


原创粉丝点击