2013-02-12 22 views
0

我繪製一些日誌伸縮數據與疊加式的線性擬合線,像這樣操作的:訂單stat_smooth和尺度變換

d <- data.frame(x=1:10, y=10^(1:10 + rnorm(10))) 
ggplot(d, aes(x=x, y=y)) + geom_point() + 
    geom_smooth(method="lm", se=FALSE) + 
    scale_y_log10() 

enter image description here

看起來像線性迴歸直線正在被轉換的數據上計算,否則直接通過最後一點。真的嗎?

我似乎記得,這是在ggplot2文本解決,但我現在找不到它。

+0

我想這將取決於誤差項的添加量?我不明白爲什麼它必須去爭論最後一點......(在附註中,你應該使用'set.seed(。)',這樣當我們試圖繪製時輸出圖是相同的它)。 – Arun 2013-02-12 22:01:51

+0

您的句子的第一部分(根據轉換後的數據計算)是正確的,但我沒有找到第二部分的關係或含義(直接指出最後一點)。 – Arun 2013-02-12 22:22:35

+3

如果我記得正確的話,faceting先來,然後轉換,然後ggplot纔開始訓練尺度和渲染geoms。 – joran 2013-02-12 22:32:22

回答

5

ggplot時呈現一個曲線圖,它這樣做以下列順序:

  1. 地圖變量美學(即,對於每個層,找出哪些變量與美學等相關聯)
  2. 刻面數據集(使面板)
  3. 變換的尺度(通過任何scale_功能,典型地)
  4. 計算美學(即,計算lm配合,在這種情況下 - 這是stat_個功能進來,這通常是通過geom_函數調用)
  5. 列車尺度(找出整體劇情的尺寸應該是什麼)
  6. 比例尺(找出其中的每個層應適應整體劇情)
  7. 渲染幾何。

因此,縮放發生在模型擬合之前,因此是,正在計算轉換後的數據。