2

我想使用 geom_boxplot 制作与两个变量相关的箱线图:对于 x 值的每个箱,绘制该箱的 y 值的分布(作为箱线图)。我试过了:

ggplot(cars) + geom_boxplot(aes(x=dist, y=speed))

但这基本上会创建一大箱 x 值。我怎样才能使每个 bindist都有一个表示相应speed值的箱线图?

4

2 回答 2

5

不确定您所说的“bin”是什么意思,因为您没有在问题中提供任何 bin。如果您只是想要每个唯一dist值的速度箱线图,您可以这样做(dist视为离散):

ggplot(cars) + geom_boxplot(aes(factor(dist), speed))

如果您要实际创建垃圾箱,您可以执行以下操作:

cars$bin <- cut(cars$dist, c(1, 10, 30, 50, 200))
ggplot(cars) + geom_boxplot(aes(bin, speed))
于 2013-10-08T12:25:28.747 回答
3

只是把它放在那里,你也可以做

bin_size <- 10

cars %>% 
  mutate(bin_dist = factor(dist%/%bin_size*10)) %>% 
  ggplot(aes(x = bin_dist, y = speed)) +
  geom_boxplot()

geom_boxplot,bin-size 10

为了使标签更好:

(cars2 <- cars %>% 
  mutate(bin_dist = dist%/%bin_size*10)) %>% 
  ggplot(aes(x = factor(bin_dist), y = speed)) +
  geom_boxplot() +
  scale_x_discrete(labels = paste0(unique(cars2$bin_dist), "-", unique(cars2$bin_dist)+10)) +
  labs(x = "dist")

具有改进标签的相同图

cars2被保存,因此它可以在paste0.

于 2019-11-07T16:00:58.343 回答