查看原文
其他

R中的循环绘图

ANERYAN R语言数据分析指南 2023-06-15

欢迎关注R语言数据分析指南

本节来介绍在 R中如何使用ggplot2结合for循环绘图并保存,下面通过一个案例来看具体操作

加载R包

library(tidyverse)
library(data.table)
library(gridExtra)
library(patchwork)

设置文件路径

file_name <- "loop_data.tsv"

读入数据

dat <- fread(file_name, sep="\t")

获取唯一的城市名称进行循环

cities = unique(dat$city)

创建一个空列表来保存创建的图

city_plots = list()

循环遍历并绘图保存

for(city_ in cities) {
  city_plots[[city_]] <-  ggplot(dat %>% filter(city == city_),aes(x=zone, y=`multistorey buildings`)) + 
    geom_bar(stat="identity",width=0.5) + 
    theme(axis.text.x = element_text(angle=0)) + 
    ggtitle(city_) + 
    labs(y=NULL,x=NULL)+
    theme(plot.title=element_text(size=15,face="bold",hjust=0.5),
          axis.title.x=element_text(size=10,face="bold"),
          axis.title.y=element_text(size=10,face="bold"))
  
  print(city_plots[[city_]])
  ggsave(city_plots[[city_]],file=paste0("plot_",city_,".pdf"), width =3.04, height =3.10, units = "in", dpi=300)
}

上面我们将每一张图都单独输出了,下面来介绍如何将其全部组合起来,分别介绍两种R包的方法gridExtra&patchwork

grid.arrange(grobs=city_plots,ncol=3)
patchwork::wrap_plots(city_plots,nrow=2)

数据获取

今天的介绍到此结束,喜欢的小伙伴欢迎分享转发;转发需要的文档到微信朋友圈,「30分钟后后台截图给我即可获取对应的数据+代码」;也可打赏文档获取代码;如果您非常喜欢我的内容,「欢迎添加小编微信加入我的VIP交流群」,群内会同步上传文档代码,期待您的加入

欢迎大家扫描下方二位码加入「QQ交流群」,与全国各地上千位小伙伴交流

小编微信

「关注下方公众号下回更新不迷路」,如需要加入微信交流群可添加小编微信,请备注单位+方向+姓名

往期推荐

ggplot2优雅的绘制车轱辘图

ggplot2数据可视化经典文档汇总(推荐收藏)

跟着Nature学绘图(5) ggh4x绘制多重注释图

跟着Nature学绘图(4) 蜂窝状散点图|小提琴

ggraph优雅的绘制环状网络图

ggplot2优雅的绘制环状面积图

ggblend绘制完美的散点图

ggplot2优雅绘制小清新版箭头图

哥俩好-ggplot2绘制配对条形图

circlize优雅的绘制多重注释弦图

跟着Nature学绘图(3) 再谈ggplot2绘制热图

跟着论文学习ggplot2绘图

跟着Nature学绘图(2) 箱线图-累积分布曲线图

跟着Nature学绘图(1) 热图|散点图

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存