R:绘制具有连续x轴的盒形图:为每个框选择一个间隔

R:绘制具有连续x轴的盒形图:为每个框选择一个间隔,r,ggplot2,boxplot,continuous,R,Ggplot2,Boxplot,Continuous,我目前正在研究R,我对包ggplot2中的箱线图有一些问题 我想做的是根据道路上车辆的速度绘制NO2浓度图。所以我有一个连续的x轴和一个连续的y轴。当我使用geom_箱线图时,我得到了这些图 ggplot(df, aes(x=Speed, y=Concentration)) + geom_boxplot() + scale_x_continuous(limits = c(0, 100)) + scale_y_continuous(limits = c(0,500)) 我们可以看

我目前正在研究R,我对包ggplot2中的箱线图有一些问题

我想做的是根据道路上车辆的速度绘制NO2浓度图。所以我有一个连续的x轴和一个连续的y轴。当我使用geom_箱线图时,我得到了这些图

ggplot(df, aes(x=Speed, y=Concentration)) + 
  geom_boxplot() +
  scale_x_continuous(limits = c(0, 100)) +
  scale_y_continuous(limits = c(0,500)) 
我们可以看到这些盒子是随机排列的,我想要的是在0到100 km/h之间每隔20 km/h得到一个不同的箱线图

我在论坛的其他主题上尝试过不同的东西,比如:

aes(group = cut_width(Speed, 20))
但是没有任何变化,我的箱子不会每20公里/小时放置一次

我不确定我的解释是否很清楚,如果你不明白什么,请不要犹豫

这几天我一直在努力解决这个问题,如果有人能在这个问题上帮助我,我将非常感激

谢谢,, 瓦伦丁

编辑:下面是创建数据集的代码,以及结果的图片

df = data.frame(matrix(ncol = 2, nrow = 20))
colnames(df) = c("Speed", "Concentrations")
df$Speed = runif(20, 0,100)
df$Concentrations = runif(20,0,500)
ggplot(df, aes(x = Speed, y = Concentrations)) + geom_boxplot(aes(group = cut_width(Speed, 20)))

结果是。我想要的是一个速度为20、40、60、80的长方体。

考虑将以下离散变量添加到数据中,而不是在ggplot命令中应用剪切宽度()

df$Speed_Cat = cut_width(df$Speed, 20)
然后,您的绘图将通过以下方式构建:

ggplot(df, aes(x = Speed_Cat, y = Concentrations)) + 
geom_boxplot() + 
scale_x_discrete(labels=seq(0,100,20))
只要知道你想要你的切割代表什么!桶变为[-10,10],(10,30]。。。,
但是,当您在数据中创建变量时,您可以随时调整这些参数。

请发布一个有代表性的数据样本,我们可以使用它来帮助您。这些框是按您指定给x的变量分组的,因此在本例中是速度。因此,您需要在这里应用
剪切宽度
。当然,这里有一个指向数据框的链接:我做了一个示例发布时出错,我刚刚编辑了这个速度错误,谢谢。请发布一个独立的示例,不需要我们下载数据,最好使用
reprex
软件包。另请参见:我在我的帖子中添加了一个代码来创建数据集,因为我不懂如何使用reprex:(。我希望这很好。谢谢。