2
我有一個非常簡單的問題,我似乎無法弄清楚。我想在一張圖中繪製兩個方程。我試過add = TRUE
,但這似乎不起作用。當「add = TRUE」時,curve()不會將曲線添加到我的圖中
curve(0.044*x+1.638)
curve(0.3438*x+0.5155, add=TRUE)
我有一個非常簡單的問題,我似乎無法弄清楚。我想在一張圖中繪製兩個方程。我試過add = TRUE
,但這似乎不起作用。當「add = TRUE」時,curve()不會將曲線添加到我的圖中
curve(0.044*x+1.638)
curve(0.3438*x+0.5155, add=TRUE)
嗯,實際上,curve
確實有效,但看不到它。爲了解釋這一點,我們添加一些代碼行:
f1 <- function(x) 0.044*x+1.638
f2 <- function(x) 0.3438*x+0.5155
x0 <- seq(0, 1, by = 0.1)
我已經f1
和f2
定義你的榜樣作用。我還採取[0,1]
之間的11個採樣點進行評估和繪圖。爲什麼這個範圍?因爲沒有通過參數from
,to
(參見?curve
),curve
的規定將在該範圍上繪圖。
現在,讓我們來看看這個:
>f1(x0)
[1] 1.6380 1.6424 1.6468 1.6512 1.6556 1.6600 1.6644 1.6688 1.6732 1.6776
[11] 1.6820
> f2(x0)
[1] 0.51550 0.54988 0.58426 0.61864 0.65302 0.68740 0.72178 0.75616 0.79054
[10] 0.82492 0.85930
的f1
的函數值比f2
高出許多。當您第一次撥打curve
來繪製f1
時,它將修復ylim
以粗略顯示f1(x)
的範圍。因此,當您添加f2(x)
時,將不會在此ylim
中看到。
試試這個,首先選擇一個共享ylim
:
ylim <- range(c(f1(x0), f2(x0)))
curve(f1, ylim = ylim)
curve(f2, add=TRUE, col = "red")
這種問題是一個常見的問題。當您決定在單個圖表上繪製多個對象時,您需要設置足夠大的適當的xlim
和ylim
以容納所有對象。不要指望R「調整」這些;它不能做到這一點。繪製範圍是在第一個繪製時確定的。
優秀的解釋,特別是最後一段。 +1 – bgoldst