gpt4 book ai didi

r - 如何在一个图中绘制 'multiple box plots'?

转载 作者:行者123 更新时间:2023-12-04 14:31:34 24 4
gpt4 key购买 nike

我有以下格式的数据:

  # repetition, packet, route, energy level
1, 1, 1, 10.0
1, 1, 2, 12.3
1, 1, 3, 13.8
1, 2, 1, 9.2
1, 2, 2, 10.1
1, 2, 3, 11.2
...
50,99,3, 0.01

现在,我想创建一个图,显示所有重复中每个数据包的每个路由的箱线图。因此,例如,x 轴表示数据包,y 轴表示能量水平。 x 轴上的第一个刻度将显示三个箱线图,其中包含三个子集的数据
  subset(data, data$packet == 1 & data$route == 1)
subset(data, data$packet == 1 & data$route == 2)
subset(data, data$packet == 1 & data$route == 3)

等等。我正在使用 ggplot2,我想知道是否每次都必须创建一个箱线图并尝试将它们添加到一个箱线图中,或者是否有一种聪明的方法可以做到这一点?

提前致谢!
M。

最佳答案

如果您使用的是 ggplot2 ,你可以用 facet_wrap 很好地做到这一点。 ,它可以创建多个彼此相邻的箱线图。例如:

library(ggplot2)
mydata = data.frame(x=as.factor(rep(1:2, 5, each=5)), y=rnorm(50),
division=rep(letters[1:5], each=10))

print(ggplot(mydata, aes(x, y)) + geom_boxplot() + facet_wrap(~division))

enter image description here

就您的代码而言,您看起来可能实际上想要除以两个变量(有点不清楚)。如果您想按路由然后按数据包(如您的示例所示)来划分它,您可以使用 facet_grid :
print(ggplot(data, aes(repetition, energy.level)) + geom_boxplot() + facet_grid(route ~ packet))

但是,请注意,由于您有 99 个数据包,因此最终将有 99 个图形宽,因此您可能想尝试不同的方法。

关于r - 如何在一个图中绘制 'multiple box plots'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12427887/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com