前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >跟着NC学绘图-ggplot2批量绘制配对箱线图

跟着NC学绘图-ggplot2批量绘制配对箱线图

作者头像
R语言数据分析指南
发布2024-06-18 17:49:02
1190
发布2024-06-18 17:49:02
举报

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

❝本节来学习NC上一张图表配对箱线图的绘制方法,数据为论文源数据,小编根据个人理解对其进行了绘图,与原文有出入仅供参考。「数据代码将会整合上传到会员交流群」,购买过小编绘图文档的朋友可在所加的会员交流群内获取下载,有需要的朋友可关注文末介绍购买小编的R绘图文档。 ❞

论文

注:此论文提供原始数据及绘图代码,但在运行作者代码时遇到报错颇多,小编根据作者代码进行了修改,对源代码感兴趣的可以去论文中下载。

原图

仿图

图形解读

❝此图与以往图形无区别,此次主要使用自定义函数+循环的方式进行绘图,代码具有较高的可观赏性。 ❞

代码语言:javascript
复制
library(tidyverse)
library(patchwork)

inflam <- read_tsv("data.tsv") %>% 
  arrange(Group) %>% 
  mutate(id = rep(1:(n()/3),each=3)) %>% drop_na() %>% 
  mutate(id=as.character(id)) %>% 
  mutate(across(where(is.numeric),log2),
         id=as.numeric(id))

variables <- c("GM_CSF", "IFNy", "IL_1B", "IL_2", "IL_4", "IL_5", 
               "IL_6", "IL_8", "IL_10", "IL_12p70", "IL_13", 
               "IL_17A", "IL_23", "TNFa")

plot_variable <- function(variable, data) {
  ggplot(data, aes(x = Time, y = .data[[variable]], fill = Group, color = Group)) +
    geom_boxplot(outlier.shape = NA,staplewidth = 0.5) +
    geom_line(aes(group = id), size = 0.5, alpha = 0.2) +
    geom_jitter(shape = 21, size = 1, stroke = 0.5,
                position = position_jitterdodge(dodge.width = 0.8,
                                                jitter.width = 0.2)) +
    facet_wrap(~factor(Group, levels = c('IF-P', 'CR'))) +

    scale_fill_manual(name = NULL, values = c("magenta3", "darkturquoise")) +
    scale_color_manual(name = NULL, values = c("black", "black")) +
    labs(y = paste("Log2(", variable, " Concentration)", sep = ""), x = "Time (weeks)") +
    scale_x_discrete(labels = c("WK0" = "0", "WK4" = "4", "WK8" = "8")) +
    theme_bw() +
    theme(legend.position = "none", 
          strip.background = element_rect(colour = "black", fill = "black", size = 1),
          strip.text = element_text(colour = 'white', size = 6, face = "bold"),
          axis.text = element_text(size = 6, color = "black"),
          axis.title = element_text(size = 8, color = "black",face="bold"),
          panel.border = element_rect(color = "black", fill = NA, size = 1),
          plot.tag = element_text(size =12,face="bold",color="black")) +
    ylim(NA, max(data[[variable]], na.rm = TRUE) * 1.1)
}

plots <- lapply(variables[c(5, 7, 8, 11)], function(variable) {
  plot_variable(variable, inflam)
})

do.call("wrap_plots", c(plots, ncol = 4))+
  plot_annotation(tag_levels = 'a')

ggsave(filename = "./Fig2.png", 
       plot = do.call("wrap_plots", c(plots, ncol = 4))+
         plot_annotation(tag_levels = 'A'),
       height = 6, width = 18, units = "cm")

关注下方公众号下回更新不迷路

❝本节介绍到此结束,有需要获取此文档代码的朋友,欢迎到淘宝店铺R语言数据分析指南,购买小编的R数据可视化案例文档(2024版),「购买将赠送2023年的绘图文档内容」。目前此文档(2023+2024)「已经更新上传了150+案例文档」,每个案例都附有相应的数据和代码,并配有对应的注释文档,方便大家学习和参考。 ❞

2024更新的绘图内容同时包含数据+代码+markdown注释文档+文档清单,「小编只分享案例文档不额外回答问题无答疑问。」

在线同步更新

2024年案例图展示

2023年案例图展示

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-06-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 R语言数据分析指南 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 欢迎关注R语言数据分析指南公众号
  • 论文
  • 原图
  • 仿图
  • 图形解读
  • 关注下方公众号下回更新不迷路
  • 在线同步更新
  • 2024年案例图展示
  • 2023年案例图展示
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档