R語(yǔ)言ggplot2系列1-ggplot2簡(jiǎn)介

簡(jiǎn)單介紹一下ggplot2

既然要做“系列”當(dāng)然要先介紹一下主角-ggplot2。ggplot2是一個(gè)十分強(qiáng)大的R語(yǔ)言可視化包。它的核心理念是將繪圖與數(shù)據(jù)分離,數(shù)據(jù)相關(guān)的繪圖與數(shù)據(jù)無(wú)關(guān)的繪圖分離。它是按圖層作圖的,一個(gè)語(yǔ)句做一個(gè)僅包含基礎(chǔ)作圖單元的圖層,然后通過(guò)不同圖層的疊加最后成圖。大繁至簡(jiǎn),就像你學(xué)會(huì)了基本的漢子就能組成任何語(yǔ)句,表達(dá)你想表達(dá)一切,這種通過(guò)基礎(chǔ)元素的疊加組合可以實(shí)現(xiàn)任何圖,限制畫(huà)圖的將只有你的想象力。除了作圖,ggplot2也將基本的統(tǒng)計(jì)融入其中,可以說(shuō)是數(shù)據(jù)玩家的得意兵器。
理解ggplot2從兩點(diǎn)開(kāi)始:
1,ggplot2將繪圖視為一種映射。作圖的根本目的是什么?就是把大量的數(shù)據(jù)用直觀的圖形展示出來(lái),本質(zhì)就是一種數(shù)據(jù)和圖形的對(duì)應(yīng)關(guān)系,也可以說(shuō)是一種映射。而ggplot2就是從這種理念出發(fā)的,它把作圖直接看成一種從數(shù)學(xué)空間到圖形元素空間的映射。簡(jiǎn)單理解對(duì)于分類數(shù)據(jù)來(lái)講可以將不同分類映射到不同的顏色或者不同的形狀,把連續(xù)數(shù)據(jù)映射成柱子的高度,線段的長(zhǎng)度等等。從這一點(diǎn)理解數(shù)據(jù)會(huì)有助于后期對(duì)圖的設(shè)計(jì)。
2,ggplot2的圖層疊加思想。ggplot2不去定義復(fù)雜的圖形,如瀑布圖,棒棒糖圖。為什么不呢?一旦定義了暴露給使用者的接口必定有限,所以畫(huà)出的圖就局限在繪圖包設(shè)定的圈子里了,不但可操作性差且你要在小本本里記住每一個(gè)圖用哪個(gè)包,如何調(diào)參,太不友好。ggplot2只定義各種底層組件(如線條、方塊),使用者可以用這些基本組件根據(jù)自己需求來(lái)合成復(fù)雜的圖形,這使它能以非常簡(jiǎn)潔的函數(shù)構(gòu)建各類圖形,一層一層往上加,語(yǔ)法上很好理解。
綜上,ggplot2繪圖理念如下:Plot(圖)= data(數(shù)據(jù)集,主要是data frame)+ Aesthetics(美學(xué)映射,比如將變量映射給x,y坐標(biāo)軸,或者映射給顏色、大小、形狀等圖形屬性)+ Geometry(幾何對(duì)象,即基本的底層組件)。

介紹幾個(gè)基礎(chǔ)概念

Layer(圖層):現(xiàn)在很多P圖的軟件都有圖層的概念(如photoshop)??梢园褕D層想象成僅包含各種圖形元素的透明玻璃,一層一層疊加成復(fù)雜的圖形,例如第一層是坐標(biāo)軸,第二層是不同的點(diǎn),第三層是圖例,那么組合在一起就是一張散點(diǎn)圖。不同圖層直接直接用“+”連接就可以。你可以單獨(dú)對(duì)每一個(gè)圖層進(jìn)行修改、增加統(tǒng)計(jì)量、甚至改動(dòng)數(shù)據(jù)。
Coordinate(坐標(biāo)):坐標(biāo)系統(tǒng)控制了圖形的坐標(biāo)軸。坐標(biāo)是整張圖的參照物,影響所有圖形元素。最常用的是直角坐標(biāo)軸、極坐標(biāo)軸等,還可以對(duì)坐標(biāo)軸進(jìn)行變換以使得圖形看起來(lái)更加優(yōu)雅,如對(duì)數(shù)坐標(biāo)。
Scale(標(biāo)度):標(biāo)度是一種函數(shù),它控制了數(shù)學(xué)空間到圖形元素空間的映射。連續(xù)數(shù)據(jù)可以映射到坐標(biāo)軸,也可以映射到圖形的大小;分類數(shù)據(jù)可以映射成為不同的形狀、顏色。
Facet(位面):位面是控制分組繪圖的方法和排列形式。

安裝加載

install.packages("ggplot2")
library(ggplot2)

數(shù)據(jù)準(zhǔn)備

ggplot一般使用數(shù)據(jù)框

phenotype <- read.table('Test.txt', header=T)

ggplot2畫(huà)圖的一般語(yǔ)法

ggplot(data = clin, mapping = aes(x = Tumor_Sample_Barcode, y = OS,colour=factor(ORR))) + geom_bar(stat = 'identity',position='dodge')+xlab('')+ylab('')+
+theme(panel.grid.major.x=element_blank(), axis.text.x=element_text(angle=45, hjust=1), legend.position="top")

1,ggplot:指整張圖,包括background和title
2,“+”:ggplot2使用圖層將各種圖形元素逐步添加組合,從而形成最終結(jié)果。
3,data:第一層必須是原始數(shù)據(jù)層,data參數(shù)控制數(shù)據(jù)來(lái)源,注意數(shù)據(jù)形式只能是數(shù)據(jù)框格式
4,mapping:aes參數(shù)控制了對(duì)哪些變量進(jìn)行圖形映射,以及映射方式,aes是Aesthetic的縮寫(xiě)。它將Tumor_Sample_Barcode映射到X軸,將OS映射到Y(jié)軸,將ORR變?yōu)榉诸悢?shù)據(jù)后映射為不同的顏色。
5,第二層為條形圖(geom_bar),geom表示幾何對(duì)象,它是ggplot中重要的圖層控制對(duì)象。每個(gè)geom對(duì)象都需要有數(shù)據(jù)輸入,數(shù)據(jù)可以從第一層中自動(dòng)讀取,也可以在aes參數(shù)中直接設(shè)置。而且每個(gè)geom還默認(rèn)搭配某種統(tǒng)計(jì)變換(stat),geom_bar默認(rèn)的統(tǒng)計(jì)變換是count(計(jì)數(shù)),這里我們調(diào)整成了identity,及不做任何變換直接展示。position表示位置調(diào)整(Position adjustments)是針對(duì)同一圖層內(nèi)元素的位置進(jìn)行微調(diào)的方法。它包括五種設(shè)置:stack(推疊放置)、dodge(并列放置)、fill(百分比堆疊)、identity(不做任何改變直接顯示出來(lái))、jitter。
6,legend(包括backgroud、text、title),用theme來(lái)調(diào)整
7,其他文字部分的調(diào)整可以增肌整個(gè)圖的可讀性,如xlab('')+ylab('')
關(guān)于ggplot2先介紹這些,后期會(huì)陸續(xù)介紹怎么利用他畫(huà)常見(jiàn)的圖~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 作者:黃寶臣 數(shù)據(jù)科學(xué)/科學(xué)哲學(xué)碩士/本科生物狗知乎原文:https://www.zhihu.com/ques...
    iColors閱讀 1,156評(píng)論 0 2
  • 這是全棧數(shù)據(jù)工程師養(yǎng)成攻略系列教程的第十四期:14 ggplot2 基本語(yǔ)法和基礎(chǔ)圖形。 上一節(jié)我們掌握了R的使用...
    宏倫工作室閱讀 1,391評(píng)論 0 1
  • 聽(tīng)著歌,不然一路會(huì)寂寞 抬頭看看夜空 星辰暗淡,但又深邃 山頭還依稀聽(tīng)見(jiàn)人聲 原來(lái)夜色可愛(ài) 我不是一個(gè)人有著孤獨(dú)的...
    青衣秋水閱讀 920評(píng)論 0 5
  • 廚房遇見(jiàn)老媽,問(wèn)我是不是一晚上沒(méi)睡覺(jué),我說(shuō)睡了 她說(shuō),孩子是長(zhǎng)大了,可眼里的血絲不會(huì)說(shuō)謊
    W四爺閱讀 241評(píng)論 0 2
  • 做電商一帆風(fēng)順的運(yùn)營(yíng)會(huì)有,但更多的還是會(huì)在經(jīng)營(yíng)過(guò)程中碰到這樣或那樣的問(wèn)題,有失敗的時(shí)候就要及時(shí)認(rèn)清事實(shí),及時(shí)調(diào)...
    那木運(yùn)營(yíng)日志閱讀 1,596評(píng)論 3 4

友情鏈接更多精彩內(nèi)容