可視化學習筆記(三):ggplot2:散點圖


1、簡單散點圖

使用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ù)可以對形狀進行重新修改
  • 使用scale_size_area()函數(shù)可以修改點大小(面積)
  • 需要注意的是,含有映射shapesize時最好不要用來比較點

3、圖形重疊情況

3.1設定透明度

使用alpha=#參數(shù)來設定透明度,降低圖形重疊情況

3.2將數(shù)據(jù)分箱(bin),并用矩形/六邊形表示

  • stat_bin2d()表示矩形分箱
  • stat_binhex()表示六邊形分箱

使用以上兩個函數(shù)時,需要對顏色進行調(diào)整,因此用到scale_fill_gradient()函數(shù)

scale_fill_gradient(low='', high='', breaks=, limits=)
  • lowhigh是用于指定最小和最大色階
  • breaks是用于將填充顏色進行分割(cut)
  • limits是限定色階的范圍

3.3添加隨機擾動點

當散點圖中其中一個數(shù)據(jù)軸或兩個數(shù)據(jù)軸都對應于離散型變量時,也會出現(xiàn)圖形重疊的情況,因此可以給數(shù)據(jù)添加隨機擾動點

geom_jitter()

4、添加回歸擬合線

4.1擬合直線

使用geom_smooth()函數(shù)可以添加回歸擬合直線

  • se參數(shù)控制置信區(qū)間,當se=F時,表示不繪制置信區(qū)間;默認繪制
  • level參數(shù)控制置信水平
  • linetypecoloursize三個參數(shù)用于直線進行樣式調(diào)整
  • geom_smooth()函數(shù)默認使用loess方法(局部加權多項式回歸)
  • 如果提前映射了colourshape參數(shù),回歸會出現(xiàn)分組回歸的情況

4.2logit回歸曲線

使用stat_smooth()可以設定回歸參數(shù)

  • method用于指定回歸方法
  • method.args=list()用于傳遞回歸方法的其他參數(shù)給stat_smooth()
  • 如果想基于數(shù)據(jù)進行擬合外推,需要添加fullrang=T參數(shù)

4.3對模型添加擬合直線

可以在建立模型后使用predict()函數(shù)預測,然后通過geom_line函數(shù)來添加模型的擬合線:

#建立模型
model <- lm(heightIn~ ageYear + I(ageYear^2), data=heightweight)
model
summary(model)

#設定預測數(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ù)來對圖形進行注釋添加

annotate(geom, x=, y=, label="", parse=F)
  • geom是指定添加注釋類型,如geom="text"表示添加文本注釋
  • xy是用來指定注釋的坐標
  • label用來添加注釋內(nèi)容
  • parse默認不調(diào)用數(shù)學表達式語法,當parse=T時會以數(shù)學表達式的形式表現(xiàn)注釋

6、添加標簽

  • 可以使用annotate()函數(shù)來手動添加個別點的標簽
  • 如果需要自動添加標簽,則使用geom_text()函數(shù)
geom_text(aes(label=), size=#, vjust=#, hjust=#)
  • 直接將變量映射到label,然后通過size來調(diào)整標簽大小避免重合
  • 使用vjusthjust參數(shù)用于對標簽位置進行調(diào)整;但如果需要自動做出調(diào)整,則在aes映射中對y-axis或x-axis加減一個單位

7、繪制氣泡圖

使用geom_point()函數(shù)和scale_size_area()函數(shù)組合即可繪制出氣泡圖;但實際上氣泡圖還是散點圖

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的默認值)
p
# 將GDP映射給面積,得到略大的圓圈
p + scale_size_area(max_size=15)
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容

  • 簡介 文章較長,點擊直達我的博客,瀏覽效果更好。本文內(nèi)容基本是來源于STHDA,這是一份十分詳細的ggplot2使...
    taoyan閱讀 51,432評論 7 159
  • 1、簡單折線圖 折線圖的x既可以對應離散性變量,也可以對應連續(xù)型變量 當x對應因子變量時,必須使用group=1映...
    100gle閱讀 9,512評論 0 3
  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,991評論 19 139
  • 1、費雪及其名著《利息理論》 美國經(jīng)濟學家歐文·費雪(Irving Fisher,1867—1947),在1930...
    隨思錄閱讀 423評論 0 0
  • 杵築,一個很陌生的名字,這是一座九州大分縣的小城,從別府前往這里,火車僅需20分鐘,九州著名的音速“SONIC”列...
    jcmegodb閱讀 1,320評論 0 2