我試圖在一個繪圖上繪製4 ecdf函數,但似乎無法找出正確的語法。如何繪製多個ECDF在R中的不同顏色的一個繪圖
如果我有4個函數「A,B,C,D」,R中正確的語法是什麼將它們繪製在具有不同顏色的同一個圖表上。謝謝!
我試圖在一個繪圖上繪製4 ecdf函數,但似乎無法找出正確的語法。如何繪製多個ECDF在R中的不同顏色的一個繪圖
如果我有4個函數「A,B,C,D」,R中正確的語法是什麼將它們繪製在具有不同顏色的同一個圖表上。謝謝!
封裝latticeExtra
提供功能ecdfplot
。
library(lattice)
library(latticeExtra)
set.seed(42)
vals <- data.frame(r1=rnorm(100)*0.5,
r2=rnorm(100),
r3=rnorm(100)*2)
ecdfplot(~ r1 + r2 + r3, data=vals, auto.key=list(space='right')
這裏有一種方法(對於他們三個人,工作4以同樣的方式):
set.seed(42)
ecdf1 <- ecdf(rnorm(100)*0.5)
ecdf2 <- ecdf(rnorm(100)*1.0)
ecdf3 <- ecdf(rnorm(100)*2.0)
plot(ecdf3, verticals=TRUE, do.points=FALSE)
plot(ecdf2, verticals=TRUE, do.points=FALSE, add=TRUE, col='brown')
plot(ecdf1, verticals=TRUE, do.points=FALSE, add=TRUE, col='orange')
注意,我用的是第三個擁有範圍最廣的事實,並用它來初始化帆布。否則你需要ylim=c(...)
。
下面是使用ggplot2
性的方法(使用ECDF對象從[德克的答案])(https://stackoverflow.com/a/20601807/1385941)
library(ggplot2)
# create a data set containing the range you wish to use
d <- data.frame(x = c(-6,6))
# create a list of calls to `stat_function` with the colours you wish to use
ll <- Map(f = stat_function, colour = c('red', 'green', 'blue'),
fun = list(ecdf1, ecdf2, ecdf3), geom = 'step')
ggplot(data = d, aes(x = x)) + ll
所以,如果你的內存是正確的2.5年前,那麼這就是你的回答同樣的問題第三次:http://stackoverflow.com/questions/6344081/r-plotting-one -ecdf-on-top-of-another-in-different-colors?rq = 1 –
== :-)你剛剛度過了我的一天。我可能需要一個關於在這裏搜索的教程,因爲我尋找一箇舊的答案,但沒有發現它立馬。請注意,2年半前,我只說過我知道我以前做過,沒有回答。今天的答案是所有基地R,沒有Hmisc,所以那裏。 ;-) –
Search on:user:143305 ecdf ....你可以從早些時候找到其他人,儘管我正在考慮使用的是'Hmisc :: Ecdf'。 (有時再簡單一點就行了。) –