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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R:绘制具有连续x轴的箱线图:为每个框选择一个间隔相关的知识,希望对你有一定的参考价值。

我目前正在研究R,我从包ggplot2的箱形图中遇到了一些麻烦。

我想要做的是根据道路上车辆的速度绘制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公里/小时之间每20公里/小时获得一个不同的箱形图。

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

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的盒子。

答案

考虑将以下离散变量添加到数据中,而不是在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),...,但您可以随时在数据中创建变量时对其进行调整。

以上是关于R:绘制具有连续x轴的箱线图:为每个框选择一个间隔的主要内容,如果未能解决你的问题,请参考以下文章

如何绘制两个不同系列的箱线图?

具有多个类别的箱线图和小提琴图

使用熊猫的箱线图

如何在ggplot的箱线图中按组绘制平均值

具有多个x轴的R plotly框架

想要将 Pandas 数据框绘制为具有 log10 比例 x 轴的多个直方图