使用ggplot制作这个ecdf图?
make this ecdf plot using ggplot?
这是数据x1:344,347,351,351,355
我需要根据上面的数据绘制经验累积分布函数,这是我的解决方案
point<-na.omit(data$x1)
point<-point[!duplicated(point)]
point<-point[order(point)]
prob<-ecdf(data$x1)
prob<-prob(data$x1)
prob<-prob[order(prob)]
prob<-na.omit(prob)
x1<-data$x1[order(data$x1)]
x1<-c(340,344,347,351,355)
x2<-c(344,347,351,355,360)
prob2<-prob[!duplicated(prob)]
data1<-cbind(x1,x2,prob,point,prob2)
data1<-as.data.frame(data1)
ggplot(data=data1)+
geom_segment(mapping = aes(x = x1,xend = x2,y = prob,yend = prob))+
scale_x_continuous(limits = c(340,360))+
scale_y_continuous(limits = c(0,1))+
geom_point(mapping = aes(x = point ,y = prob2))
我觉得这太复杂了,不像图片上的情节,
但我真的不知道如何在不使用 base plot()(或 stepfun() 的情况下简化它,因为它看起来不太好)。
我考虑了几个小时,非常感谢您的帮助!
您可以通过为要绘制的值创建一个小数据框来手动完成。
library(ggplot2)
data <- c(344, 347, 351, 351, 355)
df <- data.frame(x = c(-Inf, data),
xend = c(data, Inf),
y = c(0, 0.2, 0.4, 0.4, 0.8, 1))
ggplot(df, aes(x, y)) +
geom_segment(aes(xend = xend, yend = y), size = 1) +
geom_point(aes(x = xend), shape = 21, fill = "white", size = 3) +
theme_classic()
这是数据x1:344,347,351,351,355 我需要根据上面的数据绘制经验累积分布函数,这是我的解决方案
point<-na.omit(data$x1)
point<-point[!duplicated(point)]
point<-point[order(point)]
prob<-ecdf(data$x1)
prob<-prob(data$x1)
prob<-prob[order(prob)]
prob<-na.omit(prob)
x1<-data$x1[order(data$x1)]
x1<-c(340,344,347,351,355)
x2<-c(344,347,351,355,360)
prob2<-prob[!duplicated(prob)]
data1<-cbind(x1,x2,prob,point,prob2)
data1<-as.data.frame(data1)
ggplot(data=data1)+
geom_segment(mapping = aes(x = x1,xend = x2,y = prob,yend = prob))+
scale_x_continuous(limits = c(340,360))+
scale_y_continuous(limits = c(0,1))+
geom_point(mapping = aes(x = point ,y = prob2))
我觉得这太复杂了,不像图片上的情节, 但我真的不知道如何在不使用 base plot()(或 stepfun() 的情况下简化它,因为它看起来不太好)。 我考虑了几个小时,非常感谢您的帮助!
您可以通过为要绘制的值创建一个小数据框来手动完成。
library(ggplot2)
data <- c(344, 347, 351, 351, 355)
df <- data.frame(x = c(-Inf, data),
xend = c(data, Inf),
y = c(0, 0.2, 0.4, 0.4, 0.8, 1))
ggplot(df, aes(x, y)) +
geom_segment(aes(xend = xend, yend = y), size = 1) +
geom_point(aes(x = xend), shape = 21, fill = "white", size = 3) +
theme_classic()