如何根据Nature子刊上的优美绘图进行学习
在科学研究中,图形和插图是传达复杂信息的重要工具。Nature及其子刊上常常发表高质量的图形,这些图形不仅美观,而且信息量丰富。
本期,我们将根据Nature Communication上一张半小提琴半箱线图的学习和复现,让大家可以更好地理解和借鉴Nature子刊上的优美绘图,从而提升自己的绘图的实用技巧。
绘图介绍
箱线图(Box Plot)和小提琴图(Violin Plot)都是数据可视化工具,用于展示一组数据的分布情况。
箱线图
箱线图是一种标准化的显示数据分布特征的方法,它能够展示数据的最小值、第一四分位数(Q1)、中位数(Q2)、第三四分位数(Q3)和最大值。箱线图通常包括以下元素:
箱体:表示数据的中间50%(IQR,即四分位距)。 中位数线:箱体中的水平线,表示数据的中位数。 须:从箱体延伸出来的线,表示数据的最小值和最大值,但排除了异常值。 异常值点:通常用点表示,位于须之外的数据点,被认为是异常值或离群点。
箱线图的优点在于能够快速识别数据的集中趋势、离散程度以及异常值。
小提琴图(Violin Plot)
小提琴图是一种箱线图的变体,它结合了箱线图和核密度图的特点。小提琴图在箱线图的基础上,增加了数据的核密度估计,使得数据的分布形状更加直观。小提琴图的特点包括:
核密度估计:图形的宽度表示数据的密度,形状类似小提琴,因此得名。 中位数:通常用一条线或点表示。 数据分布:图形的宽度变化可以直观地展示数据的分布情况,包括对称性、多峰性等。
小提琴图的优点在于提供了更多关于数据分布的信息,尤其是当数据分布复杂或有多个峰值时。
今天我们来看一下如何使用R绘制箱线图和小提琴图
可视化展示
代码
示例一的代码:
#下载并调用所需包
if(!require(ggpubr))install.packages("ggpubr")
if(!require(reshape2))install.packages("reshape2")
library(ggpubr)
library(reshape2)
# 读取CSV文件
setwd("你自己的工作目录")
data <- read.csv("你自己的数据.csv")
# 将数据转换为长格式,适合绘制小提琴图
data1 <- melt(data, id.vars = "type")
# 创建小提琴图并赋值给对象p
p <-ggviolin(data1, x="variable", y="value",
fill="type",#填充
palette =c("#B3CDE3","#DECBE4","#F7E5C3"),#设置颜色
add ="boxplot",#添加箱线图
xlab = F, #不显示x轴的标签
legend = "right"#图例显示在右侧
)
p <-ggviolin(data1, x="variable", y="value",
color = "type",
fill="type",
palette =c("#B3CDE3","#DECBE4","#F7E5C9"),#设置颜色
add = "boxplot",#添加箱线图
add.params = list(color="white"),#设置箱线图边颜色
xlab = F, #不显示x轴的标签
legend = "right"#图例显示在右侧
)
# 保存图为PNG文件,尺寸为600x600像素
ggsave("箱线图1.png", plot = p, width = 12, height = 6, units = "in", dpi = 600)
#保存绘图
install.packages("eoffice")
library(eoffice)
topptx(filename="1.pptx",height = 6,width = 9)
示例二的代码:
#下载并调用所需包
if(!require(ggplot2))install.packages("ggplot2")
if(!require(gghalves))install.packages("gghalves")
library(ggplot2)
library(gghalves)
# 读取数据
setwd("你自己的工作目录")
data <- read.csv("你自己的数据.csv")
# 绘图
p <- ggplot(data, aes(x = Species, y = Sepal.Length, fill = Species, color = Species)) +
scale_fill_manual(values = c("#E69F00","#D55E00", "#56B4E9", "#009E73","#F0E442")) +
scale_colour_manual(values = c("#E69F00", "#D55E00","#0072B2", "#009E73", "#F0E442"))
# 先画一半小提琴图
p1 <- p + geom_half_violin(
position = position_nudge(x = 0.1, y = 0),
side = 'R', adjust = 1.2, trim = FALSE, color = NA, alpha = 0.6
)
# 添加散点图
p2 <- p1 + geom_half_point(
position = position_nudge(x = -0.35, y = 0), size = 3, shape = 19, range_scale = 0.5, alpha = 0.6
)
# 添加箱线图
p3 <- p2 + geom_boxplot(
outlier.shape = NA, # 隐藏离群点
width = 0.1,
alpha = 0.8
)
# 设置主题和字体
windowsFonts(A = windowsFont("Times New Roman"),
B = windowsFont("Arial"))
p4 <- p3 + theme_light() + theme(panel.grid = element_blank()) +
theme(
axis.ticks.length = unit(-0.25, "cm"),
axis.text.x = element_text(margin = unit(c(0.5, 0.5, 0.5, 0.5), "cm")),
axis.text.y = element_text(margin = unit(c(0.5, 0.5, 0.5, 0.5), "cm")),
panel.grid.major = element_line(linetype = "dotted",color = "lightgray", size = 0.5), # 添加背景网格虚线
text = element_text(family = "A", size = 20)
)
p4
#图形转置
# p5<-p3+coord_flip()
# p5
#设置主题和字体
#设置新罗马字体
# 保存图形
ggsave(
filename = "Groundwater.png", # 保存的文件名称。通过后缀来决定生成什么格式的图片
width = 9, # 宽
height = 5, # 高
units = "in", # 单位
dpi = 600 # 分辨率DPI
)
#导出图片
library(eoffice)
topptx(filename="Leach.pptx",height = 6,width = 9)
本文作者:李家旭
现在:
长按扫码关注:科研生信充电宝
10元赞赏本文,即喜欢作者~
即可直接解锁:
《跟着Nature子刊学习半小提琴半箱线图的绘制》对应资源哦~
看到这里你还不心动吗?
赶紧关注、转发、点赞、分享,领取你的专属福利吧~
好啦,以上就是今天推文的全部内容啦!
版权声明:本文内容由互联网用户自发贡献,版权归作者所有,本公众号不拥有所有权,也不承担相关法律责任。
如果您发现本公众号中有涉嫌抄袭的内容,欢迎发送邮件至:kysxcdb@163.com 进行举报,一经查实,本公众号将立刻删除涉嫌侵权内容。
微信号|科研生信充电宝
· BIOINFOR ·
永远相信美好的事情
即将发生