为了避免各位错过最新的推文教程,强烈建议大家将“科研后花园”设置为“星标”(由于微信改版,有同学反映存在接收不到公众号推文的情况)!
密度散点图(Scatter Density Plot)是一种将散点图与核密度估计相结合的图表类型,用于显示数据的分布情况。它可以帮助我们观察数据的聚集情况和密度分布,更直观地理解数据的分布规律。要在R中绘制密度散点图,这里我们借助ggpointdensity包中的geom_pointdensity()[1]函数绘制,并借助geom_smooth()函数添加拟合曲线;借助stat_cor()函数计算R值与P值,颜色则是借助viridis包[2]进行调整。
1、加载R包:
library(ggplot2) # Create Elegant Data Visualisations Using the Grammar of Graphics
library(ggpointdensity) # A Cross Between a 2D Density Plot and a Scatter Plot
library(viridis) # Colorblind-Friendly Color Maps for R
library(ggpmisc) # Miscellaneous Extensions to 'ggplot2'
library(ggpubr) # 'ggplot2' Based Publication Ready Plots
2、加载数据(随机编写,无实际意义):
df1 <- read.table(file="data1.txt",sep="\t",header=T,check.names=FALSE)
df2 <- read.table(file="data2.txt",sep="\t",header=T,check.names=FALSE)
3、普通散点图绘制:
ggplot(df1, aes(x, y))+
geom_point()
ggplot(df2, aes(x, y))+
geom_point()
4、基于df1数据并基于ggpointdensity包绘制密度散点图:
ggplot(df1, aes(x, y)) +
geom_pointdensity() +
theme_bw()+
theme(panel.grid = element_blank(),
legend.position = c(0.15,0.75),
axis.text = element_text(size = 10))+
labs(x=NULL, y=NULL)+
scale_color_viridis(option = "turbo")->p1
p1
5、基于df2数据绘制密度散点图并添加拟合曲线及回归方程:
ggplot(df2, aes(x, y)) +
geom_pointdensity() +
geom_smooth(method = "lm",
formula = y ~ x,
linewidth = 1,
linetype=1, color = "#ffcb00")+
stat_cor(method = "pearson",label.x = 60, label.y = 20,size=4)+
stat_poly_eq(formula = y ~ x, aes(label = paste(after_stat(eq.label),
sep = "~~~")), parse = TRUE,
label.x = 0.88, label.y = 0.22,size=4)+
annotate("text", x = 68 , y = 32,label = "N = 2900", size= 4)+
theme_bw()+
theme(panel.grid = element_blank(),
legend.position = c(0.12,0.78),
axis.text = element_text(size = 10))+
labs(x=NULL, y=NULL)+
scale_color_viridis(option = "turbo")+
scale_y_continuous(expand = c(0,0))+
scale_x_continuous(expand = c(0,0))->p2
p2
6、拼图效果展示:
library(patchwork)
p1+p2+
plot_annotation(
tag_levels = c('A', '1'), tag_prefix = 'Fig. ', tag_sep = '.',) +
theme(plot.tag.position = c(0, 0.98),
plot.tag = element_text(size = 15, hjust = 0,vjust = 0, color="black"))
需要附带注释的源码请查看下方绘图模板获取方式!!
参考:
[1] ggpointdensity包帮助文档;
[2] viridis包帮助文档;
PS: 以上内容是小编个人学习代码笔记分享,仅供参考学习,欢迎大家一起交流学习。
R绘图模板——密度图+分组标记+均值线!!!
跟着Nature Communications学绘图——3D曲线图+多分组!!!
「微生物组」基于microeco包进行微生物群落结构组成分析!!!
R绘图模板——成比例Venn图的绘制!!!
R绘图模板——网络图+微生物丰度与基因间的相关性+正负相关(粉丝投稿)!!!
跟着Nature Ecology & Evolution学绘图——柱状堆积图+多因子分面+柱间连线!!!
R可视化——一文带你打通ggplot2个性化绘制柱状图(条形图)!!!
R可视化——一文带你打通ggplot2个性化绘制箱线图(更新版)!!!
R可视化——一文带你打通ggplot2个性化绘制散点图!!!
R绘图模板——双向柱状堆积图+排序!!!
R绘图模板——基于ggmsa包进行多序列比对及可视化!!!
R绘图模板——基于ggplot2包绘制圆环图&旭日图!!!
R绘图模板——散点+分组+置信圈+质心连线!!!
R绘图模板——分组散点&箱线图&小提琴图&条形图+拟合曲线!!
R绘图模板——半圆进化树+分支颜色+注释+标签颜色突出显示!!!
R可视化——热图+重要值计算及标记+解释度条形图!!!
R绘图模板——散点+均值+误差棒+字母标记+双刻度标记!!!
R绘图模板——散点+均值+误差棒+字母标记+双刻度标记!!!