離散(或不連續)函數我有以下功能,即我想使用ggplot繪製:繪製在GGPLOT2
F(X)= 3/4爲0和1之間X; 2至3之間的x爲1/4;和其他地方0。
我想出了下列R-代碼:
eq<-function(x) {
if(x>=0 && x<=1) {
y<-3/4
} else if(x>=2 && x<=3) {
y<-1/4
} else {
y<-0
}
return(y)
}
library(ggplot2)
ggplot(data.frame(x=c(-5,5)), aes(x)) + stat_function(fun=eq)
然而,這導致了情節只集中在0水平線我做了什麼錯?
我想這個問題會是這樣的。爲什麼你的代碼適用於矢量,而我的代碼卻不適用? 在繪圖時,我注意到垂直邊緣不像離散函數所期望的那樣完美垂直。我能做些什麼? – 2012-02-17 14:53:08
'if'與單個布爾值一起工作,而'ifelse'與布爾值向量一起工作。同樣,'&&'產生一個布爾值,而'&'產生一個布爾值向量。我編輯了我的答案,將該函數繪製爲一個步驟(或「階梯」)函數。 – 2012-02-17 15:04:14
謝謝!這個工作正常。 – 2012-02-17 15:36:22