來自生信技能樹小潔老師:
圖就是數(shù)據(jù)酿联,數(shù)據(jù)就是圖
安裝作圖的包
#設(shè)置鏡像
options("repos"=c(CRAN="http://mirrors.tuna.tsinghua.edu.cn/CRAN/"))
#安裝R包
if(!require(ggplot2))install.packages('ggplot2',update = F,ask = F)
if(!require(ggpubr))install.packages('ggpubr',update = F,ask = F)
if(!require(eoffice))install.packages("eoffice",update = F,ask = F)
if(!require(patchwork))install.packages("patchwork",update = F,ask = F)
#加載以檢查是否安裝成功
library(ggplot2)
library(ggpubr)
library(eoffice)
library(patchwork)
畫圖的目的是用函數(shù)去展示數(shù)據(jù),給它一個(gè)清晰和直觀像鸡,易讀的視圖粉渠。
1.常見可視化R包
- 1.1 作圖R包:
base
ggplot2
ggpubr
- 1.2 拼圖R包:
par里的mfrow
grid.arrange
cowplot
customLayout
patchwork
- 1.3 圖片導(dǎo)出:
經(jīng)典三段論
ggsave
eoffice:topptx
1.1 作圖R包:
base:古老的,一打開R語言之后就能直接使用的龄减,R語言自帶项钮,不需要加載任何包就能夠使用的函數(shù)統(tǒng)稱為base包,有狹義和廣義之分希停,這里說的是廣義烁巫。之前用plot()給一個(gè)向量畫圖和boxpolt()給兩個(gè)向量畫圖,不需要加載任何包宠能。
ggplot2:重點(diǎn)學(xué)習(xí)亚隙,比較系統(tǒng),畫不同圖需要注意的事項(xiàng)(參數(shù)復(fù)雜违崇,函數(shù)多阿弃,默認(rèn)灰色背景)诊霹。
ggpubr:不算單獨(dú)的一個(gè)體系,是對(duì)ggplot的一個(gè)美化和簡化渣淳,ggplot2有自己的個(gè)性脾还、語法,沒有系統(tǒng)學(xué)習(xí)語法會(huì)覺得不友好入愧,而ggpubr讓這些語法簡化些鄙漏,并且對(duì)ggplot默認(rèn)的視圖做了一些美化,有些細(xì)節(jié)需要回歸到ggplot2棺蛛。
1.2 拼圖:
patchwork:目前最好用的拼圖R包叫patchwork怔蚌,專門用來拼ggplot2的R包,其它類型的圖片需要轉(zhuǎn)換旁赊,有的可以桦踊,有的不行時(shí),可以用cowplot终畅。
par里的mfrow:一分為四籍胯,四張圖出現(xiàn)在畫板里,mfrow=c(2,2)把畫板分成兩行兩列的意思声离。
1.3 導(dǎo)出:
能用代碼完成的事情就不用鼠標(biāo)芒炼。
1.3.1 ggsave函數(shù)
專門是用來給ggplot2畫的圖保存的,如果不是用ggplot2畫出的圖术徊,可能ggsave不能保存本刽。
1.3.2 eoffice函數(shù)
toppx,把一張圖片導(dǎo)出為ppt赠涮。
2.作圖分三類
2.1 基礎(chǔ)包
略顯陳舊子寓,了解一下
以下的畫圖函數(shù)在基礎(chǔ)包里,不需要加載笋除,直接使用就好斜友。
高級(jí)繪圖函數(shù)和低級(jí)繪圖函數(shù)是按照功能來分的。低級(jí)繪圖函數(shù)是加小零件之類的垃它,加標(biāo)題鲜屏,線條之類的,不能直接出圖国拇,需要有寄生屬性洛史;高級(jí)繪圖函數(shù)能直接出圖的基礎(chǔ)包函數(shù),不依賴其它函數(shù)的存在酱吝。
單獨(dú)先運(yùn)行低級(jí)函數(shù)的代碼會(huì)報(bào)錯(cuò)也殖,必須先運(yùn)行高級(jí)繪圖函數(shù)代碼,有圖之后再添加?xùn)|西(再運(yùn)行低級(jí)繪圖函數(shù)代碼)务热,代碼運(yùn)行的順序不能錯(cuò)忆嗜。
plot(iris[,1],iris[,3],col = iris[,5])
##高級(jí)繪圖函數(shù)的代碼
text(6.5,4, labels = 'hello')
##低級(jí)繪圖
運(yùn)行高級(jí)繪圖函數(shù)出圖:
運(yùn)行低級(jí)繪圖函數(shù)代碼
關(guān)閉畫板:有時(shí)候不出圖時(shí)己儒,關(guān)掉畫板。
dev.off()
2.2 ggplot2
中堅(jiān)力量捆毫,語法有個(gè)性
library(ggplot2)
ggplot(data = iris)+
geom_point(mapping = aes(x = Sepal.Length,
y = Petal.Length,
color = Species))
##data = iris畫圖的數(shù)據(jù)闪湾,其它選項(xiàng)(顏色,背景等)是默認(rèn)的冻璃。
3.3 ggpubr
新手友好型 ggplot2簡化和美化 褒貶不一
library(ggpubr)
ggscatter(iris,
x="Sepal.Length",
y="Petal.Length",
color="Species")
##代碼比ggplot的簡單些响谓,ggscatter用來畫點(diǎn)圖的函數(shù)。在ggplot上做一些代碼簡化省艳,圖片比默認(rèn)的ggplot好看,沒有背景等細(xì)節(jié)美化嫁审。
ggpubr褒貶不一跋炕,是對(duì)ggplot2的補(bǔ)充和美化,把ggplot2學(xué)到熟練律适,不用學(xué)ggpubr都可以辐烂。
說明
以上內(nèi)容是聽生信技能樹小潔老師的R語言線上課,根據(jù)自己的理解記錄下來捂贿,小潔老師授課非常細(xì)心纠修,對(duì)不同水平的同學(xué)都照顧到,并且補(bǔ)充很多技巧以及注意事項(xiàng)厂僧,總結(jié)歸類做的很好扣草。