欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

R語言學(xué)習(xí)ggplot2繪制統(tǒng)計(jì)圖形包全面詳解

 更新時(shí)間:2021年11月05日 16:32:19   作者:Kanny廣小隸  
這篇文章主要為大家詳細(xì)介紹了R語言學(xué)習(xí)ggplot2繪制統(tǒng)計(jì)圖形包的全面知識(shí)講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助

一、序

作為一枚統(tǒng)計(jì)專業(yè)的學(xué)僧,首先需要掌握的編程語言一定是R。雖然自己對(duì)R談不上精通,但卻有著不一樣的熱愛,尤其熱衷于使用R語言繪制各種各樣覺得十分酷炫的圖。每每磕完一個(gè)繪圖作品,仿佛過了一個(gè)愉快的寒暑假,充實(shí)而滿足。而在R語言中,談到繪圖,就不得不聊聊ggplot2這個(gè)大神器。

剛開始接觸學(xué)習(xí)的時(shí)候,其實(shí)是非常抵觸,覺得非常非常難的,但隨著一張張圖片躍然于屏幕之上,心中的抵觸滿滿消失,取而代之的甚至多出了一絲喜愛。而這絲喜愛愈釀?dòng)己?,愈釀?dòng)闾稹_@就促使我寫一寫這篇博文?;仡櫸抑皩W(xué)習(xí)ggplot2所走過的路,使大家能夠避免走上我曾經(jīng)走過的死胡同,從而走上一條康莊大道。也希望大家能夠愛上R這門編程語言,享受使用ggplot2繪圖的樂趣。

本文其實(shí)借鑒了網(wǎng)上很多的教程與參考文獻(xiàn),具體這些學(xué)習(xí)資料的網(wǎng)址,也會(huì)在文末進(jìn)行說明。

二、ggplot2是什么?

一句話概括:它是一個(gè)用來繪制統(tǒng)計(jì)圖形(不只是統(tǒng)計(jì)圖形)的R包!

為什么叫g(shù)gplot呢?其中的gg當(dāng)然不是Good Game的意思,而是Grammar of Graphics,直譯就是繪圖的語法,這是一門學(xué)問,繪圖的學(xué)問。后面會(huì)介紹其與眾不同的語法。

作者是Hadley Wickham,下面我們先瞻仰一下大神,沾點(diǎn)靈氣,為后續(xù)的ggplot學(xué)習(xí)之路打好基礎(chǔ)。

說起這位作者,可就厲害了。他是RStudio公司的首席科學(xué)家,在博士期間其實(shí)就已經(jīng)開發(fā)出了ggplot包,后面覺得寫的不行,于是推陳出新,天空一聲巨響,ggplot2閃亮登場。由于這個(gè)包實(shí)在是太好用了,所以漸漸的,如今Python等多個(gè)編程語言都有了其對(duì)應(yīng)的庫。

當(dāng)然,如果僅僅憑借ggplot2,Wickham還無法成為RStudio公司的首席科學(xué)家,他還是dplyrdevtools,readxl,rvest等包的作者,是一位全能型大神。

與此同時(shí),在工作之外,他擅長烘焙和調(diào)制雞尾酒,并且還有自己的家庭食譜網(wǎng)站。真的非常的膩害!

更新:大神還榮獲2019年的統(tǒng)計(jì)學(xué)諾貝爾獎(jiǎng)——COPSS 獎(jiǎng)!

好了,言歸正傳,我們接著介紹ggplot2。

三、ggplot2能畫出什么樣的圖?

前面一直在夸它的好,得看看它究竟能創(chuàng)作出什么樣的圖?。ㄓ捎诓┛偷南拗?,不能使用svg的高清無碼矢量圖,故只能使用略帶模糊的jpg圖片)

前面兩個(gè)圖都是標(biāo)準(zhǔn)的統(tǒng)計(jì)學(xué)的我們需要畫的圖,只不過是將箱線圖、柱狀圖、直方圖、散點(diǎn)圖、擬合回歸以及相關(guān)系數(shù),全部融合在了一張圖上,信息量非常豐富。集百家之所長,成一家之言!但這還沒什么,ggplot2還能做出令你更加吃驚的統(tǒng)計(jì)圖。就比如下面的回歸樹圖:

還有下面這個(gè)像巖漿一樣的族譜圖:從祖先到你,如何薪火相傳。

以及最后一個(gè)犯罪率的變化情況。

好看的圖片千千萬,有趣的繪圖包只有ggplot2。這里只介紹極小的一部分情況,說明一下它能做些什么。屏幕中的圖,如果不自己生成,就永遠(yuǎn)只是別人家的圖,而不是自己的,所以下面我們就來講講如何像搭積木,組裝機(jī)器一樣,組裝成一個(gè)獨(dú)屬于你的妖嬈且風(fēng)騷的圖片。

四、組裝機(jī)器

ggplot2繪圖三步走:

  • 按照**“設(shè)計(jì)圖紙”**
  • 用一個(gè)個(gè)**“零件”**
  • 自己進(jìn)行**“組裝”**

后面會(huì)一一進(jìn)行介紹,這三步。但其實(shí)只要有一個(gè)概念,用ggplot2就是像PS一樣,一個(gè)圖層一個(gè)圖層的疊加,最后組成我們的目標(biāo)繪圖。

它的優(yōu)勢(shì)非常明顯:

  1. 用戶能在更抽象層面上控制圖形,使創(chuàng)造性繪圖更容易
  2. 采用圖層的設(shè)計(jì)方式,使其更具靈活性
  3. 圖形美觀,同時(shí)避免繁瑣細(xì)節(jié)
  4. 將常見的統(tǒng)計(jì)變換融入到了繪圖中

五、設(shè)計(jì)圖紙

想要了解ggplot2,我們必須先了解下面這些概念:

  1. 數(shù)據(jù)(Data)和映射(Mapping):將數(shù)據(jù)映到圖像
  2. 幾何對(duì)象(Geometric):代表在圖中看到的實(shí)際元素,如點(diǎn)、線、多邊形等
  3. 統(tǒng)計(jì)變換(Statistics):對(duì)數(shù)據(jù)進(jìn)行某種匯總,如直方圖,或?qū)⒍S關(guān)系用線性模型解釋
  4. 標(biāo)度(Scale):將數(shù)據(jù)的取值映射到圖形空間,例如用:顏色、大小、形狀表示不同取值
  5. 坐標(biāo)系(Coordinate):數(shù)據(jù)如何映射到圖形所在平面,提供作圖所需的坐標(biāo)軸和網(wǎng)格線
  6. 分面(Facet):將數(shù)據(jù)分解為子集,進(jìn)行聯(lián)合展示
  7. 圖層(Layer):對(duì)所需的繪圖操作進(jìn)行一層一層疊加,最終得到所需圖形

這些概念能幫助你加深對(duì)其的理解,但是還是不懂?沒關(guān)系!我們剛開始只需要掌握下面的零件構(gòu)造就好了!

六、機(jī)器的零件

在最最最開始,你需要安裝R并且建議安裝R Studio,都是免費(fèi)的,并且都需要安裝,然后可以直接從R Studio打開。

然后我們需要先安裝ggplot2包,在R或者R Studio中使用下述語句,即可完成安裝。

install.packages('ggplot2')

接著,我們就可以學(xué)習(xí)其中的每個(gè)零件的用法了。

1. 零件——散點(diǎn)圖

如果我們想要看兩個(gè)變量之間的關(guān)系,最簡單,最方便的做法就是繪制散點(diǎn)圖,那我們?nèi)绾问褂?code>ggplot2繪制這樣一個(gè)圖形呢?

library(ggplot2)
p <- ggplot(data = mpg, mapping = aes(x = cty, y = hwy))
p + geom_point()

首先需要使用library()對(duì)ggplot2包進(jìn)行加載(記得每次重新打開都需要進(jìn)行加載?。?,當(dāng)然也可以使用require()。然后就可以愉快地進(jìn)行繪圖了。

我們需要找到一個(gè)映射,也就是一對(duì)一的對(duì)應(yīng)關(guān)系,這個(gè)我們?cè)诔绦蛑腥绾谓o定呢?這就需要使用ggplot()這個(gè)函數(shù)。

首先在data =后面需要加上數(shù)據(jù)集的名稱,在例子中是mpg一個(gè)關(guān)于汽車的數(shù)據(jù)集(注意:這個(gè)數(shù)據(jù)集是ggplot2包中特有的,加載了包才會(huì)有這個(gè)數(shù)據(jù)集)。在這個(gè)數(shù)據(jù)集里面有很多變量,其中有ctyhwy等一系列變量。 每個(gè)變量都有一列數(shù)值,也就是樣本的信息,我們需要看ctyhwy兩個(gè)變量對(duì)應(yīng)的信息,就需要指定x軸是誰,y軸對(duì)應(yīng)的是誰。在代碼中,首先需要使用aes()將兩個(gè)坐標(biāo)軸的信息對(duì)應(yīng)起來。aes代表的是aesthetic mappings,具有美感的映射,然后在里面分別使用x =y =來制定需要映射的變量。至此,我們的對(duì)應(yīng)關(guān)系就找出來了。

但是!此時(shí),你運(yùn)行p這個(gè)變量是沒有圖像信息反饋出來的,因?yàn)槟阒皇侵付岁P(guān)系,而沒有說明應(yīng)該以什么形式進(jìn)行展現(xiàn)??赡苁巧Ⅻc(diǎn)、折線、曲線等等。不過由于我們是進(jìn)行散點(diǎn)圖的繪制,所以使用的是后面還要+ geom_point()就可以展現(xiàn)出散點(diǎn)圖了,其中g(shù)eom表示的是geometric object,幾何對(duì)象的意思。

接著,我們?cè)賹?duì)散點(diǎn)圖進(jìn)行一點(diǎn)點(diǎn)潤色。(黑黑的點(diǎn)真的好丑)

1) 變換顏色

p <- ggplot(mpg, aes(x = cty, y = hwy, colour = factor(year)))
p + geom_point()

這里我們指定了其散點(diǎn)的顏色,在aes()中使用了colour =,其后面的year也是mpg數(shù)據(jù)集中的一個(gè)變量。里面只有1999和2008兩年,每個(gè)樣本都有一個(gè)年份。(colour =寫在aes()里面可以自動(dòng)分配顏色,寫在外面就是強(qiáng)制指定點(diǎn)的顏色,如加上‘blue'等)

不過為了將數(shù)字轉(zhuǎn)化成factor因子形式,我們這里使用了factor()將數(shù)值變成了因子(可以自己嘗試不添加factor()看看會(huì)出現(xiàn)什么樣的結(jié)果,其實(shí)會(huì)出現(xiàn)顏色的深淺表示數(shù)值的大?。?。

這里使用了p <- ggplot(mpg, aes(x = cty, y = hwy, colour = factor(year))),我們默認(rèn)將后面這部分賦值給了變量p,后面的p全部都是指代這行語句。

這行代碼還有另外一個(gè)地方發(fā)生了變化,data =消失,只是這個(gè)都可以省略,只要在對(duì)應(yīng)的位置有數(shù)據(jù)集這個(gè)變量就好了(這里是mpg)。同理,其實(shí)x =y = 在這里都可以省略。

在出現(xiàn)了散點(diǎn)之后,還是覺得空蕩蕩的,我們?cè)偌狱c(diǎn)別的零件。

2) 擬合曲線

p + geom_point() + stat_smooth()

相比于原先的操作,只是再加了一行 + stat_smooth(),stat表示的是statistical transformation,統(tǒng)計(jì)學(xué)變換。因?yàn)槲覀冃枰貌逯档姆椒▉砝L制擬合直線,并且附帶置信區(qū)間。

3) 變換大小

p + geom_point(aes(colour = factor(year), size = displ)) + 
  stat_smooth()   # 排量越大,點(diǎn)越大

想要變換點(diǎn)的大小,只需再在aes()中加上size =,后面接上一個(gè)新的變量名稱displ代表著汽車的排量,每個(gè)點(diǎn)的尺寸越大,代表著排量越大,其對(duì)應(yīng)關(guān)系如右邊圖例所示。

在此基礎(chǔ)上我們還想在一張圖上添加更多的信息,同時(shí)也可以解決點(diǎn)與點(diǎn)之間的重疊的問題,不會(huì)因?yàn)檎谏w而使得我們有部分點(diǎn)看不到。那么我們應(yīng)該怎么做呢?

透明度!

4) 修改透明度

p + geom_point(aes(colour = factor(year),
                   size = displ), alpha = 0.5) +
  stat_smooth() + scale_size_continuous(range = c(4, 10))

同樣,我們只需使用alpha =即可其范圍在0 — 1之間,越小表示越透明。注意,在這里,我們是寫在aes()的外面,代表對(duì)所有的點(diǎn)都強(qiáng)制透明度為0.5。

在修改完透明度后,我們發(fā)現(xiàn),圖像已經(jīng)有一點(diǎn)夢(mèng)幻般的感覺了。但仔細(xì)一看,會(huì)發(fā)現(xiàn),這張圖實(shí)在是太擁擠了,1999年與2008年全部擠在了一塊兒,那有沒有什么簡單的方法可以將兩年直接分開呢?

使用分層操作!

5) 分層

p + geom_point(aes(colour = class, size = displ), alpha = 0.5) +
  stat_smooth() + scale_size_continuous(range = c(4, 10)) +
  facet_wrap(~ year, ncol = 1)

這次變化的內(nèi)容其實(shí)有點(diǎn)多,我們來細(xì)細(xì)捋一捋,首先是分層。

其實(shí)分層操作用起來非常的簡單,就一行代碼:facet_wrap(~ year, ncol = 1),facet_wrap()是關(guān)鍵,facet與wrap兩個(gè)詞組合,就是逐面地包起來。里面我們選擇按照year這個(gè)變量來分層,就可以將1999與2008分開。一定要注意!這里在year前面有個(gè)~,回歸中的用法。而最后的ncol = 1代表著我們的小窗口是1列,指定了1列之后,默認(rèn)就是兩行啦。(因?yàn)槟攴菀还仓挥袃煞N)如果不加這句,會(huì)默認(rèn)橫著排列,或者想要指定幾行,則使用nrow = 1。

第二個(gè)修改的地方是colour = class。同樣的,class也是數(shù)據(jù)集中的一個(gè)變量,代表不同種類的汽車,而因?yàn)槠嚨姆N類非常多,所以顏色也就變的很多了。

第三個(gè)修改點(diǎn)是:添加了scale_size_continuous(range = c(4, 10)),也就是指定我們size的變化范圍。在本圖中,就是控制點(diǎn)的絕對(duì)大小的范圍, 不要太大,也不要太小。

至此,散點(diǎn)圖該潤色的地方,已經(jīng)潤色的差不多了,唯獨(dú)還有一個(gè)小小的缺陷:能否加個(gè)標(biāo)題,并且將這些英文簡寫的名稱改得更容易懂一些。畢竟做統(tǒng)計(jì)圖不是為了自娛自樂,而是要給別人看的,要讓大家明白你在做什么,在分析什么。

所以我們還需要進(jìn)行一點(diǎn)點(diǎn)修改。

6) 改中文

p + geom_point(aes(colour = class, size = displ), alpha=0.5) +
  stat_smooth() + scale_size_continuous(range = c(4, 10)) +
  facet_wrap(~ year,ncol = 1) +
  labs(y = '每加侖高速公路行駛距離', x = '每加侖城市公路行駛距離',
       title = '汽車油耗與型號(hào)', size = '排量', colour = '車型') +
  theme(text = element_text(family = "STHeiti"),
        plot.title = element_text(hjust = 0.5))

看到這么長的代碼,首先要做的就是淡定,不要虛!我們慢慢來解釋。

其實(shí)我們只添加了兩個(gè)地方,labs()theme()。

labs()修改的是我們標(biāo)簽的名稱。我們前面在aes()中用了x =,y =,size =以及colour =,這些都是會(huì)有標(biāo)簽名稱的,默認(rèn)都是前面顯示的一些英文。而這里,我們只需要在labs()中,寫上其對(duì)應(yīng)的名稱即可。另外我們還附送一個(gè)title =,就是我們圖像的標(biāo)題。

theme()更偏向于格式的修改。text = element_text(family = "STHeiti")是對(duì)字體進(jìn)行修改,變?yōu)楹隗w。Windows系統(tǒng)的各位,可以不添加這行,一樣會(huì)顯示前面labs()中設(shè)定的中文。而如果是Mac或者Linux系統(tǒng),由于字體的缺失,會(huì)顯示成一個(gè)一個(gè)的框框,在圖像上顯示不了中文字。

第二行plot.title = element_text(hjust = 0.5)是調(diào)整標(biāo)題的位置,不加這行,標(biāo)題會(huì)居左,加上才會(huì)居中。hjust = 0.5其實(shí)就是左右移動(dòng)的意思,0.5表示居中。

2. 零件——直方圖與條形圖

學(xué)完了零件——散點(diǎn)圖,我們?cè)賮韺W(xué)學(xué)其它零件。

我們先著重介紹直方圖與條形圖??赡軙?huì)有有人問,這兩個(gè)不都是方塊兒條嗎,有什么區(qū)別。其實(shí)這兩個(gè)圖有本質(zhì)的區(qū)別:一個(gè)是針對(duì)連續(xù)的變量(直方圖,histogram),將連續(xù)的變量砍成一段一段,再進(jìn)行計(jì)數(shù);一個(gè)是針對(duì)離散的變量(條形圖,bar),直接對(duì)每類的樣本來數(shù)數(shù)。

1) 直方圖

p1 <- ggplot(mpg, aes(x = hwy))
p1 + geom_histogram()

這里不再用前面的變量p,而是變成p1,其映射是不需要y的,只需要指定x =數(shù)據(jù)集中的一個(gè)變量即可。然后+ geom_histogram()會(huì)使用默認(rèn)的參數(shù)進(jìn)行直方圖的繪制。

2) 潤色

p1 + geom_histogram(aes(fill = factor(year), y = ..density..),
                    alpha = 0.3, colour = 'black') +
  stat_density(geom = 'line', position = 'identity', size = 1.5,
               aes(colour = factor(year))) +
  facet_wrap(~ year, ncol = 1)

這里又進(jìn)行了很多操作,下面將其進(jìn)行分解。

首先是facet_wrap(~ year, ncol = 1)按年分層,這里不再詳述。我們來聊聊geom_histogram()中的參數(shù)。

fill = factor(year) 放在aes() 中表示按年進(jìn)行填充顏色。為什么不用前面說到的colour = ?這是ggplot繪圖中一個(gè)非常重要的點(diǎn)?。ㄇ煤诎澹。?duì)于線與點(diǎn)這種面積為0的結(jié)構(gòu),它的顏色就直接使用colour =進(jìn)行指定,而對(duì)條形圖,柱狀圖,扇形圖(特殊的柱狀圖),箱線圖等等有面積的圖形,其面積的顏色,我們需要用fill =來指定。

添加y = ..density.. 是將原本的頻數(shù)直方圖變成頻率密度直方圖,目的是為了在直方圖上添加密度曲線,兩者可以同時(shí)在一張圖上展現(xiàn)。

alpha = 0.3 是指定填充顏色的透明度, colour = 'black'則是強(qiáng)制指定柱狀圖邊框的顏色為黑色。注意這兩個(gè)參數(shù)是放在aes()外面,就是強(qiáng)制設(shè)定的意思。

stat_density()表示添加統(tǒng)計(jì)學(xué)中的密度曲線,進(jìn)行密度估計(jì)。geom = 'line'指定為線形, position = 'identity'表示一個(gè)一一映射, size = 1.5 是強(qiáng)制修改線的尺寸,為原先的1.5倍。最后的aes(colour = factor(year))為修改擬合密度曲線的顏色,這里就是用的colour =而不是fill =

3) 條形圖

p2 <- ggplot(mpg, aes(x=class))
p2 + geom_bar()

直接簡單地計(jì)算不同車種類在數(shù)據(jù)集中的數(shù)量,使用 + geom_bar(),用默認(rèn)參數(shù)即可繪制。我們直接從圖上也可以看出,geom_bar()geom_histogram(),兩者繪制出來的圖形,一個(gè)有間隔,一個(gè)沒有間隔。這就正好對(duì)應(yīng)了我們的離散與連續(xù)的區(qū)別。

我們想進(jìn)一步比較不同年份,兩者的汽車種類的數(shù)量是否有差別,我們可以使用并立條形圖。

a. 并立條形圖
p3 <- ggplot(mpg, aes(class, fill = factor(year)))
p3 + geom_bar(position = 'dodge')

只需添加參數(shù)position = 'dodge',并立條形圖帶回家!當(dāng)然前面要說明用什么變量來并立,這里是年份:fill = factor(year)

同樣,我們可以做不同的條形圖。

b. 堆疊條形圖
p3 <- ggplot(mpg, aes(class, fill = factor(year)))
p3 + geom_bar(position = 'dodge')

c. 分面條形圖
p3 + geom_bar(aes(fill = class)) + facet_wrap(~ year)

只需動(dòng)一動(dòng)手指,就可享受到買一送三的奢華體驗(yàn)!

3. 零件——餅圖

餅圖可以說是條形圖的一種特殊形式,其繪制方法可以從代碼中看出。

p4 <- ggplot(mpg, aes(x = factor(1), fill = factor(class))) +
  geom_bar(width = 1)
p4 + coord_polar(theta = "y")

首先x軸,只有一個(gè)柱子,柱子的寬度我們?cè)O(shè)置為1,geom_bar(width = 1),也就是鋪滿整個(gè)圖,而柱子按照class變量來分類,并且是堆疊的(默認(rèn)是堆疊條形圖)。這時(shí)的圖,也就是p4是一個(gè)“千層餅”。然后我們按照y軸為原點(diǎn),用coord_polar(theta = "y"),把這個(gè)千層餅卷成千層卷,就成了我們的餅圖了。

后面會(huì)專門開個(gè)博客來細(xì)講餅圖的一些細(xì)節(jié)操作。

4. 零件——箱線圖

geom_boxplot()繪制箱線圖。

p5 <- ggplot(mpg, aes(class, hwy, fill = class))
p5 + geom_boxplot()

但是箱線圖怎么看都覺得不夠炫酷,我們可以用小提琴圖來使繪圖變得更加美麗動(dòng)人。

5. 零件——小提琴圖

p5 + geom_violin(alpha = 0.3) + geom_jitter(shape = 21)

使用geom_violin()繪制小提琴圖,同樣改變透明度。小提琴圖相比于箱線圖多了各個(gè)類別分布的信息,是圖像變得更加漂亮。

然后我們用geom_jitter()添加擾動(dòng)點(diǎn),其實(shí)就是將數(shù)據(jù)點(diǎn)等間隔的排列,顯得更加高大上。其中的shape = 21指定的是擾動(dòng)點(diǎn)的形狀,我們用21號(hào),也就是空心點(diǎn)(默認(rèn)是實(shí)心點(diǎn))。

至此,主要的零件都已經(jīng)介紹完成了。但我們可以看到,ggplot繪制出來的圖,背景都是灰格子,我們可不可以將其去掉呢?

當(dāng)然可以!

6. 零件打磨

下面的一系列變化都基于前面繪制的箱線圖。我們通過修改theme()中一系列參數(shù),來對(duì)背景進(jìn)行修改。

# 不要灰底
p5 <- ggplot(mpg, aes(class, hwy, fill = class))
p6 <- p5 + geom_boxplot()
p6 + theme_bw()

# 不要網(wǎng)格線
p6 + theme_bw() + theme(panel.grid = element_blank())

# 不要刻度標(biāo)簽
p6 + theme_bw() + theme(panel.grid = element_blank(),
                        axis.text = element_blank())

# 不要刻度線
p6 + theme_bw() + theme(panel.grid = element_blank(), 
                        axis.text = element_blank(),
                        axis.ticks = element_blank())

# 不要xy軸標(biāo)題
p6 + theme_bw() + theme(panel.grid = element_blank(), 
                        axis.text = element_blank(),
                        axis.ticks = element_blank(),
                        axis.title = element_blank())

# 不要外層邊框
p6 + theme_bw() + theme(panel.grid = element_blank(), 
                        axis.text = element_blank(),
                        axis.ticks = element_blank(),
                        axis.title = element_blank(),
                        panel.border = element_blank())

# 不要圖例
p7 <- p6 + theme_bw() + theme(panel.grid = element_blank(), 
                              axis.text = element_blank(),
                              axis.ticks = element_blank(),
                              axis.title = element_blank(),
                              panel.border = element_blank(),
                              legend.position = "none")
p7

7. 超級(jí)變變變

到這里還有沒有進(jìn)一步的提升空間呢?比如定制自己喜歡的配色?當(dāng)然可以!

這里我們使用scale_fill_manual()函數(shù),來對(duì)箱線圖中填充的顏色進(jìn)行修改。觀察這個(gè)函數(shù),可以發(fā)現(xiàn),由于是箱線圖中填充的顏色,所以函數(shù)中間是fill。如果將中間的fill替換成colour,也就是scale_colour_manual(),就可以對(duì)點(diǎn)與線的顏色進(jìn)行定制了!

關(guān)于具體的配色,在文末會(huì)有推薦的網(wǎng)站,大家只需選中自己喜歡的配色,復(fù)制粘貼即可。

# 黃棕變
color = c('#ffffd4', '#fee391', '#fec44f', '#fe9929',
          '#ec7014', '#cc4c02', '#8c2d04')
p7 + scale_fill_manual(values = color)

變!

# 紅藍(lán)變
color = c('#b2182b', '#ef8a62', '#fddbc7', '#f7f7f7', 
          '#d1e5f0', '#67a9cf', '#2166ac')
p7 + scale_fill_manual(values = color)

變!!

# 清新脫俗變
color = c('#fbb4ae', '#b3cde3', '#ccebc5', '#decbe4',
          '#fed9a6', '#ffffcc', '#e5d8bd')
p7 + scale_fill_manual(values = color)

8. 其他常用零件

最后我們?cè)俳榻B一些其他常用的零件:

函數(shù) 圖形 選項(xiàng)
geom_bar() 條形圖 color, fill, alpha
geom_boxplot() 箱線圖 color, fill, alpha, notch, width
geom_density() 密度圖 color, fill, alpha, linetype
geom_histogram() 直方圖 color, fill, alpha, linetype, binwidth
geom_hline() 水平線 color, alpha, linetype, size
geom_jitter() 抖動(dòng)點(diǎn) color, alpha, size, shape
geom_line() 線圖 color, alpha, linetype, size
geom_point() 散點(diǎn)圖 color, alpha, size, shape
geom_rug() 地毯圖 color, sides
geom_smooth() 擬合曲線 method, formula, color, fill, linetype, size
geom_text() 文字注解 … …
geom_violin() 小提琴圖 color, fill, alpha, linetype
geom_vline() 垂線 color, alpha, linetype, size
… … … … … …

七、實(shí)踐出真知

別人家的男票再帥,也是別人家的。

同理可證,代碼一定要自己一行一行的敲,并且每次可以自己多試幾種類似的情況,看看圖形會(huì)怎么變。帶著問題去學(xué)習(xí),去探索,一定會(huì)很快入門ggplot2這個(gè)大殺器!

八、學(xué)習(xí)資源

ggplot2官方參考文檔

ggplot2速查(Cheat Sheet)

ggmap(可以畫出美得令人窒息的地圖)

ggplot2很多很多衍生包

一個(gè)專治“疑難雜癥”的地方(Stack Overflow)

調(diào)色板(用于配色,很全面,但偶爾需要翻墻)

另一個(gè)配色網(wǎng)站

函數(shù)與使用方法速查

九、參考資料

ggplot2官方參考文檔

30分鐘學(xué)會(huì)ggplot2

ggplot2 Elegant Graphics for Data Analysis (use R)

ggplot2高級(jí)繪圖。

最后本文的PPT(利用 R 包 xaringan 制作而成)于GitHub上可獲得:
https://github.com/kannyjyk/ggplot2-xaringan

以上就是R語言學(xué)習(xí)ggplot2繪制統(tǒng)計(jì)圖形包全面詳解的詳細(xì)內(nèi)容,更多關(guān)于R語言ggplot2繪制統(tǒng)計(jì)圖形包的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • R語言ComplexHeatmap繪制復(fù)雜熱圖heatmap

    R語言ComplexHeatmap繪制復(fù)雜熱圖heatmap

    ComplexHeatmap可以繪制很復(fù)雜的熱圖,能滿足日常以及文章所需,本文介紹一下文章常見的復(fù)雜熱圖的繪制方式,含代碼,文章比較長,建議耐心看一下,也許就有你需要的熱圖
    2022-06-06
  • R語言邏輯回歸深入講解

    R語言邏輯回歸深入講解

    這篇文章主要介紹了R語言邏輯回歸深入講解,文中對(duì)于邏輯回歸講解的很細(xì)致,有感興趣的同學(xué)可以研究下
    2021-03-03
  • 詳解R語言數(shù)據(jù)合并一行代碼搞定

    詳解R語言數(shù)據(jù)合并一行代碼搞定

    這篇文章主要介紹了詳解R語言數(shù)據(jù)合并一行代碼搞定,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • R語言兩組變量特征相關(guān)關(guān)系熱圖繪制畫法

    R語言兩組變量特征相關(guān)關(guān)系熱圖繪制畫法

    本文為大家介紹了如何畫兩組變量(特征)的相關(guān)關(guān)系熱圖的方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2022-02-02
  • R語言隨機(jī)抽樣詳解

    R語言隨機(jī)抽樣詳解

    這篇文章主要介紹了R語言隨機(jī)抽樣,從總體中抽取樣本的方法很多,最常用的方法是簡單隨機(jī)抽樣,本文給大家詳細(xì)講解結(jié)合示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-11-11
  • R語言列篩選的方法select實(shí)例詳解

    R語言列篩選的方法select實(shí)例詳解

    對(duì)于大數(shù)據(jù),linux和python是很好的處理工具,但是對(duì)于這兩個(gè)語言不熟悉的盆友來說,R語言是非常好的替代工具,下面這篇文章主要給大家介紹了關(guān)于R語言列篩選的法select的相關(guān)資料,需要的朋友可以參考下
    2022-07-07
  • R語言中平均值、中位數(shù)和模式知識(shí)點(diǎn)總結(jié)

    R語言中平均值、中位數(shù)和模式知識(shí)點(diǎn)總結(jié)

    在本篇文章里小編給大家整理的是一篇關(guān)于R語言中平均值、中位數(shù)和模式知識(shí)點(diǎn)總結(jié)內(nèi)容,有興趣的朋友們跟著學(xué)習(xí)下。
    2021-05-05
  • 解決R語言 數(shù)據(jù)不平衡的問題

    解決R語言 數(shù)據(jù)不平衡的問題

    這篇文章主要介紹了解決R語言 數(shù)據(jù)不平衡的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • pycharm實(shí)現(xiàn)R語言運(yùn)行環(huán)境安裝配置的實(shí)現(xiàn)步驟

    pycharm實(shí)現(xiàn)R語言運(yùn)行環(huán)境安裝配置的實(shí)現(xiàn)步驟

    大多數(shù)人仍然使用RStudio進(jìn)行R語言開發(fā)。與RStudio相比,PyCharm具有更多的優(yōu)勢(shì),本文主要介紹了pycharm運(yùn)行R語言腳本的實(shí)現(xiàn)步驟,文中通過圖文介紹的非常詳細(xì),感興趣的可以了解一下
    2023-10-10
  • R語言wilcoxon秩和檢驗(yàn)及wilcoxon符號(hào)秩檢驗(yàn)的操作

    R語言wilcoxon秩和檢驗(yàn)及wilcoxon符號(hào)秩檢驗(yàn)的操作

    這篇文章主要介紹了R語言wilcoxon秩和檢驗(yàn)及wilcoxon符號(hào)秩檢驗(yàn)的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04

最新評(píng)論