寫在最前面:當(dāng)做我什么也不懂,重新開始。
ggplot2是由Hadley Wickham創(chuàng)建的一個(gè)十分強(qiáng)大的可視化R包。按照ggplot2的繪圖理念,Plot(圖)= data(數(shù)據(jù)集)+ Aesthetics(美學(xué)映射)+ Geometry(幾何對象)
在ggplot2中有兩個(gè)主要繪圖函數(shù):qplot()以及ggplot()。
qplot(): 即快速繪圖;
ggplot():可以繪制十分復(fù)雜的圖形。
但是要想隨心所欲的繪圖,還是學(xué)習(xí)基礎(chǔ)繪圖方法,今后再說
#ggplot2的安裝
三種任選其一,但是主推第一種后續(xù)簡便。
library(tidyverse)
1.mpg數(shù)據(jù)框
數(shù)據(jù)框是變量(列)和觀測(行)的矩陣集合,mpg包含了美國國家環(huán)境保護(hù)協(xié)會收集的38種車型的數(shù)據(jù)
>ggplot::mpg
我們可以看到包括如下變量:
model
model name
displ
engine displacement, in litres
year
year of manufacture
cyl
number of cylinders
trans
type of transmission
drv
f = front-wheel drive, r = rear wheel drive, 4 = 4wd
cty
city miles per gallon
hwy
highway miles per gallon
fl
fuel type
class
"type" of car
好了,下面我們就可以探討各個(gè)變量之間的關(guān)系了。
我們可以首先探討引擎大小和耗油量之間的關(guān)系:
>ggplot(data = mpg) +?
? ? ?geom_point(mapping = aes(x = displ,y = hwy))
其實(shí)根據(jù)趨勢我們發(fā)現(xiàn):燃油量和引擎大小成負(fù)相關(guān)的趨勢。
解析代碼:
ggplot:開始繪圖,創(chuàng)建了坐標(biāo)系
data = mpg:標(biāo)明了使用的數(shù)據(jù)集
mapping:ggplot2每個(gè)幾何對象都有一個(gè)mapping參數(shù),這個(gè)參數(shù)將數(shù)據(jù)集的變量映射為圖形屬性
aes(x,y):x,y的參數(shù)分別指定了映射到x軸,y軸的變量
由此我們可以得到一個(gè)繪圖模板:
ggplot(data = ) +?
? (mapping =aes())
#加顏色
>ggplot(data = mpg) +?
? ? geom_point(mapping = aes(x = displ,y = hwy),color = "blue")
顏色是字符串類型
#分面
>ggplot(data = mpg) +?
? ? geom_point(mapping = aes(x = displ,y = hwy)) +
? ? facet_wrap(~class,nrow = 2)
>ggplot(data = mpg) +?
? geom_point(mapping = aes(x = displ,y = hwy)) +
? facet_grid(drv ~ cyl)
facet_wrap:單個(gè)變量分面,變量前加上~
facet_grid:兩個(gè)變量分面,變量間用~隔開
#幾何對象
幾何對象是圖中用來表示數(shù)據(jù)的幾何圖形對象
條形圖:條形幾何對象
折線圖:直線幾何對象
箱線圖:矩形和直線幾何對象
散點(diǎn)圖:點(diǎn)幾何對象
使用平滑曲線擬合數(shù)據(jù):
>ggplot(data = mpg) +
? ? geom_smooth(mapping = aes(x = hwy,y=cyl))
ggplot2中每個(gè)幾何參數(shù)都有一個(gè)mapping的參數(shù),但是不是每種圖形屬性適合每種幾何對象??梢栽O(shè)置點(diǎn)的形狀,但不能設(shè)置線的形狀,而可以設(shè)置線的類型。
>ggplot(data = mpg) +
? ? geom_smooth(mapping = aes(x = hwy,y=cyl,linetype = drv,color = drv))
依據(jù)drv變量設(shè)置線的類型,同時(shí)附上顏色
看來四輪驅(qū)動車子中,引擎大小和耗油量的相關(guān)性非常顯著!