[转] R 绘图ggplot2 一页多图及子图嵌入主图的多种实现方法

原文:https://mp.weixin.qq.com/s/tHbasjxsKbbnaIn7nP2D4g

一、一面多图的实现方法:

- 输入:

minute <- c(110,118,120,123,131,137,144,149,152,160)
VC <- c(5283,5299,5358,5292,5602,6014,5830,6102,6075,6411)
lrdata <- data.frame(minute,VC)
modelle <- lm(VC~minute,data=lrdata)
pre <- predict(modelle,newdata=data.frame(minute),interval = "prediction")
newlr <- cbind(lrdata,pre)

p1<-ggplot(newlr,aes(x=minute,y=VC))+geom_point(size=3,colour="blue")

p2<-ggplot(newlr,aes(x=minute,y=VC))+geom_point(size=3,colour="blue")+
geom_segment(aes(x=minute, xend=minute, y=VC, yend=fit),size=1,linetype=2,colour="red")+
geom_line(aes(y=fit), color = "blue", linetype = "dashed",size=1)

方法1:

- 输入:

library(gridExtra)
grid.arrange(p1,p2,nrow=1)

- 结果:


方法2:

- 输入:

library(Rmisc)
multiplot(p1,p2,cols=2)

- 结果:



方法3:

- 输入:

install.packages("cowplot")
library(cowplot)
plot_grid(p1,  NULL, NULL,p2, labels = c("A", "", "", "B"),ncol = 2)

- 结果:

二、子图嵌入主图的实现方法:

方法1:

- 输入:

library(grid)
vp <- viewport(width = 0.3, height = 0.4, x = 0.65,y = 0.9,just=c("left","top"))
   
# width\height表示插入图形的大小,x\y表示插入图形相对于图片底层just的位置
print(p1)
print(p2,vp=vp)

- 结果:


方法2:

- 输入:

install.packages("viridis")
library(
viridis)
ggdraw() +draw_plot(p1,0,0,1,1)+
draw_plot(p2,0.1,0.5,0.3,0.4)
   
# 0.1\0.5为图的左下角x\y的位置,0.3\0.4为图形的宽度和高度

- 结果:

  • 11
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值