目前我正在写我的学士论文,我的所有情节都是用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中实现这种情节?
答案 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()
希望这就是你要找的东西!?