跟着iMeta学作图 | 棒棒图和显著相关性散点图
如要获得此教程代码,可以在“公ZH”回复关键词:20230110
棒棒图的教程来自公众号“生信宝典”
原文来自iMeta期刊题目为“Pan-cancer analyses reveal molecular and clinical characteristics of cuproptosis regulators”论文中的图形
原文链接文章链接:https://onlinelibrary.wiley.com/doi/10.1002/imt2.68
原文教程链接:https://mp.weixin.qq.com/s/yTETDyVzW6CHI318GYqA
今天无意间看到,那么我们的以前来学习下吧,是一篇比较详细的教程,值得推荐。
原图:
image1.2 数据
教程中未给相应的数据,我们依照葫芦画瓢自动创建示例数据。
image1.3 绘图
导入数据
df <- read.csv("20230110_testdata.csv", header = T)
head(df)
@固定列的顺序
#'@这是其中一种方法
df$ID <- factor(df$ID, levels = df$ID)
df$Target <- factor(df$Target, levels = df$Target)
df$Drug <- factor(df$Drug, levels = df$Drug)
绘制基础图形
ggplot(df, aes(Correlation,Drug))+
geom_point(aes(size = Pvalue),color = "skyblue")
@固定列的顺序:方法二
使用factor()函数进行固定
ggplot(df, aes(x = Correlation,
y = factor(Drug, levels = Drug, unique(Drug))))+
geom_point(aes(size = Pvalue),color = "skyblue")
添加线段
segment_df <- data.frame(x = 0,y = seq(1:27),xend = df$Correlation,yend = seq(1:27))
绘图
ggplot(df,aes(Correlation,Drug))+
image
1.4 美化
ggplot(df,aes(Correlation,Drug))+
geom_point(aes(size = Pvalue),color = "skyblue")+
geom_segment(segment_df,mapping = aes(x = x, y = y, xend = xend, yend = yend),
size = 0.8,color = "skyblue")+
# scale_x_continuous(limits = c(0,0.152), #设置x轴范围
# expand = expansion(mult = 0))+ #expansion函数的参数mult: 百分比间距,可以接受一个向量
theme(panel.background = element_blank(), #删除背景
panel.grid = element_line (colour = "lightgrey"), #设置网格颜色
panel.border = element_rect(fill = NA,colour = "black",size = 0.8))+ #设置边框
ylab("") #删除y轴名
image
1.5 将ID和Target通过cowplot进行组合
p2 <- ggplot(df,aes("",Target))+
theme(panel.background = element_blank(),#去除背景
panel.border = element_blank(), #去除边框
axis.ticks.y = element_blank(), #去除y轴刻度
axis.ticks.x = element_blank())+ #去除x轴刻度
xlab("")+ #去除x轴标题
ylab("")+ #去除y轴标题
coord_fixed(ratio = 10) #将y轴和x轴标度比例设置为10:1
p3 <- ggplot(df,aes("",ID))+
theme(panel.background = element_blank(),#去除背景
panel.border = element_blank(),
axis.ticks.y = element_blank(),
axis.ticks.x = element_blank())+
xlab("")+
ylab("")+
coord_fixed(ratio = 10)
合并出图
plot_grid(p3,p2,p1,
ncol = 3, #三张图片分三列合并
rel_widths = c(1,1,2), #三列所占比例为1:1:2
labels = c("Target.Pathway","Target","Drug"), #每一幅子图片标题名
label_size = 8) #标题大小
image
二、棒棒图优化美化
此图,已经出来,但是,基因中间都是空白,知否可以进行填充美化呢??
2.1 创建连线
ines <- data.frame(
x = as.character(c(rep(1, 27),rep(2,27))),
y = c(sample(1:27), sample(1:27)),
group = rep(1:27, 2))
注意****:****此方法创建的连线是虚拟的,自己可根据基因之间的相关性手动创建。
绘图:
p4 <- ggplot(lines) +
geom_link2(aes(x = x, y = y, group = group,
colour = stat(index)
), size = 2)+
scale_colour_gradient2(low = "#04a3ff", mid = "#ffffff", high = "#ff349c",
midpoint = 0.5)+
geom_point(aes(x, y, group = group, fill = x), shape = 21, color = "#fc1e1e", size = 4)+
scale_fill_manual(values = c("#04a3ff", "#ff349c"))+
# 空白主题:
theme_minimal() +
theme(
legend.position = "none",
axis.title.x = element_blank(),
axis.title.y = element_blank(),
panel.border = element_blank(),
panel.grid=element_blank(),
axis.ticks = element_blank(),
axis.text = element_blank(),
plot.title=element_text(size=0, face="bold"))
p4
2.2 组合图形
library(patchwork)
library(ggplotify)
layout <- c(
area(t = 1, l = 1, b = 6, r = 3),
area(t = 0, l = 3, b = 6, r = 7),
area(t = 1, l = 7, b = 6, r = 9)
)
p5 <- as.ggplot(p2) + p4 + as.ggplot(p3) + plot_layout(design = layout)
image
2.3 最终图形
plot_grid(p5,p1)
image
图形颜色可以自己的进行调节即可!!
三、显著相关性散点图
原文图形:
image我们使用ggplot函数绘制即可
3.1 导入需要的包
library(ggplot)
library(ggpubr)
3.2 绘图
ggplot(df,aes(Correlation,Pvalue))+
geom_point(shape = 17)+
geom_smooth(method = 'lm',color = 'black')+
ggpubr::stat_cor(label.x = 0.5, size = 8, color = 'red')+
theme_classic()
image
3.3 参数设置
geom_smooth()函数
•method有如下几种:"lm", "glm", "gam", "loess"
•color是调控线中位线的颜色
具体参数如何设置请使用??geom_smooth()进行查看
ggpubr包参数设置
1、散点图的形状设置
使用ggpubr::show_point_shapes()进行查看
image
显著性P值和R值的位置设置
使用label.x和label.y进行设置
颜色使用color进行设置
stat_cor(
mapping = NULL,
data = NULL,
method = "pearson",
alternative = "two.sided",
cor.coef.name = c("R", "rho", "tau"),
label.sep = ", ",
label.x.npc = "left",
label.y.npc = "top",
label.x = NULL,
label.y = NULL,
output.type = "expression",
digits = 2,
r.digits = digits,
p.digits = digits,
r.accuracy = NULL,
p.accuracy = NULL,
geom = "text",
position = "identity",
na.rm = FALSE,
show.legend = NA,
inherit.aes = TRUE,
...
)
美化
ggplot(df,aes(Correlation,Pvalue))+
geom_point(shape = 19, color = "red")+
geom_smooth(method = 'lm',color = 'black', se = FALSE)+
ggpubr::stat_cor(label.x = 0.1 , color = 'black')+ ##
theme_classic()+
xlab(NULL)+ylab("Cuproptosis activity score")+ggtitle("lMvigor 210")
image
往期文章(总汇)--点击链接进入(列出部分,并非全部)
01-[R语言可视化-精美图形绘制系列]--精美火山图
02-R语言可视化-精美图形绘制系列--柱状图
03-R语言可视化-精美图形绘制系列--功能富集分析
04-R语言可视化-精美图形绘制系列—多组GO富集可视化
05-[R语言可视化-精美图形绘制系列--堆积图]
06-[R语言可视化-精美图形绘制系列--组间相关性分析]
07-[R语言可视化-精美图形绘制系列]--Mental分析
08-[R语言可视化-精美图形绘制系列--复杂热图+两图渐变连线]-【转载】
09-[R语言可视化-精美图形绘制系列--桑基图(Sankey)]
10-[R语言可视化-精美图形绘制系列--柱状图误差线标记]11-跟着NC学作图 | 柱状图与相关性图12-[R语言可视化-精美图形绘制系列--GO、KEGG富集通路关联图]
13-[跟着“基迪奥生物学”作图]--截断图14-[R语言可视化-精美图形绘制系列]--显著性箱线图
14-2[R语言可视化]--箱线图不同的画法及参数设置 | 学习笔记15-[R语言可视化-精美图形绘制系列]--组内相关性分析
16-[R语言可视化-精美图形绘制系列]--主成分分析(PCA)
17-[跟着NC学作图]--箱线图(一个函数获得Mean、SD、P值)
18-[跟着NC学作图]--生存分析(Survival analysis)
19-[跟着NC学作图]--散点图20-[R语言可视化-精美图形绘制系列]--散点图+箱线图组合图
21-[跟着NC学作图]-柱状堆积图22-[跟着NC学作图]-绘制频率分布图(图中图)
22-[R语言可视化-精美图形绘制系列]--FPI箱线图
23-跟着NC做基因组数据分析24-使用OmicCircos包--绘制基因圈图
小杜的生信筆記 ,主要发表或收录生物信息学的教程,以及基于R的分析和可视化(包括数据分析,图形绘制等);分享感兴趣的文献和学习资料!