顶刊绘图复现 --- 色块折线柱状组合图

在发表科研论文的过程中,科研绘图是必不可少的,而提升绘图水平最直接的方法就是跟着顶刊学习。

为了便于使用,本系列文章介绍的所有绘图都已收录到了 CNSplot 项目中,获取方式:

顶刊绘图复现模板 --- CNSplothttps://mp.weixin.qq.com/s?_biz=MzkwMjM0MzA5MA==&mid=2247494176&idx=1&sn=6a34d3515fef785c1ea6935ee128900e&scene=21&poc_token=HL-iWmjOFEpXFwPi0h5X1uFuOXrpemKG8ADVgYa

本期我们复现的是 2022 年发表在 Journal of Pineal Research 上的一篇期刊的 Figure 1A

我们先来欣赏下期刊的原图:

期刊原图

**原图解读:**该图是由色块图、折线图、柱状图三图组合而成的复杂图形。绘制了来自 GSE131907 和 GSE123904 中 30 例肺腺癌(lung adenocarcinoma, LUAD)患者的临床和分子特征。患者按照三个样本来源中恶性细胞数量的顺序排列。每个患者贡献的细胞比例和细胞类型用不同颜色表示。

1. 导入包

我们首先导入本期绘图用到的 R 包:

R 复制代码
library(ggplot2)
library(tidyr)
library(ggnewscale)
library(patchwork)

2. 准备数据

接下来我们导入绘图用到的数据,在 CNSplot 中给大家提供了测试数据:

R 复制代码
data <- read.csv("../data/001-plot/001-data.csv")
data$Sample <- factor(data$Sample, levels = data$Sample)
data1 <- data[,1:6]
data2 <- data[,c(1,7)]
data3 <- pivot_longer(data[,c(1,8:12)], !Sample, names_to = "Stage", values_to = "Value")

3. 准备配色

接下来我们设置绘图用到的配色:

R 复制代码
col1 <- c("A"="#fa8b6a", "B"="#e5cf52",
         "One"="#3199c2", "Two"="#ed7252", "Three"="#be599c",
         "Alpha"="#e8f0e1", "Beta"="#bbd3a8", "Gamma"="#9ac190",
         "a"="#f2d7b6", "b"="#fef3dd",
         "CT"="#e878a9", "WT"="#feeff4")
col3 <- c("Stage1"="#ef8576",   "Stage2"="#eeb570", "Stage3"="#d69faa", 
          "Stage4"="#84afd2",   "Stage5"="#90d0c5")

4. 绘制图形

接下来我们通过下面的代码来绘制图形:

R 复制代码
p1 <- 
  ggplot(data1, aes(x=Sample)) +
  geom_tile(aes(y="Type1", fill=Type1), color="white", lwd = 0.5) +
  scale_fill_manual(values = col1, guide = guide_legend(order = 1)) +
  new_scale_fill() +
  geom_tile(aes(y="Type2", fill=Type2), color="white", lwd = 0.5) +
  scale_fill_manual(values = col1, guide = guide_legend(order = 2)) +
  new_scale_fill() +
  geom_tile(aes(y="Type3", fill=Type3), color="white", lwd = 0.5) +
  scale_fill_manual(values = col1, guide = guide_legend(order = 3)) +
  new_scale_fill() +
  geom_tile(aes(y="Type4", fill=Type4), color="white", lwd = 0.5) +
  scale_fill_manual(values = col1, guide = guide_legend(order = 4)) +
  new_scale_fill() +
  geom_tile(aes(y="Type5", fill=Type5), color="white", lwd = 0.5) +
  scale_fill_manual(values = col1, guide = guide_legend(order = 5)) +
  scale_y_discrete(limits=rev) +
  theme_minimal(base_size = 15) +
  theme(panel.grid = element_blank(), axis.text.x = element_blank(),
        legend.spacing.y = unit(0.1, "cm"), legend.position = c(1.05, -0.6)) +
  labs(x="", y="")

p2 <- 
  ggplot(data2, aes(x=Sample, y=Number, group=1)) +
  geom_line(color="black", size=1.5) +
  geom_point(shape=21, color="black", fill="black", size=4) +
  scale_y_continuous(breaks=seq(1,12,2), limits = c(0,12),
                     expand = expansion(mult = c(0, 0.05))) +
  theme_classic(base_size = 15) +
  theme(axis.line.x = element_blank(), axis.ticks.x = element_blank(),
        axis.text.x = element_blank()) +
  labs(x="", y="Number")

p3 <- 
  ggplot(data3, aes(x=Sample, y=Value, fill=Stage)) +
  geom_bar(position = "stack", stat = "identity", width = 0.7) +
  scale_y_continuous(breaks=seq(0,1,0.5), limits = c(0,1),
                     expand = expansion(mult = c(0, 0.05))) +
  scale_fill_manual(values = col3) +
  theme_classic(base_size = 15) +
  theme(panel.grid = element_blank(), axis.line.x = element_blank(),
        axis.ticks.x = element_blank(),
        axis.text.x = element_text(angle = 90, hjust = 1, vjust = 0.5)) +
  labs(x="", y="Proportion")

p <- 
  p1/p2/p3 + plot_layout(heights = c(0.7,1,1)) &
  theme(legend.key.size = unit(0.4, "cm"),
        legend.title = element_text(size = 12, face="bold"),
        legend.text = element_text(size = 10))

p

步骤1

5. 保存图形

接下来我们通过下面的代码来保存绘制的图形:

R 复制代码
ggsave("../save/001/001-figure.pdf", p, width = 10, height = 8, dpi = 300)

6. Illustrator 修饰

最后我们将保存的 pdf 文件导入 Adobe Illustrator,稍加修饰即可。AI 修饰的详细步骤见视频 video/001.mp4

我们调整下图例的对齐和文本大小:

步骤2

完成后保存 pdf 文件,Adobe Illustrator 修饰好的绘图都保存为 pdf 文件在 CNSplot 项目的 data 文件夹中给大家提供,位于文件 data/001-plot/001-figure.pdf,通过 Adobe Illustrator 打开即可修改。

我们看一下最后的绘图效果:

绘图复现

由于绘图数据是根据原图生成的模拟数据,因此跟原图可能不完全一致,但是基本上已经成功复现了绘图。

CNSplot 介绍

CNSplot 专门针对科研绘图中的高级复杂图形,包含了以下内容:

50 个顶刊绘图复现,包含各种高级复杂图形

② 每个绘图都提供了测试数据/模板文件

③ 每个绘图都配套了视频教程

④ 配备一站式 html文档 ,代码一键复制交互式阅读提高用户体验

往期推荐

PlotOnePiece 珍藏了 TigerZ 生信宝库的所有绘图资源,想要我的宝藏吗?我把它们全部都放在了这里🏴‍☠️:
TigerZ 生信宝库科研绘图资源合集 --- PlotOnePiece

CNSplot 专门针对科研绘图中的高级复杂图形,包含了 50 个顶刊绘图复现,每个绘图都提供了测试数据/模板文件 。所有绘图代码都整理到了一个 html 文档 中,并且还配套了视频教程。详细信息见:
顶刊绘图复现模板 --- CNSplot

sciRplot 项目用于解决 R 语言中科研绘图的问题,包含了 100 种绘图代码(60基础绘图 + 40进阶绘图 )。每个绘图都提供了测试数据 ,所有绘图代码都整理到了一个 html 文档中。详细信息见:
R 语言科研绘图模板 --- sciRplot

sciRcolor 项目用于解决 R 语言科研绘图中颜色选择的问题,包含了 100 种常用配色(60离散色 + 40连续色 )。并且提供了一个用来预览配色的在线网站 ,以及用来获取配色的 R 包。详细信息见:
R 语言科研配色工具 --- sciRcolor

相关推荐
欧亚学术3 天前
高校教师“取消考核”,落地!
论文·科研·期刊·投稿·高校·教师·发表
AbMole3 天前
AbMole小讲堂丨Luteolin(木犀草素):一种具有抗炎、抗氧化、抗肿瘤活性的天然产物及其科研应用
科研·abmole·生物实验·生物化学·生物试剂
AbMole3 天前
AbMole小讲堂丨Substance P(Neurokinin P):一个参与痛觉、炎症与组织修复的多功能神经肽
科研·abmole·生物实验·生物化学·生物试剂
biyezuopinvip4 天前
基于Spring Boot的企业网盘的设计与实现(毕业论文)
java·spring boot·vue·毕业设计·论文·毕业论文·企业网盘的设计与实现
imbackneverdie6 天前
2026国自然申请书模板大改版,科研人员如何应对?
人工智能·自然语言处理·aigc·科研·学术·国自然·国家自然科学基金
weixin_416660078 天前
AI 导出 Word 不正规?10 类文档样式模板(可直接套用,含字体/字号/行距/缩进)
人工智能·word·论文·排版·数学公式
AbMole9 天前
AbMole小讲堂丨5-Fluorouracil:抗代谢剂在肿瘤研究中的实验指南
科研·abmole·生物实验·生物化学·生物试剂
shejizuopin9 天前
基于SSM的高校旧书交易系统的设计与实现(毕业论文)
java·mysql·毕业设计·论文·ssm·毕业论文·高校旧书交易系统的设计与实现
Tiger Z10 天前
顶刊绘图复现模板 --- CNSplot
科研·绘图·研究生·顶刊