结合两个ecdf情节与不同

时间:2013-05-21 12:57:31

标签: r ggplot2

目前我正在写我的学士论文,我的所有情节都是用ggplot2创建的。现在我需要一个两个ecdf的图,但我的问题是两个数据帧有不同的长度。但是通过添加值来均衡长度我会改变分布,因此我的第一个想法是不可能的。但是禁止使用具有不同长度的两个不同数据帧的ecdf图。

daten <- peptidPSMotherExplained[peptidPSMotherExplained$V3!=-1,]
daten <- cbind ( daten , "scoreDistance"= daten$V2-daten$V3 )    
daten2 <- peptidPSMotherExplained2[peptidPSMotherExplained2$V3!=-1,]
daten2 <- cbind ( daten2 , "scoreDistance"= daten2$V2-daten2$V3 )
p <- ggplot(daten, aes(x = scoreDistance)) + stat_ecdf()
p <- p + geom_point(aes(x = daten2$lengthDistance))
p

具有R的正常绘图功能可能

plot(ecdf(daten$scoreDistance))
plot(ecdf(daten2$scoreDistance),add=TRUE)

但它看起来与我的所有其他情节不同,我不喜欢这个。

有人为我解决了问题吗?

谢谢你, 托拜厄斯


示例:

df <-data.frame(scoreDifference = rnorm(10,0,12))
df2 <- data.frame(scoreDifference = rnorm(5,-3,9)) 
plot(ecdf(df$scoreDifference))
plot(ecdf(df2$scoreDifference),add=TRUE)

那么如何在ggplot中实现这种情节?

2 个答案:

答案 0 :(得分:1)

我不知道geom应该用于这样的图,但是对于组合两个数据集,您只需在新图层中指定数据,

ggplot(df, aes(x = scoreDifference)) + 
  stat_ecdf(geom = "point") + 
  stat_ecdf(data=df2, geom = "point") 

答案 1 :(得分:0)

我认为,以正确的方式重塑数据可能会让ggplot2为您服务:

df <-data.frame(scoreDiff1 = rnorm(10,0,12))
df2 <- data.frame(scoreDiff2 = rnorm(5,-3,9))
library('reshape2')
data <- merge(melt(df),melt(df2),all=TRUE)

然后,如果data形状正确,您可以继续用颜色(或形状,或任何您想要的)绘制东西来区分这两个数据集:

p <- ggplot(daten, aes(x = value, colour = variable)) + stat_ecdf()

希望这就是你要找的东西!?