我有一个连续的变量,介于0到1之间,我将其分为不同宽度的箱(所有箱的大小均相等,除了最后一个箱合并了超过阈值的值)。我想做一个盒子图,其中盒子的宽度覆盖箱的x范围。这是一段代码,可以绘制两个图,一个带有等宽的箱,另一个带我的箱。
require(ggplot2)
x<-runif(100,0,1)
y<-ifelse(x<0.3,2*x,0.75)+runif(100,0,.15)
xbin <- cut(x = x, breaks = seq(0,1,0.1),include.lowest = T,labels=seq(0.05,0.95,0.1) )
df<-data.frame(x=x,y=y,xbin=xbin)
ggplot(df,aes(x=xbin,y=y))+geom_boxplot()
xbin <- cut(x = x, breaks = c(seq(0,0.3,0.1),1),include.lowest = T,labels=c(seq(0.05,0.25,0.1),">3") )
df<-data.frame(x=x,y=y,xbin=xbin)
ggplot(df,aes(x=xbin,y=y))+geom_boxplot()
我希望最后一个盒子占用所有合并的垃圾箱的空间。恐怕该图会误导您,因为最后一个方框涵盖了更大的x范围。答案可能是存在更好的数据呈现方式。我的实际数据稍微集中在0和1处,而0.5处的点较少,因此我想对数据进行分箱(与How to create geom_boxplot with large amount of continuous x-variables中的情况不同)。
谢谢