如何使用preserve = 'single'在position_dodge中对齐条形图?

nbewdwxp  于 2023-11-14  发布在  其他
关注(0)|答案(1)|浏览(95)

当使用position_dodge(preserve = 'single')创建分组数据的条形图时,每个条形图都有一个“自然”位置;然而,geom_col似乎使条形图左对齐。例如,在下面的代码中,最左边的条形图在下一组之前出现了一个很大的间隙。我希望第一个条形图是右对齐的。实现这一点的好方法是什么?
(One可能的解决方案是添加一些零高度的酒吧,我想。

library(tidyverse)

crossing(year = 2013:2023, qtr = 1:4) |> 
  slice(-(1:3)) |> 
  mutate(y = 1:n()) |> 
  ggplot(aes(year, y, fill = factor(qtr))) +
  geom_col(position = position_dodge(preserve = 'single'))

字符串

3phpmpom

3phpmpom1#

使用complete()将在任何“缺失”行的地方引入NA(* 即 * 缺失yearqtr的组合)。绘制此图将使position_dodge(preserve = 'single')按照您的意愿工作。

library(tidyverse)

crossing(year = 2013:2023, qtr = 1:4) |> 
  slice(-(1:3)) |> 
  mutate(y = 1:n()) %>%
  complete(year, qtr) %>%
  ggplot(aes(year, y, fill = factor(qtr))) +
  geom_col(position = position_dodge(preserve = 'single'))
#> Warning: Removed 3 rows containing missing values (`geom_col()`).

字符串

相关问题