R語言繪圖系列:
成都創(chuàng)新互聯(lián)公司從2013年創(chuàng)立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元遂平做網(wǎng)站,已為上家服務(wù),為遂平各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18982081108
標(biāo)度控制著數(shù)據(jù)到圖形屬性的映射,標(biāo)度將我們的數(shù)據(jù)轉(zhuǎn)化為視覺上可以感知的東西,比如大小、位置、顏色、形狀等。標(biāo)度也為我們提供了讀圖時(shí)所使用的工具,比如說坐標(biāo)軸和圖例。總的來說,可以稱為引導(dǎo)元素。標(biāo)度函數(shù)控制元素的屬性,可以理解為圖形的遙控器,可以用它來調(diào)整畫布大小、顏色等等。此前學(xué)的shape,color,size等參數(shù)和標(biāo)度函數(shù)相比顯得不夠靈活。
scale_fill_brewer 調(diào)色板函數(shù)
geom_errorbar()
geom_crossbar()
geom_linerange() 繪制線段
geom_pointrange() 繪制點(diǎn)
pointrange:點(diǎn)畫線
首先繪制一張盒形圖
在圖上顯示出觀測(cè)值
值得注意的是,圖上點(diǎn)的多少并不能完全反應(yīng)原始數(shù)據(jù)的多少,因?yàn)橛械狞c(diǎn)可能因?yàn)辄c(diǎn)過于密集就會(huì)被覆蓋,看起來是一個(gè)點(diǎn),其實(shí)可能是多個(gè)點(diǎn)。
因此可以使用geom_jitter函數(shù)將不同的點(diǎn)區(qū)分開(jitter是震蕩散點(diǎn)),width設(shè)置如果遇到相同的點(diǎn),點(diǎn)向左右方平移的距離。alpha設(shè)置透明度。
黑色點(diǎn)是離群點(diǎn)
還可以繪制卡槽圖
varwidth參數(shù)會(huì)根據(jù)該水平下觀測(cè)值的個(gè)數(shù)(n值)改變盒形圖的寬度。(這里寬度去的不是觀測(cè)個(gè)數(shù)的絕對(duì)值,而是平方根,以縮小差距。)
給盒子上色
分組盒形圖,用不同顏色區(qū)分
畫水平的盒形圖
使用coord_flip函數(shù)(坐標(biāo)軸翻轉(zhuǎn)函數(shù))
繪制一張直方圖
bins可以設(shè)置直方圖條柱的數(shù)目,默認(rèn)為30。當(dāng)bins和binwidth(設(shè)置條柱寬度)同時(shí)設(shè)置時(shí),默認(rèn)以binwidth為準(zhǔn)。
新加入變量cut,根據(jù)新變量在price水平上進(jìn)行一個(gè)計(jì)數(shù)
y軸由count變?yōu)閐ensity,繪制概率密度
注意下面density的寫法,前后都要加..
繪制概率密度曲線:geom_density函數(shù)
堆棧密度概率曲線
geom_line/geom_path/geom_step
繪制一個(gè)簡(jiǎn)單的線圖
繪制點(diǎn)線圖,點(diǎn)和線需要分別添加。
如上圖,線在點(diǎn)之上,是因?yàn)橄韧渡淞它c(diǎn),又投射了線。
先投射線,點(diǎn)就出現(xiàn)在了線之上。
線的顏色出現(xiàn)了漸變
geom_smooth函數(shù):繪制擬合曲線
methods還有其他的方法,如glm:廣義線性模型;losses:純粹平滑;gam:廣義加性模型等等(lm和glm最常用)
geom_hline繪制水平線,geom_vline繪制垂直線。xintercept和yintercept是截距,slope是斜率。
查看GOplot內(nèi)示例數(shù)據(jù)的格式,對(duì)自己的數(shù)據(jù)做處理
觀察結(jié)論:
觀察自己的兩個(gè)數(shù)據(jù)表:
table.legend 設(shè)置為T時(shí)會(huì)顯示表格
本圖中表格和圖例是出圖后剪切拼合而成,沒有用R中的拼圖包
ID轉(zhuǎn)換用到的是 bitr() 函數(shù),bitr()的使用方法:
org.Hs.eg.db包含有多種gene_name的類型
keytypes() :keytypes(x),查看注釋包中可以使用的類型
columns() :類似于keytypes(),針對(duì)org.Hs.eg.db兩個(gè)函數(shù)返回值一致
select() :select(x, keys, columns, keytype, ...) eg.
函數(shù)enrichGO()進(jìn)行GO富集分析,enrichGO()的使用方法:
舉例:
前面我給大家詳細(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做出來的圖。很多粉絲可能用的都是最新版本的R 4.1.2。
我們知道R的版本在不停的更新,相應(yīng)的R包也在不停的更新。我把繪制氣泡圖和柱形圖相關(guān)的函數(shù)拿出來認(rèn)真的研究了一下,終于發(fā)現(xiàn)的癥結(jié)所在。
dotplot這個(gè)函數(shù),多了個(gè) label_format 參數(shù)
我們來看看這個(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
原來這個(gè)參數(shù)默認(rèn)值是30,當(dāng)標(biāo)簽的長(zhǎng)度大于30個(gè)字符就會(huì)被折疊,用多行來展示。既然問題找到了,我們就來調(diào)節(jié)一下這個(gè)參數(shù),把他設(shè)置成100,讓我們的標(biāo)簽可以一行展示。
是不是還是原來的配方,還是熟悉的味道
同樣的柱形圖,我們也能讓他恢復(fù)原來的容貌。
關(guān)于如何使用R做GO和KEGG富集分析,可參考下文
GO和KEGG富集分析視頻講解