生信常用分析圖形繪制02 -- 解鎖火山圖真諦欧啤!

封面

有了R語(yǔ)言的基礎(chǔ),以及ggplot2繪圖基礎(chǔ)三幻,我們的生信常用分析圖形的繪制就可以提上日程了!本系列呐能,師兄就開始帶著大家一起學(xué)習(xí)如何用R語(yǔ)言繪制我們自己的各種分析圖吧念搬!

由于本系列的所有分析代碼均為師兄細(xì)心整理和詳細(xì)注釋而成的!歡迎點(diǎn)贊摆出、收藏朗徊、轉(zhuǎn)發(fā)!

您的支持是我持續(xù)更新的最大動(dòng)力偎漫!

示例數(shù)據(jù)和代碼獲取

系列內(nèi)容包括:

  • 各種類型的熱圖你學(xué)會(huì)了嗎爷恳?
    • 普通熱圖
    • 環(huán)形熱圖
  • 解鎖火山圖真諦!
    • plot函數(shù)就能畫火山圖象踊?
    • 高級(jí)函數(shù)繪制火山圖--ggplot2温亲、ggpurb
  • 經(jīng)典富集分析及氣泡圖、柱狀圖繪制
    • 氣泡圖繪制
    • 柱狀圖繪制
  • 富集分析圈圖
  • 富集分析弦圖
  • 繪制一張可以打動(dòng)審稿人的杀兀基圖
  • 生存分析 -- KM曲線圖
  • 基礎(chǔ)PCA圖
  • 云雨圖
  • 韋恩圖
  • 環(huán)形互作網(wǎng)絡(luò)圖
  • 相互作用網(wǎng)絡(luò)圖
  • 聚類樹美化
  • 富集分析氣泡圖進(jìn)階版
  • mantel test相關(guān)性圖
  • 詞云圖
  • 瀑布圖
  • 森林圖
  • 曼哈頓圖
  • 啞鈴圖
  • 三線表
  • 嵌套圈圖
  • 列線圖
  • 蜂群圖
  • 箱線圖+貝塞爾曲線
  • 矩陣散點(diǎn)圖
  • 等等栈虚,想到再繼續(xù)補(bǔ)充!J仿 节芥!

本期火山圖效果展示

效果展示

R自帶函數(shù)plot就能畫火山圖?

##############
data <- read.csv("DEG.csv",row.names = 1)

color <- rep("#999999",nrow(data))

color[data$pvalue <0.05 & data$log2FoldChange > 1] <- "#FC4E07"
color[data$pvalue <0.05 & data$log2FoldChange < -1] <- "#00AFBB"

par(oma = c(0,2,0,0))

plot(data$log2FoldChange,-log10(data$pvalue),pch = 16,cex = 0.5,
     xlim = c(-4,4), ylim = c(0,32), col = color, frame.plot = F,
     xlab = "log2FC", ylab = "-log10(Pvalue)", cex.axis = 1, cex.lab = 1.3)

# 添加參考線:
abline(h = -log10(0.05),lwd = 2, lty = 3)  # lwd設(shè)置線的寬度,lty設(shè)置線的類型头镊;
abline(v = c(-1,1),lwd = 2, lty = 3)  # lwd設(shè)置線的寬度蚣驼,lty設(shè)置線的類型;

# 添加圖例
legend(x = 3, y = 32, legend = c("Up","Normal","Down"), 
       bty = "n", # 去除邊框
       pch = 19,cex = 1, # 設(shè)置點(diǎn)的樣式和大小
       x.intersp = 0.3, # 設(shè)置字與點(diǎn)之間的距離相艇;
       y.intersp = 0.3, # 設(shè)置點(diǎn)與點(diǎn)的高度差颖杏,相當(dāng)于行距;
       col = c("#FC4E07","#999999","#00AFBB"))

# 添加標(biāo)簽:
color = c()
color[which(data[1:10,]$regulate == "Up")] = "#FC4E07"
color[which(data[1:10,]$regulate != "Up")] = "#00AFBB"
text(data$log2FoldChange[1:10],-log10(data$pvalue)[1:10],
     labels = data$row[1:10],
     adj = c(0,1.5),
     cex = 0.6,
     col = color)
  • 將上述代碼封裝成函數(shù)坛芽,以后調(diào)用留储,就可以一鍵出圖:
# 包裝函數(shù):
# 調(diào)整1: xlim和ylim得去掉
# 調(diào)整2: 修改圖例的位置
plotVoc <- function(data){
  color <- rep("#999999",nrow(data))
  
  color[data$pvalue <0.05 & data$log2FoldChange > 1] <- "#FC4E07"
  color[data$pvalue <0.05 & data$log2FoldChange < -1] <- "#00AFBB"
  
  par(oma = c(0,2,0,0))
  
  plot(data$log2FoldChange,-log10(data$pvalue),pch = 16,cex = 0.5,
       col = color, frame.plot = F,
       xlab = "log2FC", ylab = "-log10(Pvalue)", cex.axis = 1, cex.lab = 1.3)
  
  # 添加參考線:
  abline(h = -log10(0.05),lwd = 2, lty = 3)  # lwd設(shè)置線的寬度,lty設(shè)置線的類型咙轩;
  abline(v = c(-1,1),lwd = 2, lty = 3)  # lwd設(shè)置線的寬度获讳,lty設(shè)置線的類型;
  
  # 添加圖例
  legend(x = 3, y = max(-log10(data$pvalue)), legend = c("Up","Normal","Down"), 
         bty = "n", # 去除邊框
         pch = 19,cex = 1, # 設(shè)置點(diǎn)的樣式和大小
         x.intersp = 0.3, # 設(shè)置字與點(diǎn)之間的距離活喊;
         y.intersp = 0.3, # 設(shè)置點(diǎn)與點(diǎn)的高度差丐膝,相當(dāng)于行距;
         col = c("#999999", "#FC4E07","#00AFBB"))
  
  # 添加標(biāo)簽:
  color = c()
  color[which(data[1:10,]$regulate == "Up")] = "#FC4E07"
  color[which(data[1:10,]$regulate != "Up")] = "#00AFBB"
  text(data$log2FoldChange[1:10],-log10(data$pvalue)[1:10],
       labels = data$row[1:10],
       adj = c(0,1.5),
       cex = 0.6,
       col = color)
}


data <- read.csv("DEG2.csv",row.names = 1)

plotVoc(data)
效果1

高級(jí)函數(shù)繪制火山圖--ggplot2钾菊、ggpurb

  • 使用ggplot2繪制:
library(ggplot2)

data <- read.csv("DEG.csv",row.names = 1)

#################
# ggplot2繪制火山圖
data$label <- c(rownames(data)[1:10],rep(NA,nrow(data) - 10))

ggplot(data,aes(log2FoldChange,-log10(pvalue),color = regulate)) + 
  xlab("log2FC") + 
  geom_point(size = 0.6) + 
  scale_color_manual(values=c("#00AFBB","#999999","#FC4E07")) + 
  geom_vline(xintercept = c(-1,1), linetype ="dashed") +
  geom_hline(yintercept = -log10(0.05), linetype ="dashed") + 
  theme(title = element_text(size = 15), text = element_text(size = 15)) + 
  theme_classic() + 
  geom_text(aes(label = label),size = 3, vjust = 1,hjust = -0.1)
  • 使用ggpurb的scatter函數(shù)也可以畫:
#############
# 使用ggpurb繪制火山圖:
library(ggpubr)
data$pvalue <- -log10(data$pvalue)
ggscatter(data, 
          x = "log2FoldChange", 
          y = "pvalue", 
          ylab="-log10(P.value)", 
          size=0.6, 
          color = "regulate", 
          label = rownames(data),
          label.select = rownames(data)[1:10],
          repel = T,
          palette = c("#00AFBB", "#999999", "#FC4E07")) +
          geom_hline(yintercept = 1.30,linetype ="dashed") +
          geom_vline(xintercept = c(-1,1),linetype ="dashed")
效果2

往期優(yōu)秀圖形目錄

漸變火山圖
氣泡圖+相關(guān)性熱圖

復(fù)雜提琴圖

復(fù)雜熱圖
復(fù)雜散點(diǎn)圖

復(fù)雜熱圖02
甘特圖
百分比柱狀圖
箱線圖美化
弦圖
mantel test圖
瀑布圖
曼哈頓圖
KEGG富集圖
啞鈴圖

以上內(nèi)容僅為群內(nèi)部分內(nèi)容帅矗,不代表全部。詳細(xì)目錄請(qǐng)看下鏈接煞烫!

示例數(shù)據(jù)和代碼獲取

往期文章

1. 生信常用分析圖形繪制01 -- 各種類型的熱圖浑此!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市滞详,隨后出現(xiàn)的幾起案子凛俱,更是在濱河造成了極大的恐慌,老刑警劉巖料饥,帶你破解...
    沈念sama閱讀 217,185評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件最冰,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡稀火,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門赌朋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來凰狞,“玉大人,你說我怎么就攤上這事沛慢∩娜簦” “怎么了?”我有些...
    開封第一講書人閱讀 163,524評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵团甲,是天一觀的道長(zhǎng)逾冬。 經(jīng)常有香客問我,道長(zhǎng),這世上最難降的妖魔是什么身腻? 我笑而不...
    開封第一講書人閱讀 58,339評(píng)論 1 293
  • 正文 為了忘掉前任产还,我火速辦了婚禮,結(jié)果婚禮上嘀趟,老公的妹妹穿的比我還像新娘脐区。我一直安慰自己,他們只是感情好她按,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,387評(píng)論 6 391
  • 文/花漫 我一把揭開白布牛隅。 她就那樣靜靜地躺著,像睡著了一般酌泰。 火紅的嫁衣襯著肌膚如雪媒佣。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,287評(píng)論 1 301
  • 那天陵刹,我揣著相機(jī)與錄音默伍,去河邊找鬼。 笑死授霸,一個(gè)胖子當(dāng)著我的面吹牛巡验,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播碘耳,決...
    沈念sama閱讀 40,130評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼显设,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了辛辨?” 一聲冷哼從身側(cè)響起捕捂,我...
    開封第一講書人閱讀 38,985評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎斗搞,沒想到半個(gè)月后指攒,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,420評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡僻焚,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,617評(píng)論 3 334
  • 正文 我和宋清朗相戀三年允悦,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片虑啤。...
    茶點(diǎn)故事閱讀 39,779評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡隙弛,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出狞山,到底是詐尸還是另有隱情全闷,我是刑警寧澤,帶...
    沈念sama閱讀 35,477評(píng)論 5 345
  • 正文 年R本政府宣布萍启,位于F島的核電站总珠,受9級(jí)特大地震影響屏鳍,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜局服,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,088評(píng)論 3 328
  • 文/蒙蒙 一钓瞭、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧腌逢,春花似錦降淮、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至媒惕,卻和暖如春系吩,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背妒蔚。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工穿挨, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人肴盏。 一個(gè)月前我還...
    沈念sama閱讀 47,876評(píng)論 2 370
  • 正文 我出身青樓科盛,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親菜皂。 傳聞我的和親對(duì)象是個(gè)殘疾皇子贞绵,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,700評(píng)論 2 354