ggplot2 3.0 分面、一页多图

总结学习,ggplot 1.0,2.0 后,已经大致画出符合需求的图,并能对坐标轴,图例进行修改。分面画图,和一页多图可以更好的将数据分类展示出来。

分面

分面分成两种网格分面(facet_grid()),封装分面(facet_wrap()).其中都含有两种分面属性:指定分面,分面标度。

  • 指定分面
网格指定分面(矩阵)写法理解
一行多列“. ~ a”按a分面,行为1,列为length(a),即横向分面
一列多行“a ~ .”按照a分面,行为length(a),列为1,即纵向分面
多行多列“a ~ b”按照a,b分面,行为length(a),列为length(b)
额外参数space = “free”按照图形y轴,或x轴比例,自由分配空间
封装分面指定分面写法理解
分面~ a+b+c,ncol,nrow相比于网格,更加手动化。能将图形设置成更加符合自身要求的图
  • 分面标度
    对分面画图坐标进行控制
参数理解
scales = “fixed”x和y的标度在所用平面中都相同
scales = “free”x和y的标度在每个版面都可以变化
scales = “free_x固定y轴,x轴自由变化
scales = “free_y”类似,同上

一页多图

在一个页面上自由组合各种图(可以毫无关联),省空间,又能表达自己需求。这里调用gird包.

require(ggplot2)
require(grid)
#####现将图画好,并且赋值变量,储存#####
a <- ggplot(mtcars, aes(mpg, wt, colour = factor(cyl))) + geom_point()
b <- ggplot(diamonds, aes(carat, depth, colour = color)) + geom_point()
c <- ggplot(diamonds, aes(carat, depth, colour = color)) + geom_point() + 
  facet_grid(.~color,scale = "free") 

########新建画图页面###########
grid.newpage()  ##新建页面
pushViewport(viewport(layout = grid.layout(2,2))) ####将页面分成2*2矩阵
vplayout <- function(x,y){
  viewport(layout.pos.row = x, layout.pos.col = y)
}
print(c, vp = vplayout(1,1:2))   ###将(1,1)和(1,2)的位置画图c
print(b, vp = vplayout(2,1))   ###将(2,1)的位置画图b
print(a, vp = vplayout(2,2))  ###将(2,2)的位置画图a
#dev.off() ##画下一幅图,记得关闭窗口

这里写图片描述

example

超级简单例子,表达的意思都是一样的 不一样的就只是是否分页面.

head(diamonds)
g <- ggplot(diamonds)+
  geom_bar(aes(x = color, fill = cut), position = 'dodge') 
p <- ggplot(diamonds)+
  geom_bar(aes(x = cut, fill = cut), position = 'dodge')+
  facet_grid(.~color)
p;g

这里写图片描述
这里写图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值