如何在ggplot2中绘制具有正确间隔的连续x轴值的箱线图

时间:2018-11-11 02:06:59

标签: r ggplot2

我正在尝试绘制一个箱形图,其中我的x轴是一个连续的时间标度,该度数是度数天,即0到2500。我想获得一个x轴值在连续的时间上正确间隔的箱形图,规模,而不是离散的规模。通常,如果它是常规时间/日期,则可以在R中的ggplot2中使用“ scale_x_date”。但是,由于数字不在日期/时间范围之内,因此我不确定如何正确间隔x轴值。这是虚拟的示例:

library(ggplot2)
set.seed(1234)
#get data    
df <- data.frame(y=abs(rnorm(8)),
             x=as.factor(rep(c(0,100,200,500),times=2))) 
ggplot(aes(y=y,x=x), data=df) + 
       geom_boxplot()

这给了我情节

enter image description here

我的x轴未根据其数值间隔。相反,我想得到一个箱形图,其中200到500之间的间距应该是100-200的三倍。我的实际数据的x轴值为0-2500个生长日。我正在寻找ggplot2特定解决方案。

1 个答案:

答案 0 :(得分:1)

df <- data.frame(y=abs(rnorm(8)),
                 x=rep(c(0,100,200,500),times=2)) 

ggplot(df, aes(x, y, group=x)) + 
  geom_boxplot()

enter image description here

此解决方案依赖于两个更改。首先,要绘制位于连续x轴上的框,我们需要提供数字而不是因数x值。但是,这本身并不起作用,因为在没有按因子级别对x值进行分组的情况下,ggplot不再知道如何将数据分组到不同的框中。因此,我们还需要提供一个附加的分组变量。