R:绘制具有连续 x 轴的箱线图:为每个框选择一个区间
R : Plot a boxplot with a continuous x axis : choose an interval for each box
我目前正在研究 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到100km/h之间每隔20km/h得到一个不同的箱线图km/h。
我尝试了在论坛其他主题上看到的不同内容,例如:
aes(group = cut_width(Speed, 20))
但什么都没有改变,我的盒子不会每 20 个放置一次 km/h。
我不确定我的解释是否很清楚,如果您有什么不明白的地方,请不要犹豫。
几天来我一直在努力解决这个问题,如果有人能帮助我解决这个问题,我将不胜感激。
谢谢,
情人节
编辑:这是创建数据集的代码和结果图片。
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,我在使用 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到100km/h之间每隔20km/h得到一个不同的箱线图km/h。
我尝试了在论坛其他主题上看到的不同内容,例如:
aes(group = cut_width(Speed, 20))
但什么都没有改变,我的盒子不会每 20 个放置一次 km/h。
我不确定我的解释是否很清楚,如果您有什么不明白的地方,请不要犹豫。
几天来我一直在努力解决这个问题,如果有人能帮助我解决这个问题,我将不胜感激。
谢谢, 情人节
编辑:这是创建数据集的代码和结果图片。
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), ..., 但您可以在数据中创建变量时随时调整这些。