ggplot2中实现图片的镶嵌绘图

 

001、生成测试子图

复制代码
library(ggplot2)
library(dplyr)
## 依次生成测试子图p1、p2、p3、p4
p1 <- ggplot(mpg) + 
  geom_point(aes(x = displ, y = hwy)) + ggtitle("P1")         
p2 <- ggplot(mpg) + 
  geom_bar(aes(x = as.character(year), fill = drv), position = "dodge") +
  ggtitle("P2")
p3 <- ggplot(mpg) + 
  geom_density(aes(x = hwy, fill = drv), colour = NA) + 
  facet_grid(rows = vars(drv)) + ggtitle("P3")
p4 <- ggplot(mpg) + 
  stat_summary(aes(x = drv, y = hwy, fill = drv), geom = "col", fun.data = mean_se) +
  stat_summary(aes(x = drv, y = hwy), geom = "errorbar", fun.data = mean_se, width = 0.5) +
  ggtitle("P4")
复制代码

 

002、利用patchwork包中insert_element函数实现镶嵌,将图p2镶嵌入p1

library(patchwork)

p1 + inset_element(p2, left = 0.3, right = 0.7, bottom = 0.6, 
top
= 0.95) ## left表示从左侧0.3开始绘制,right0.7表示到0.7结束; 同时从底部0.6开始,顶部0.95结束

绘图效果如下:

 

003、实现组合图的镶嵌 

p24 <- p2 / p4 + plot_layout(guides = "collect")
p24        ## 组合图p24
p1 + inset_element(p24, left = 0.5, bottom = 0.05, 
                   right = 0.95, top = 0.9)   ## 实现组合图的镶嵌

绘图效果如下:

 

004、对镶嵌图的主题进行整体的修改

p12 <- p1 + inset_element(p2, left = 0.5, bottom = 0.5,
              right = 0.9, top = 0.95)

p12 & theme_bw()     ## 对镶嵌后的图的主题进行修改

 

 

005、添加标签

p12 <- p1 + inset_element(p2, left = 0.5, bottom = 0.5,
              right = 0.9, top = 0.95)

p12 + plot_annotation(tag_levels = 'A')      ## 添加标签

 

 。

 

posted @   小鲨鱼2018  阅读(139)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2022-03-24 linux系统发行版的分类
2022-03-24 win10 计算机睡眠后键盘、鼠标无法唤醒 微星b460主板bios设置方法
2021-03-24 c语言中函数的定义和调用(计算1到n之间的所有整数的和)
2021-03-24 c语言中函数的定义和调用(值传递,计算x的n次幂)
2021-03-24 c语言中定义函数和调用函数(在函数中调用其他函数,计算int型整数的4次幂)
2021-03-24 c语言中定义函数和调用函数(在函数中调用其他函数,计算四个数中的最大值)
2021-03-24 c语言中定义函数和调用函数(计算int型整数的立方)
点击右上角即可分享
微信分享提示