數(shù)據(jù)準(zhǔn)備
本示例數(shù)據(jù)是自編數(shù)據(jù)物舒,僅為練習(xí)所用色洞,數(shù)據(jù)結(jié)構(gòu)假設(shè)為戏锹,兩個(gè)年份year(2020冠胯,2021),兩個(gè)氮水平nitrogen(N1锦针,N2)荠察,兩個(gè)玉米品種variety(a,b)測(cè)定了5個(gè)試驗(yàn)指標(biāo)(變量v1奈搜,v2悉盆,v3,v4馋吗,v5)焕盟,每個(gè)處理3次重復(fù)block(1,2宏粤,3)脚翘。
library(tidyverse) # 調(diào)用tidyverse。
df <- read_csv(file = "df.csv") # 導(dǎo)入數(shù)據(jù)绍哎。文檔在工作目錄下来农,所以直接給文件名導(dǎo)入。
df # 查看數(shù)據(jù)崇堰。
## # A tibble: 24 × 9
## year nitrogen variety block v1 v2 v3 v4 v5
## <dbl> <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 2020 N1 a 1 1.26 2.14 0.4 5 3.25
## 2 2020 N1 a 2 1.2 2.9 0.1 5.3 1.27
## 3 2020 N1 a 3 1.3 3 0.3 5.6 2.24
## 4 2020 N1 b 1 1.08 1.72 1.8 2.8 1
## 5 2020 N1 b 2 1.05 1.65 1.7 2.5 3.12
## 6 2020 N1 b 3 1.15 1.35 1.5 3.1 4.57
## 7 2020 N2 a 1 1.32 3.78 1.6 6 5.85
## 8 2020 N2 a 2 1.28 4.32 1.4 6.1 6.48
## 9 2020 N2 a 3 1.35 3.95 1.3 6.2 7.21
## 10 2020 N2 b 1 1.33 3.47 2.8 4.1 6.56
## # … with 14 more rows
7 ggplot2繪圖
7.1 認(rèn)識(shí)ggplot2
ggplot2是由Hadley Wickham開(kāi)發(fā)的最流行的R可視化包沃于。
ggplot2中的gg 表示圖形語(yǔ)法(Grammar of Graphics)涩咖,這是一個(gè)通過(guò)使用“語(yǔ)法”來(lái)繪圖的圖形概念。
7.1.1 構(gòu)圖基本要素
ggplot2語(yǔ)法的10大部件:
- 數(shù)據(jù)(data)
- 映射(mapping)
- 幾何對(duì)象(geom)
- 標(biāo)度(scale)
- 統(tǒng)計(jì)變換(stats)
- 坐標(biāo)系(coord)
- 位置調(diào)整(Position adjustments)
- 分面(facet)
- 主題(theme)
- 輸出(output)
ggplot2作圖必須的3個(gè)要件是數(shù)據(jù)繁莹、映射檩互、幾何對(duì)象。
來(lái)認(rèn)識(shí)一下三要素蒋困。
數(shù)據(jù)(Data)
用于繪圖的數(shù)據(jù)盾似,需要是整潔的數(shù)據(jù)框。如本文中的df數(shù)據(jù)集雪标。
映射(mapping)
將數(shù)據(jù)集中的變量數(shù)據(jù)映射 (關(guān)聯(lián))到相應(yīng)的圖形屬性零院,也稱(chēng)為"美學(xué)映射"或"美學(xué)"。
指明了變量與圖形所見(jiàn)元素之間的聯(lián)系村刨,告訴 ggplot圖形元素想要關(guān)聯(lián)哪個(gè)變量數(shù)據(jù)告抄。映射函數(shù)為aes()。
常用映射:
- x:x軸
- y:y軸
- color:顏色
- size:大小
- shape:形狀
- fill:填充
- alpha:透明度
幾何對(duì)象(Geometric)
每個(gè)圖形都是采用不同的視覺(jué)對(duì)象來(lái)表達(dá)數(shù)據(jù)嵌牺,稱(chēng)為幾何對(duì)象打洼。ggplot2提供了50余種幾何對(duì)象,幾何對(duì)象對(duì)應(yīng)的函數(shù)命名方式為geom_xxx()逆粹。常見(jiàn)幾何對(duì)象如下募疮。
- geom_point():散點(diǎn)圖
- geom_line():折線(xiàn)圖
- geom_smooth():光滑 (擬合)曲線(xiàn)
- geom_bar()/geom_col():條形圖
- geom_histogram():直方圖
- geom_density():概率密度圖
- geom_boxplot():箱線(xiàn)圖
- geom_abline():參考直線(xiàn)
三個(gè)主要部件即可形成圖形,其他部件的設(shè)置可完成對(duì)圖的修飾僻弹。
Plot = data + Aesthetics + Geometry
7.1.2 圖層(layer)
ggplot2基于圖層化語(yǔ)法:圖形是一層一層的圖層疊加而成阿浓。實(shí)現(xiàn)方式為“+”疊加圖層。
繪制一幅散點(diǎn)圖來(lái)理解圖形三要素和圖層疊加蹋绽。
ggplot(df) # 只是創(chuàng)建了一個(gè)空的畫(huà)布芭毙。
ggplot(df, aes(x = v1, y = v5)) # aes添加了映射,將v1映射為x軸卸耘,將y映射為y軸退敦,但構(gòu)建的是一個(gè)空坐標(biāo)系。
ggplot(data = df, mapping = aes(x = v1, y = v5)) + geom_point() # 添加幾何對(duì)象為散點(diǎn)蚣抗。
這里侈百,數(shù)據(jù)為df,映射中v1映射給x軸翰铡,v5映射給y軸钝域,幾何對(duì)象為散點(diǎn)圖。圖形映射和幾何對(duì)象通過(guò)“+”疊加两蟀。
參考資料
- R語(yǔ)言編程—基于 tidyverse网梢,張敬信,人民郵電出版社(待出版)赂毯,2022.
- R語(yǔ)言教程战虏,李東風(fēng)拣宰,https://www.math.pku.edu.cn/teachers/lidf/docs/Rbook/html/_Rbook/index.html
- 《R數(shù)據(jù)科學(xué)》,人民郵電出版社烦感,2018.
- ggplot2高效實(shí)用指南巡社,http://www.reibang.com/p/2dc81b91131e