1、簡單散點(diǎn)圖
使用geom_point()函數(shù)即可繪制,并且在映射中可以使用以下映射參數(shù):
-
shape:指定形狀 -
colour:填充(需要注意的是,fill對point可能不起作用) -
size:修改大小
2、樣式修改
2.1 顏色修改
顏色的手動修改使用以下函數(shù):
scale_colour_manual()
scale_colour_brewer()
2.2 形狀修改
- 使用
scale_shape_manual()函數(shù)可以對形狀進(jìn)行重新修改 - 使用
scale_size_area()函數(shù)可以修改點(diǎn)大?。娣e) - 需要注意的是,含有映射
shape和size時最好不要用來比較點(diǎn)
3、圖形重疊情況
3.1設(shè)定透明度
使用alpha=#參數(shù)來設(shè)定透明度,降低圖形重疊情況
3.2將數(shù)據(jù)分箱(bin),并用矩形/六邊形表示
-
stat_bin2d()表示矩形分箱 -
stat_binhex()表示六邊形分箱
使用以上兩個函數(shù)時,需要對顏色進(jìn)行調(diào)整,因此用到scale_fill_gradient()函數(shù)
scale_fill_gradient(low='', high='', breaks=, limits=)
-
low和high是用于指定最小和最大色階 -
breaks是用于將填充顏色進(jìn)行分割(cut) -
limits是限定色階的范圍
3.3添加隨機(jī)擾動點(diǎn)
當(dāng)散點(diǎn)圖中其中一個數(shù)據(jù)軸或兩個數(shù)據(jù)軸都對應(yīng)于離散型變量時,也會出現(xiàn)圖形重疊的情況,因此可以給數(shù)據(jù)添加隨機(jī)擾動點(diǎn)
geom_jitter()
4、添加回歸擬合線
4.1擬合直線
使用geom_smooth()函數(shù)可以添加回歸擬合直線
-
se參數(shù)控制置信區(qū)間,當(dāng)se=F時,表示不繪制置信區(qū)間;默認(rèn)繪制 -
level參數(shù)控制置信水平 -
linetype、colour、size三個參數(shù)用于直線進(jìn)行樣式調(diào)整 geom_smooth()函數(shù)默認(rèn)使用loess方法(局部加權(quán)多項(xiàng)式回歸)- 如果提前映射了
colour和shape參數(shù),回歸會出現(xiàn)分組回歸的情況
4.2logit回歸曲線
使用stat_smooth()可以設(shè)定回歸參數(shù)
-
method用于指定回歸方法 -
method.args=list()用于傳遞回歸方法的其他參數(shù)給stat_smooth() - 如果想基于數(shù)據(jù)進(jìn)行擬合外推,需要添加
fullrang=T參數(shù)
4.3對模型添加擬合直線
可以在建立模型后使用predict()函數(shù)預(yù)測,然后通過geom_line函數(shù)來添加模型的擬合線:
#建立模型
model <- lm(heightIn~ ageYear + I(ageYear^2), data=heightweight)
model
summary(model)
#設(shè)定預(yù)測數(shù)據(jù)
xmin <- min(heightweight$ageYear)
xmax <- max(heightweight$ageYear)
predicted <- data.frame(ageYear=seq(xmin, xmax, length.out = 100))
predicted$heightIn <- predict(model, predicted);predicted
#繪圖
sp <- ggplot(heightweight, aes(x=ageYear, y=heightIn)) +
geom_point(colour="grey40")
sp + geom_line(data=predicted, size=1)
5、添加文本注釋
使用annotate()函數(shù)來對圖形進(jìn)行注釋添加
annotate(geom, x=, y=, label="", parse=F)
-
geom是指定添加注釋類型,如geom="text"表示添加文本注釋 -
x和y是用來指定注釋的坐標(biāo) -
label用來添加注釋內(nèi)容 -
parse默認(rèn)不調(diào)用數(shù)學(xué)表達(dá)式語法,當(dāng)parse=T時會以數(shù)學(xué)表達(dá)式的形式表現(xiàn)注釋
6、添加標(biāo)簽
- 可以使用
annotate()函數(shù)來手動添加個別點(diǎn)的標(biāo)簽 - 如果需要自動添加標(biāo)簽,則使用
geom_text()函數(shù)
geom_text(aes(label=), size=#, vjust=#, hjust=#)
- 直接將變量映射到
label,然后通過size來調(diào)整標(biāo)簽大小避免重合 - 使用
vjust和hjust參數(shù)用于對標(biāo)簽位置進(jìn)行調(diào)整;但如果需要自動做出調(diào)整,則在aes映射中對y-axis或x-axis加減一個單位
7、繪制氣泡圖
使用geom_point()函數(shù)和scale_size_area()函數(shù)組合即可繪制出氣泡圖;但實(shí)際上氣泡圖還是散點(diǎn)圖
library(gcookbook) #加載數(shù)據(jù)
cdat <- subset(countries, Year==2009 &
Name %in% c("Canada", "Ireland", "United Kingdom", "United States", "New Zealand", "Iceland", "Japan", "Luxembourg", "Netherlands", "Switzerland"))
p <- ggplot(cdat, aes(x=healthexp, y=infmortality, size=GDP)) +
geom_point(shape=21, colour="black", fill="cornsilk")
# 將GDP映射給半徑(scale_size_continuous的默認(rèn)值)
p
# 將GDP映射給面積,得到略大的圓圈
p + scale_size_area(max_size=15)