如要獲得此教程代碼,可以在“公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
今天無意間看到,那么我們的以前來學習下吧,是一篇比較詳細的教程,值得推薦。
原圖:
1.2 數據
教程中未給相應的數據,我們依照葫蘆畫瓢自動創建示例數據。
1.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))+
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軸名
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) #標題大小
二、棒棒圖優化美化
此圖,已經出來,但是,基因中間都是空白,知否可以進行填充美化呢??
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)
2.3 最終圖形
plot_grid(p5,p1)
圖形顏色可以自己的進行調節即可!!
三、顯著相關性散點圖
原文圖形:
我們使用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()
3.3 參數設置
geom_smooth()函數
?method有如下幾種:"lm", "glm", "gam", "loess"
?color是調控線中位線的顏色
具體參數如何設置請使用??geom_smooth()進行查看
ggpubr包參數設置
1、散點圖的形狀設置
使用ggpubr::show_point_shapes()進行查看
顯著性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")
往期文章(總匯)--點擊鏈接進入(列出部分,并非全部)
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的分析和可視化(包括數據分析,圖形繪制等);分享感興趣的文獻和學習資料!