如何根据 r 中 cut 函数的 bins 为单个变量做 multiboxplot?

How to do multiboxplot for a single variable based on bins from cut function in r?

我正在尝试根据 cut 函数

的 bin 数量为变量 创建一个 多框图
movie_reg %>% select(Collection) %>% pull() %>% cut(7) 

[1] (3.57e+04,4.86e+04] (3.57e+04,4.86e+04] (6.14e+04,7.43e+04] (6.14e+04,7.43e+04] (6.14e+04,7.43e+04]
  [6] (4.86e+04,6.14e+04] (3.57e+04,4.86e+04] (3.57e+04,4.86e+04] (2.29e+04,3.57e+04] (3.57e+04,4.86e+04]
 [11] (2.29e+04,3.57e+04] (3.57e+04,4.86e+04] (3.57e+04,4.86e+04] (3.57e+04,4.86e+04] (3.57e+04,4.86e+04]
.
.
[501] (2.29e+04,3.57e+04] (3.57e+04,4.86e+04] (3.57e+04,4.86e+04] (3.57e+04,4.86e+04] (3.57e+04,4.86e+04]
[506] (3.57e+04,4.86e+04]
7 Levels: (9.91e+03,2.29e+04] (2.29e+04,3.57e+04] (3.57e+04,4.86e+04] (4.86e+04,6.14e+04] ... (8.71e+04,1e+05]

我不确定我将如何在箱线图中准确地将水平和相应的值传递给它。以下是我尝试过但出现错误的方法:

movie_reg %>% select(Collection) %>% pull() %>% cut(7) %>% boxplot(aes(x=levels))
Error in sort.int(x, na.last = na.last, decreasing = decreasing, ...) : 'x' must be atomic

如果能提供一个可复现的例子就更好了,现在很难帮到你。我确实注意到您在 boxplot 函数中使用了美学,但美学是 ggplot 的一部分,而不是基本函数 boxplot()。此外,在多箱线图中,您需要提供 x 和 y,所以您可能只想要一个显示每组计数的条形图(只需要一个 x)?

movie_reg %>% 
  select(Collection) %>% 
  pull() %>% 
  cut(7) %>% 
  ggplot(aes(x=levels)) + 
  geom_bar()

我认为您混淆了基础 R 中的 boxplot() 和 ggplot2 中的 geom_boxplot()。在任何情况下,如果您的问题是关于可视化从 cut() 获得的类别,您可以使用以下方式添加列:

movie_reg = data.frame(Collection = runif(100))
movie_reg %>% mutate(levels = cut(Collection,7))

使用箱线图:

boxplot(Collection ~ levels,data=movie_reg %>% mutate(levels = cut(Collection,7)),horizontal=TRUE,las=2,cex.axis=0.6)

或 ggplot2 :

movie_reg %>% mutate(levels = cut(Collection,7)) %>% ggplot(aes(x=levels,y=Collection)) + geom_boxplot() + coord_flip()