我目前正在研究R,并且对ggplot2软件包中的boxplot有一些麻烦。
我要做的是根据道路上车辆的速度绘制NO2浓度。因此,我有一个连续的x轴和一个连续的y轴。当我使用geom_boxplot时,我会得到那些图
ggplot(df, aes(x=Speed, y=Concentration)) +
geom_boxplot() +
scale_x_continuous(limits = c(0, 100)) +
scale_y_continuous(limits = c(0,500))
我们可以看到这些盒子是随机放置在this graph上的,我想要的是在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)))
结果为here。我想要的是在速度20、40、60、80时有一个盒子。
答案 0 :(得分:0)
考虑将以下离散变量添加到数据中,而不要在ggplot命令中应用cut_width():
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],..., 但是您总是可以在数据中创建变量时进行调整。