本系列課程要求大家有一定的R語(yǔ)言基礎(chǔ),對(duì)于完全零基礎(chǔ)的同學(xué),建議去聽一下師兄的《生信必備技巧之——R語(yǔ)言基礎(chǔ)教程》。本課程將從最基本的繪圖開始講解,深入淺出的帶大家理解和運(yùn)用強(qiáng)大而靈活的ggplot2包。內(nèi)容包括如何利用ggplot2繪制散點(diǎn)圖、線圖、柱狀圖、添加注解、修改坐標(biāo)軸和圖例等。
在成武等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供做網(wǎng)站、網(wǎng)站建設(shè) 網(wǎng)站設(shè)計(jì)制作專業(yè)公司,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),成都全網(wǎng)營(yíng)銷推廣,成都外貿(mào)網(wǎng)站建設(shè),成武網(wǎng)站建設(shè)費(fèi)用合理。
本次課程所用的配套書籍是: 《R Graphic Cookbooks》
除了以上的基本圖形外,師兄還會(huì)給大家講解箱線圖、提琴圖、熱圖、火山圖、氣泡圖、桑基圖、PCA圖等各種常用的生信圖形的繪制,還不趕緊加入收藏夾,跟著師兄慢慢學(xué)起來(lái)吧!
柱狀圖可能是最常用的一種數(shù)據(jù)可視化。它們通常用于顯示數(shù)值(在y軸上),用于顯示不同類別的數(shù)值(在x軸上)。例如,柱狀圖可以用來(lái)顯示四種不同商品的價(jià)格。柱狀圖通常不適合顯示一段時(shí)間內(nèi)的價(jià)格,因?yàn)闀r(shí)間是一個(gè)連續(xù)的變量。
在制作柱狀圖時(shí),您應(yīng)該注意一個(gè)重要的區(qū)別:柱狀圖的高度有時(shí)表示數(shù)據(jù)集中的案例數(shù),有時(shí)表示數(shù)據(jù)集中的值。記住這一區(qū)別——這可能會(huì)引起混淆,因?yàn)樗鼈兣c數(shù)據(jù)的關(guān)系非常不同,但兩者使用相同的術(shù)語(yǔ)。
拓展: position參數(shù): 此處的position主要是指對(duì)圖像的微調(diào),最常見的應(yīng)用是在分組的柱形圖(bar)中,因?yàn)榉纸M的柱形圖會(huì)產(chǎn)生組內(nèi)堆積和不堆積兩種主要效果。
1. barplot函數(shù)
a=matrix(1:18,2)
a
?[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
[1,]? ? 1? ? 3? ? 5? ? 7? ? 9? ?11? ?13? ?15? ?17
[2,]? ? 2? ? 4? ? 6? ? 8? ?10? ?12? ?14? ?16? ?18
class(a) #查看a數(shù)據(jù)類型
[1] "matrix"
注意barplot函數(shù)對(duì)象要么是向量,要么是矩陣,若不是,則要進(jìn)行數(shù)據(jù)數(shù)據(jù)類型進(jìn)行轉(zhuǎn)換
barplot(d)? #所有參數(shù)默認(rèn)
?barplot
常見參數(shù)就不贅述了,幾個(gè)個(gè)人認(rèn)為比較重要參數(shù)如下
names.arg----在每個(gè)條形圖或條形圖下繪制的名稱向量。 如果省略此參數(shù),那么如果它是向量,則從height的names屬性中獲取名稱;如果它是矩陣,則從列名稱中獲取名稱。
legend.text----數(shù)據(jù)為矩陣的時(shí)候用,如果legend.text為true,則height的行名稱非空時(shí)將用作標(biāo)簽。
horiz----默認(rèn)false,為豎直條形圖,改為TRUE,為水平條形圖
beside---如果為FALSE,則將高度列描繪為堆疊的條,如果為TRUE,則將列描繪為并列的條
space---每根柱子之前留出的空間量(以平均柱子寬度的一部分為單位)。 可以以單個(gè)數(shù)字或每個(gè)小節(jié)一個(gè)數(shù)字的形式給出。 如果height是一個(gè)矩陣,并且next為TRUE,則可以用兩個(gè)數(shù)字指定空間,其中第一個(gè)是同一組中的條形之間的間隔,第二個(gè)是組之間的間隔。 如果未明確給出,則如果height為矩陣,并且next為TRUE,則默認(rèn)為c(0,1),否則為0.2。
還有很多參數(shù)可以通過help()查詢
barplot(a,names.arg = c('1','2','3','4','5','6','7','8','9'),beside = TRUE,horiz = TRUE,col = rep(c('blue','green','gray'),3),legend.text = TRUE)
barplot(a,names.arg = c('1','2','3','4','5','6','7','8','9'),beside = F,horiz = TRUE,col = rep(c('blue','green'),2),legend.text = TRUE)
barplot(a,names.arg = c('1','2','3','4','5','6','7','8','9'),beside = F,horiz = F,col = rep(c('blue','green'),2),legend.text = TRUE)?
2.ggplot2包
安裝加載包
install.package('ggplot2')
library(ggplot2)
#創(chuàng)建矩陣
data-data.frame(Sample-c(rep('control1',3),rep('control2',3),rep('control3',3),rep('treat1',3),rep('treat2',3),rep('treat3',3),rep('treat4',3)), contion-rep(c('Cell','Tissue','Organ'),7), value-c(503,264,148,299,268,98,363,289,208,108,424,353,1,495,168,152,367,146,48,596,143))
colnames(data)=c('sample',"contion","value")
ggplot(data,mapping = aes(Sample,value,fill=contion))+geom_bar(stat='identity',position='fill') +labs(x = 'Sample',y = 'frequnency') +theme(axis.title =element_text(size = 16),axis.text =element_text(size = 14, color = 'black'))+theme(axis.text.x = element_text(angle = 45, hjust = 1))
#ggplot函數(shù),geom從數(shù)據(jù)到幾何圖像,geom_bar為柱狀圖,geom_line為線型圖等,aes形成映射,x軸為sample,y軸為value,堆疊為contion,geom_bar()函數(shù)為建立柱狀圖,stat參數(shù)-統(tǒng)計(jì)變換,position參數(shù)為柱狀圖形式,position= 'fill'(圖形元素堆疊且高度標(biāo)準(zhǔn)化為1),position= 'stack'(圖形堆疊圖),參數(shù)position= 'dodge'(并列數(shù)據(jù),非堆疊展示),coord畫圖在某個(gè)坐標(biāo)系中,facet將繪圖窗口分成若干子窗口用來(lái)生成數(shù)據(jù)中不同子集的圖形
# labs為標(biāo)題,theme為設(shè)置標(biāo)題參數(shù),axis.title為軸標(biāo)題信息,axis.text為軸注釋文本,axis.text.x表示設(shè)置x軸的信息,還有更多參數(shù)詳查ggplot2包
ggplot(data,mapping = aes(Sample,value,fill=contion))+geom_bar(stat='identity',position='fill') +labs(x = 'Sample',y = 'frequnency') +theme(axis.title =element_text(size = 16),axis.text =element_text(size = 14, color = 'black'))+theme(axis.text.x = element_text(angle = 45, hjust = 1))+coord_flip() #加的函數(shù)可實(shí)現(xiàn)水平柱狀圖展示
ggplot(data,mapping = aes(Sample,value,fill=contion))+geom_bar(stat='identity',position='stack') +labs(x = 'Sample',y = 'frequnency') +theme(axis.title =element_text(size = 16),axis.text =element_text(size = 14, color = 'black'))+theme(axis.text.x = element_text(angle = 45, hjust = 1))
ggplot(data,mapping = aes(Sample,value,fill=contion))+geom_bar(stat='identity',position='dodge') +labs(x = 'Sample',y = 'frequnency') +theme(axis.title =element_text(size = 16),axis.text =element_text(size = 14, color = 'black'))+theme(axis.text.x = element_text(angle = 45, hjust = 1))
前面我給大家詳細(xì)介紹過
?GO簡(jiǎn)介及GO富集結(jié)果解讀
?四種GO富集柱形圖、氣泡圖解讀
?GO富集分析四種風(fēng)格展示結(jié)果—柱形圖,氣泡圖
?KEGG富集分析—柱形圖,氣泡圖,通路圖
? DAVID GO和KEGG富集分析及結(jié)果可視化
也用視頻給大家介紹過
? GO和KEGG富集分析視頻講解
最近有粉絲反映說,利用clusterProfiler這個(gè)包繪制GO富集分析氣泡圖和柱形圖的時(shí)候,發(fā)現(xiàn)GO條目的名字都重疊在一起了。
氣泡圖
柱形圖
這個(gè)圖別說美觀了,簡(jiǎn)直不忍直視。經(jīng)過我的認(rèn)真研究,發(fā)現(xiàn)跟R版本有關(guān)。前面我給大家展示的基本都是R 3.6.3做出來(lái)的圖。很多粉絲可能用的都是最新版本的R 4.1.2。
我們知道R的版本在不停的更新,相應(yīng)的R包也在不停的更新。我把繪制氣泡圖和柱形圖相關(guān)的函數(shù)拿出來(lái)認(rèn)真的研究了一下,終于發(fā)現(xiàn)的癥結(jié)所在。
dotplot這個(gè)函數(shù),多了個(gè) label_format 參數(shù)
我們來(lái)看看這個(gè)參數(shù)究竟是干什么用的,看看參數(shù)說明
label_format :
a numeric value sets wrap length, alternatively a custom function to format axis labels. by default wraps names longer that 30 characters
原來(lái)這個(gè)參數(shù)默認(rèn)值是30,當(dāng)標(biāo)簽的長(zhǎng)度大于30個(gè)字符就會(huì)被折疊,用多行來(lái)展示。既然問題找到了,我們就來(lái)調(diào)節(jié)一下這個(gè)參數(shù),把他設(shè)置成100,讓我們的標(biāo)簽可以一行展示。
是不是還是原來(lái)的配方,還是熟悉的味道
同樣的柱形圖,我們也能讓他恢復(fù)原來(lái)的容貌。
關(guān)于如何使用R做GO和KEGG富集分析,可參考下文
GO和KEGG富集分析視頻講解
當(dāng)前題目:R語(yǔ)言柱狀圖GO堆積 r語(yǔ)言柱狀圖顯示柱名字
路徑分享:http://jinyejixie.com/article40/doseeho.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、微信小程序、網(wǎng)站設(shè)計(jì)、網(wǎng)站內(nèi)鏈、App開發(fā)、靜態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)