在ggplot2
中,当我尝试使用stat_ecdf
和geom_point
绘制累积密度函数时,我看到了一个奇怪的行为:我的数字中添加了两个额外的点,一个在一切之前和其他一切事后。如果默认geom_step
用于绘图,这种情况有意义,但如果没有geom_point
,如果不是完全错误的话,这会非常混乱。有谁知道如何解决这一问题?
以下是一个例子:
qplot(a,data=data.frame(a=1:10),stat="ecdf",geom="point")
产生:
注意0和10的加分。
这是我的R会话信息:
> sessionInfo()
R version 3.1.1 (2014-07-10)
Platform: x86_64-apple-darwin13.1.0 (64-bit)
...
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] scales_0.2.4 ggplot2_1.0.0
答案 0 :(得分:4)
将stat_cdf
应用于geom_point()
没有多大意义。如果你想要一个CDF情节,你最好用。
library(ggplot2)
df = data.frame(a=1:10)
ggplot(data = df, aes(x=a)) + stat_ecdf() + scale_x_discrete(breaks = 1:11)
stat_ecdf
应该是一个阶梯函数。
如果你坚持让你的代码工作并接受黑客攻击,那么你就可以做到这一点。
ggplot(data = df, aes(x=a)) + geom_point(stat = "ecdf", colour = c(rep("red", 11), NA))