本笔记为个人学习整理,仅供参考。主要参考内容在文末附有链接。如有侵权,请联系删除。
文章信息
期刊: Frontiers in Plant Science
日期: 21 June 2023
IF: 5.6(2022)
Doi: https://doi.org/10.3389/fpls.2023.1213807
作者: Weibin Ren et al.
图形复现
原文图形
复现图形
复现思路
导入数据。数据可以通过 R
包导入csv
或xlsx
文件ggplot2
绘图。
注意事项:
堆积时的顺序、x轴的标签顺序(非数值) 通过因子指定 含有数学公式的坐标轴标题使用 expression()
编辑
代码及注释
完整代码
rm(list = ls())
library(tidyverse)
library(RColorBrewer)
library(patchwork)
mycol <- brewer.pal(3, "Paired")
p1_df_origin <- tribble(
~Dose, ~Heterozygous, ~Homozygous,
25, 9.53, 4.15,
50, 12.62, 5.17,
75, 17.70, 8.47,
100, 20.61, 9.94,
125, 16.85, 8.33,
150, 20.49, 8.96
)
p1_df <- p1_df_origin %>%
pivot_longer(.,
cols = c("Heterozygous", "Homozygous"),
names_to = "Total")
p1_df$Total <- factor(p1_df$Total, levels = c("Homozygous","Heterozygous"))
p1_df$Dose <- as.factor(p1_df$Dose)
p1 <- p1_df %>%
ggplot(., aes(x = Dose, y = value, fill = Total))+
geom_bar(stat = "identity", position = "stack")+
scale_y_continuous(limits = c(0, 40), expand = c(0, 0))+
scale_fill_manual(values = mycol)+
labs(title = "E",x = "Dose(Gy)" ,y = expression('No. of Mutations(*'* 10^2 *')'))+
theme_classic()+
theme(
axis.text = element_text(size = 12, face = "bold"),
axis.title = element_text(size = 15),
axis.line = element_line(size = 1),
axis.ticks.length = unit(.2, units = "cm"),
axis.ticks = element_line(size = 1),
legend.title = element_blank(),
legend.text = element_text(size = 10, face = "bold"),
plot.margin = unit(c(0.1, 0.1, 1.8, 0.1), "cm"),
legend.position = "bottom"
)
print(p1)
ggsave("p1.jpg", width = 9, height = 4.4, dpi = 600)
注释
# 清空工作区
rm(list = ls())
# 加载所需的包
library(tidyverse) # 包含 ggplot2 和 dplyr 等常用包
library(RColorBrewer) # 提供颜色调色板
library(patchwork) # 用于拼接多个图形
# 使用 RColorBrewer 提供的调色板创建一个包含 3 种颜色的向量
mycol <- brewer.pal(3, "Paired")
# 创建原始数据框,包含剂量 (Dose) 和杂合子 (Heterozygous)、纯合子 (Homozygous) 的突变数量
p1_df_origin <- tribble(
~Dose, ~Heterozygous, ~Homozygous,
25, 9.53, 4.15,
50, 12.62, 5.17,
75, 17.70, 8.47,
100, 20.61, 9.94,
125, 16.85, 8.33,
150, 20.49, 8.96
)
# 将数据框从宽格式转换为长格式,以便 ggplot2 使用
p1_df <- p1_df_origin %>%
pivot_longer(
cols = c("Heterozygous", "Homozygous"), # 指定要转换的列
names_to = "Total", # 新列的名称
values_to = "value" # 新值列的名称
)
# 将 Total 列转换为因子,并按指定顺序设置级别,以控制堆积顺序
p1_df$Total <- factor(p1_df$Total, levels = c("Homozygous", "Heterozygous"))
# 将 Dose 列转换为因子,以确保 x 轴标签按顺序显示
p1_df$Dose <- as.factor(p1_df$Dose)
# 创建堆积条形图
p1 <- p1_df %>%
ggplot(aes(x = Dose, y = value, fill = Total)) + # 设置美学映射
geom_bar(stat = "identity", position = "stack") + # 绘制堆积条形图
scale_y_continuous(limits = c(0, 40), expand = c(0, 0)) + # 设置 Y 轴范围和扩展
scale_fill_manual(values = mycol) + # 使用自定义颜色
labs(
title = "E", # 图表标题
x = "Dose(Gy)", # X 轴标签
y = expression('No. of Mutations(*'* 10^2 *')') # Y 轴标签,使用数学表达式
) +
theme_classic() + # 使用经典主题
theme(
axis.text = element_text(size = 12, face = "bold"), # 设置轴文本样式
axis.title = element_text(size = 15), # 设置轴标题样式
axis.line = element_line(size = 1), # 设置轴线样式
axis.ticks.length = unit(.2, units = "cm"), # 设置轴刻度线长度
axis.ticks = element_line(size = 1), # 设置轴刻度线样式
legend.title = element_blank(), # 隐藏图例标题
legend.text = element_text(size = 10, face = "bold"), # 设置图例文本样式
plot.margin = unit(c(0.1, 0.1, 1.8, 0.1), "cm"), # 设置图表边距
legend.position = "bottom" # 设置图例位置
)
# 打印图形
print(p1)
# 保存图形为高分辨率 JPEG 文件
ggsave("p1.jpg", width = 9, height = 4.4, dpi = 600)
主要参考:
https://doi.org/10.3389/fpls.2023.1213807
本文为个人学习笔记,整理过程难免有误。如有错误,欢迎指正。仅供个人学习使用,如有侵权,请联系删除