簡體   English   中英

ggplot2:按總數排序堆疊條形圖

[英]ggplot2: Order stacked barplot by total number

我試圖使用 reorder() 以降序(所有段一起)對條形進行排序。 但是,這似乎不起作用。 我怎樣才能做到這一點?

library(tidyverse)

# Sample data frame
df <- data.frame(var = sample(paste0("x", 1:10), size = 100, replace = TRUE),
                 var2 = sample(c("A", "B", "C", "D"), size = 100, replace = TRUE))

# Stacked barplot
df %>% group_by(var) %>%
  count(var2) %>%
  ggplot(aes(x = reorder(var, n, fun = "sum"), y = n, fill = var2)) +  
    geom_col()

另一個選項是將add_count與 fct_infreq() 一起使用:

library(tidyverse)

df %>% 
  add_count(var) %>% 
  ggplot(aes(x = fct_infreq(var), y = n, fill = var2)) +  
  geom_col()

在此處輸入圖像描述

如果您使用forcats::fct_reorder (tidyverse 的一部分)而不是reorder ...

df %>% group_by(var) %>%
  count(var2) %>%
  ggplot(aes(x = fct_reorder(var, n, .fun = sum), y = n, fill = var2)) +  
  geom_col()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM