分類: R

R ggplot2 教學:圖層式繪圖

幾何圖形與統計轉換

結合 ggplot 的幾何圖形與統計轉換可以讓使用者產生各種新穎的圖形,以下幾張圖是以 count 這個統計轉換後,配合不同的幾何圖形所得到的結果。

my.plot <- ggplot(diamonds, aes(carat)) + xlim(0, 3)
my.plot + stat_bin(aes(ymax = ..count..), binwidth = 0.1, geom = "area")

my.plot + stat_bin(
  aes(size = ..density..), binwidth = 0.1,
  geom = "point", position="identity"
)

轉換完的資料

如果您有一些已經經過統計轉換的資料,只是想要單純將資料畫出來,可以使用 stat_identity 這個統計轉換,它會依據原始資料的類型直接選擇適合幾何圖形來呈現。

不同的資料來源

ggplot 有一個比較特別的功能就是可以讓不同的圖層有不同的資料來源,可以將相關的幾個資料集畫在一起,例如在使用模型預測資料時,繪製預測值。

library(nlme)
model <- lme(height ~ age, data = Oxboys, random = ~ 1 + age | Subject)
age_grid <- seq(-1, 1, length = 10)
subjects <- unique(Oxboys$Subject)
preds <- expand.grid(age = age_grid, Subject = subjects)
preds$height <- predict(model, preds)

畫出模型的預測值:

my.plot <- ggplot(Oxboys, aes(age, height, group = Subject)) + geom_line()
my.plot + geom_line(data = preds, colour = "#3366FF", size= 0.4)

預測值

畫出模型的殘差值,並加入平滑曲線:

Oxboys$fitted <- predict(model)
Oxboys$resid <- with(Oxboys, fitted - height)
my.plot %+% Oxboys + aes(y = resid) + geom_smooth(aes(group=1))

殘差值

Page: 1 2 3 4

G. T. Wang

個人使用 Linux 經驗長達十餘年,樂於分享各種自由軟體技術與實作文章。

Share
Published by
G. T. Wang

Recent Posts

[開箱] 德國美善品 Thermomix TM6 多功能料理機

本篇是德國美善品 Thermo...

3 年 ago

[開箱] Nokia 215 4G 經典功能型手機

本篇是 Nokia 215 4...

3 年 ago

[開箱] Holy Stone HS210 迷你遙控飛機

本篇是 Holy Stone ...

3 年 ago

[DIY] 用竹子製作吹火筒教學

本篇記錄我用乾燥的竹子製作吹火...

3 年 ago

高鐵會員 TGO 點數兌換商品教學

這裡示範如何線上使用高鐵會員 ...

3 年 ago

Google AdSense 廣告放送量受限問題記錄

這篇是本站的 Google A...

3 年 ago