首页 > 解决方案 > 如何使用 ggplot2 按降序组织构面?

问题描述

这个问题被标记为前段时间已经回答,有人将我重定向到此页面。但是,我对 Tidyverse 一无所知(而且数据本身看起来也不同),所以我决定通过重新编写这篇文章来再试一次。

简而言之,我已经成功地在 R 中制作了一个堆叠条形图,其中几个不同类别的百分比加起来为 100%。数据框如下所示:

sujeito teste epentese vozeamento palavra tipo  ortografia
   <chr>   <chr> <chr>    <chr>      <chr>   <chr> <chr>     
 1 a       n     1        0          cats    ts    cs        
 2 b       l     1        1          ducks   ks    cs        
 3 c       l     1        1          cups    ps    cs        
 4 d       l     0        0          grapes  ps    ces       
 5 e       l     1        0          lakes   ks    ces       
 6 f       n     1        0          gates   ts    ces       
 7 g       n     0        0          books   ks    cs        
 8 h       n     1        0          cakes   ks    ces       
 9 a       n     1        1          kites   ts    ces       
10 b       n     1        0          boats   ts    cs     

我使用 ggplot2 和 deplyr 制作了一个显示频率的堆叠条形图。由于我需要显示两个自变量,所以我习惯于facet_wrap组织可视化。我使用了以下代码:

dados%>%
  group_by(ortografia, tipo, epentese)%>%
  summarise(quantidade = n())%>%
  mutate(frequencia = quantidade/sum(quantidade))%>%
  ggplot(., aes(x = tipo, y = frequencia, fill = epentese))+
  geom_col(position = position_fill(reverse=TRUE))+
  geom_text(aes(label = if_else(epentese == 0, scales::percent(frequencia, accuracy = 1), "")), vjust = 0, nudge_y = .01) +
  scale_y_continuous(labels=scales::percent)+
  facet_wrap(~ortografia)+
  labs(title = "Epenthesis rates by ortographic pattern and cluster type", subtitle = "Orthographic Pattern")+
  theme(plot.title = element_text(hjust = 0.5))+
  theme(plot.subtitle = element_text(hjust = 0.5))+
  xlab("Cluster Type")+ylab("Frequency")

然而,我的情节最终像下图的左侧,而不是右侧(这是我的目标)。恐怕使用不同的方面会使事情变得有点复杂。

在此处输入图像描述

有人可以帮助这个不起眼的用户按降序组织这些方面吗?

编辑:这是 dput 的输出,根据要求:

> dput(dados)
structure(list(sujeito = c("a", "a", "a", "a", "a", "a", "a", 
"a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", 
"a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", 
"a", "a", "a", "a", "a", "a", "a", "a", "a", "b", "b", "b", "b", 
"b", "b", "b", "b", "b", "b", "b", "b", "b", "b", "b", "b", "b", 
"b", "b", "b", "b", "b", "b", "b", "b", "b", "b", "b", "b", "b", 
"b", "b", "b", "b", "b", "b", "b", "b", "b", "b", "b", "b", "b", 
"b", "c", "c", "c", "c", "c", "c", "c", "c", "c", "c", "c", "c", 
"c", "c", "c", "c", "c", "c", "c", "c", "c", "c", "c", "c", "c", 
"c", "c", "c", "c", "c", "c", "c", "c", "c", "c", "c", "c", "c", 
"c", "c", "c", "c", "c", "c", "d", "d", "d", "d", "d", "d", "d", 
"d", "d", "d", "d", "d", "d", "d", "d", "d", "d", "d", "d", "d", 
"d", "d", "d", "d", "d", "d", "d", "d", "d", "d", "d", "d", "d", 
"d", "d", "d", "d", "d", "d", "d", "d", "d", "d", "e", "e", "e", 
"e", "e", "e", "e", "e", "e", "e", "e", "e", "e", "e", "e", "e", 
"e", "e", "e", "e", "e", "e", "e", "e", "e", "e", "e", "e", "e", 
"e", "e", "e", "e", "e", "e", "e", "e", "e", "e", "e", "e", "e", 
"e", "f", "f", "f", "f", "f", "f", "f", "f", "f", "f", "f", "f", 
"f", "f", "f", "f", "f", "f", "f", "f", "f", "f", "f", "f", "f", 
"f", "f", "f", "f", "f", "f", "f", "f", "f", "f", "f", "f", "f", 
"f", "f", "f", "f", "f", "g", "g", "g", "g", "g", "g", "g", "g", 
"g", "g", "g", "g", "g", "g", "g", "g", "g", "g", "g", "g", "g", 
"g", "g", "g", "g", "g", "g", "g", "g", "g", "g", "g", "g", "g", 
"g", "g", "g", "g", "g", "g", "g", "g", "g", "g", "h", "h", "h", 
"h", "h", "h", "h", "h", "h", "h", "h", "h", "h", "h", "h", "h", 
"h", "h", "h", "h", "h", "h", "h", "h", "h", "h", "h", "h", "h", 
"h", "h", "h", "h", "h", "h", "h", "h", "h", "h", "h", "h", "h", 
"h"), teste = c("n", "n", "n", "n", "n", "n", "n", "n", "n", 
"n", "n", "n", "n", "n", "n", "n", "n", "n", "n", "n", "n", "n", 
"l", "l", "l", "l", "l", "l", "l", "l", "l", "l", "l", "l", "l", 
"l", "l", "l", "l", "l", "l", "l", "n", "n", "n", "n", "n", "n", 
"n", "n", "n", "n", "n", "n", "n", "n", "n", "n", "n", "n", "n", 
"n", "n", "n", "l", "l", "l", "l", "l", "l", "l", "l", "l", "l", 
"l", "l", "l", "l", "l", "l", "l", "l", "l", "l", "l", "l", "n", 
"n", "n", "n", "n", "n", "n", "n", "n", "n", "n", "n", "n", "n", 
"n", "n", "n", "n", "n", "n", "n", "n", "l", "l", "l", "l", "l", 
"l", "l", "l", "l", "l", "l", "l", "l", "l", "l", "l", "l", "l", 
"l", "l", "l", "l", "n", "n", "n", "n", "n", "n", "n", "n", "n", 
"n", "n", "n", "n", "n", "n", "n", "n", "n", "n", "n", "n", "n", 
"l", "l", "l", "l", "l", "l", "l", "l", "l", "l", "l", "l", "l", 
"l", "l", "l", "l", "l", "l", "l", "l", "n", "n", "n", "n", "n", 
"n", "n", "n", "n", "n", "n", "n", "n", "n", "n", "n", "n", "n", 
"n", "n", "n", "n", "l", "l", "l", "l", "l", "l", "l", "l", "l", 
"l", "l", "l", "l", "l", "l", "l", "l", "l", "l", "l", "l", "n", 
"n", "n", "n", "n", "n", "n", "n", "n", "n", "n", "n", "n", "n", 
"n", "n", "n", "n", "n", "n", "n", "l", "l", "l", "l", "l", "l", 
"l", "l", "l", "l", "l", "l", "l", "l", "l", "l", "l", "l", "l", 
"l", "l", "l", "n", "n", "n", "n", "n", "n", "n", "n", "n", "n", 
"n", "n", "n", "n", "n", "n", "n", "n", "n", "n", "n", "n", "l", 
"l", "l", "l", "l", "l", "l", "l", "l", "l", "l", "l", "l", "l", 
"l", "l", "l", "l", "l", "l", "l", "l", "n", "n", "n", "n", "n", 
"n", "n", "n", "n", "n", "n", "n", "n", "n", "n", "n", "n", "n", 
"n", "n", "n", "n", "l", "l", "l", "l", "l", "l", "l", "l", "l", 
"l", "l", "l", "l", "l", "l", "l", "l", "l", "l", "l", "l"), 
    epentese = c("1", "1", "1", "1", "1", "1", "1", "1", "1", 
    "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
    "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
    "1", "1", "1", "1", "1", "1", "1", "1", "0", "1", "1", "1", 
    "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
    "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
    "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
    "1", "1", "1", "0", "1", "1", "1", "1", "1", "1", "1", "1", 
    "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
    "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
    "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
    "1", "1", "1", "1", "0", "1", "1", "1", "0", "1", "1", "1", 
    "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
    "1", "1", "1", "1", "1", "0", "1", "1", "1", "1", "0", "1", 
    "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
    "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
    "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
    "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
    "1", "1", "1", "1", "1", "1", "0", "0", "1", "1", "0", "1", 
    "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
    "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
    "1", "1", "1", "1", "0", "1", "1", "1", "1", "1", "1", "1", 
    "0", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "0", 
    "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
    "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
    "0", "1", "1", "1", "0", "0", "1", "1", "1", "0", "0", "1", 
    "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
    "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "0", "1", 
    "1", "1", "1", "1", "1", "1", "1", "0", "1", "1", "1", "0", 
    "0"), vozeamento = c("0", "0", "0", "0", "0", "0", "0", "0", 
    "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", 
    "0", "0", "0", "0", "0", "1", "0", "1", "0", "0", "0", "0", 
    "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", 
    "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", 
    "0", "0", "0", "0", "0", "0", "0", "0", "1", "1", "1", "0", 
    "1", "1", "0", "1", "1", "0", "0", "0", "0", "0", "0", "0", 
    "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", 
    "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", 
    "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "0", 
    "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", 
    "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", 
    "0", "0", "0", "1", "1", "1", "1", "0", "1", "1", "0", "1", 
    "1", "0", "1", "0", "1", "0", "1", "1", "1", "1", "0", "0", 
    "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", 
    "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", 
    "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "1", "0", 
    "0", "0", "1", "1", "0", "0", "0", "0", "0", "0", "0", "0", 
    "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", 
    "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", 
    "0", "0", "1", "0", "0", "1", "1", "1", "0", "0", "1", "0", 
    "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", 
    "0", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", 
    "1", "0", "0", "0", "0", "1", "1", "0", "0", "1", "1", "1", 
    "1", "1", "1", "1", "1", "1", "1", "0", "0", "0", "0", "0", 
    "0", "1", "0", "0", "0", "1", "1", "0", "0", "0", "0", "0", 
    "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", 
    "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", 
    "0", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", 
    "0", "0"), palavra = c("cats", "ducks", "cups", "grapes", 
    "lakes", "gates", "books", "cakes", "kites", "boats", "ropes", 
    "maps", "eggs", "globes", "jobs", "beds", "kids", "pubs", 
    "pigs", "tubes", "sides", "codes", "pubs", "beds", "kids", 
    "eggs", "pigs", "tubes", "globes", "sides", "codes", "maps", 
    "cats", "boats", "ducks", "books", "grapes", "ropes", "gates", 
    "kites", "cakes", "lakes", "cats", "ducks", "cups", "grapes", 
    "lakes", "gates", "books", "cakes", "kites", "boats", "ropes", 
    "maps", "eggs", "globes", "jobs", "beds", "kids", "pubs", 
    "pigs", "tubes", "sides", "codes", "jobs", "pubs", "beds", 
    "kids", "eggs", "pigs", "tubes", "globes", "sides", "codes", 
    "cups", "maps", "cats", "boats", "ducks", "books", "grapes", 
    "ropes", "gates", "kites", "cakes", "lakes", "cats", "ducks", 
    "cups", "grapes", "lakes", "gates", "books", "cakes", "kites", 
    "boats", "ropes", "maps", "eggs", "globes", "jobs", "beds", 
    "kids", "pubs", "pigs", "tubes", "sides", "codes", "jobs", 
    "pubs", "beds", "kids", "eggs", "pigs", "tubes", "globes", 
    "sides", "codes", "cups", "maps", "cats", "boats", "ducks", 
    "books", "grapes", "ropes", "gates", "kites", "cakes", "lakes", 
    "cats", "ducks", "cups", "grapes", "lakes", "gates", "books", 
    "cakes", "kites", "boats", "ropes", "maps", "eggs", "globes", 
    "jobs", "beds", "kids", "pubs", "pigs", "tubes", "sides", 
    "codes", "jobs", "pubs", "beds", "kids", "eggs", "pigs", 
    "tubes", "globes", "sides", "codes", "cups", "maps", "cats", 
    "boats", "ducks", "books", "grapes", "ropes", "gates", "cakes", 
    "lakes", "cats", "ducks", "cups", "grapes", "lakes", "gates", 
    "books", "cakes", "kites", "boats", "ropes", "maps", "eggs", 
    "globes", "jobs", "beds", "kids", "pubs", "pigs", "tubes", 
    "sides", "codes", "jobs", "pubs", "beds", "kids", "eggs", 
    "pigs", "globes", "sides", "codes", "cups", "maps", "cats", 
    "boats", "ducks", "books", "grapes", "ropes", "gates", "kites", 
    "cakes", "lakes", "cats", "ducks", "cups", "grapes", "lakes", 
    "gates", "books", "cakes", "boats", "ropes", "maps", "eggs", 
    "globes", "jobs", "beds", "kids", "pubs", "pigs", "tubes", 
    "sides", "codes", "jobs", "pubs", "beds", "kids", "eggs", 
    "pigs", "tubes", "globes", "sides", "codes", "cups", "maps", 
    "cats", "boats", "ducks", "books", "grapes", "ropes", "gates", 
    "kites", "cakes", "lakes", "cats", "ducks", "cups", "grapes", 
    "lakes", "gates", "books", "cakes", "kites", "boats", "ropes", 
    "maps", "eggs", "globes", "jobs", "beds", "kids", "pubs", 
    "pigs", "tubes", "sides", "codes", "jobs", "pubs", "beds", 
    "kids", "eggs", "pigs", "tubes", "globes", "sides", "codes", 
    "cups", "maps", "cats", "boats", "ducks", "books", "grapes", 
    "ropes", "gates", "kites", "cakes", "lakes", "cats", "ducks", 
    "cups", "grapes", "lakes", "gates", "books", "cakes", "kites", 
    "boats", "ropes", "maps", "eggs", "globes", "jobs", "beds", 
    "kids", "pubs", "pigs", "tubes", "sides", "codes", "jobs", 
    "pubs", "beds", "eggs", "pigs", "tubes", "globes", "sides", 
    "codes", "cups", "maps", "cats", "boats", "ducks", "books", 
    "grapes", "ropes", "gates", "kites", "cakes", "lakes"), tipo = c("ts", 
    "ks", "ps", "ps", "ks", "ts", "ks", "ks", "ts", "ts", "ps", 
    "ps", "gz", "bz", "bz", "dz", "dz", "bz", "gz", "bz", "dz", 
    "dz", "bz", "dz", "dz", "gz", "gz", "bz", "bz", "dz", "dz", 
    "ps", "ts", "ts", "ks", "ks", "ps", "ps", "ts", "ts", "ks", 
    "ks", "ts", "ks", "ps", "ps", "ks", "ts", "ks", "ks", "ts", 
    "ts", "ps", "ps", "gz", "bz", "bz", "dz", "dz", "bz", "gz", 
    "bz", "dz", "dz", "bz", "bz", "dz", "dz", "gz", "gz", "bz", 
    "bz", "dz", "dz", "ps", "ps", "ts", "ts", "ks", "ks", "ps", 
    "ps", "ts", "ts", "ks", "ks", "ts", "ks", "ps", "ps", "ks", 
    "ts", "ks", "ks", "ts", "ts", "ps", "ps", "gz", "bz", "bz", 
    "dz", "dz", "bz", "gz", "bz", "dz", "dz", "bz", "bz", "dz", 
    "dz", "gz", "gz", "bz", "bz", "dz", "dz", "ps", "ps", "ts", 
    "ts", "ks", "ks", "ps", "ps", "ts", "ts", "ks", "ks", "ts", 
    "ks", "ps", "ps", "ks", "ts", "ks", "ks", "ts", "ts", "ps", 
    "ps", "gz", "bz", "bz", "dz", "dz", "bz", "gz", "bz", "dz", 
    "dz", "bz", "bz", "dz", "dz", "gz", "gz", "bz", "bz", "dz", 
    "dz", "ps", "ps", "ts", "ts", "ks", "ks", "ps", "ps", "ts", 
    "ks", "ks", "ts", "ks", "ps", "ps", "ks", "ts", "ks", "ks", 
    "ts", "ts", "ps", "ps", "gz", "bz", "bz", "dz", "dz", "bz", 
    "gz", "bz", "dz", "dz", "bz", "bz", "dz", "dz", "gz", "gz", 
    "bz", "dz", "dz", "ps", "ps", "ts", "ts", "ks", "ks", "ps", 
    "ps", "ts", "ts", "ks", "ks", "ts", "ks", "ps", "ps", "ks", 
    "ts", "ks", "ks", "ts", "ps", "ps", "gz", "bz", "bz", "dz", 
    "dz", "bz", "gz", "bz", "dz", "dz", "bz", "bz", "dz", "dz", 
    "gz", "gz", "bz", "bz", "dz", "dz", "ps", "ps", "ts", "ts", 
    "ks", "ks", "ps", "ps", "ts", "ts", "ks", "ks", "ts", "ks", 
    "ps", "ps", "ks", "ts", "ks", "ks", "ts", "ts", "ps", "ps", 
    "gz", "bz", "bz", "dz", "dz", "bz", "gz", "bz", "dz", "dz", 
    "bz", "bz", "dz", "dz", "gz", "gz", "bz", "bz", "dz", "dz", 
    "ps", "ps", "ts", "ts", "ks", "ks", "ps", "ps", "ts", "ts", 
    "ks", "ks", "ts", "ks", "ps", "ps", "ks", "ts", "ks", "ks", 
    "ts", "ts", "ps", "ps", "gz", "bz", "bz", "dz", "dz", "bz", 
    "gz", "bz", "dz", "dz", "bz", "bz", "dz", "gz", "gz", "bz", 
    "bz", "dz", "dz", "ps", "ps", "ts", "ts", "ks", "ks", "ps", 
    "ps", "ts", "ts", "ks", "ks"), ortografia = c("cs", "cs", 
    "cs", "ces", "ces", "ces", "cs", "ces", "ces", "cs", "ces", 
    "cs", "cs", "ces", "cs", "cs", "cs", "cs", "cs", "ces", "ces", 
    "ces", "cs", "cs", "cs", "cs", "cs", "ces", "ces", "ces", 
    "ces", "cs", "cs", "cs", "cs", "cs", "ces", "ces", "ces", 
    "ces", "ces", "ces", "cs", "cs", "cs", "ces", "ces", "ces", 
    "cs", "ces", "ces", "cs", "ces", "cs", "cs", "ces", "cs", 
    "cs", "cs", "cs", "cs", "ces", "ces", "ces", "cs", "cs", 
    "cs", "cs", "cs", "cs", "ces", "ces", "ces", "ces", "cs", 
    "cs", "cs", "cs", "cs", "cs", "ces", "ces", "ces", "ces", 
    "ces", "ces", "cs", "cs", "cs", "ces", "ces", "ces", "cs", 
    "ces", "ces", "cs", "ces", "cs", "cs", "ces", "cs", "cs", 
    "cs", "cs", "cs", "ces", "ces", "ces", "cs", "cs", "cs", 
    "cs", "cs", "cs", "ces", "ces", "ces", "ces", "cs", "cs", 
    "cs", "cs", "cs", "cs", "ces", "ces", "ces", "ces", "ces", 
    "ces", "cs", "cs", "cs", "ces", "ces", "ces", "cs", "ces", 
    "ces", "cs", "ces", "cs", "cs", "ces", "cs", "cs", "cs", 
    "cs", "cs", "ces", "ces", "ces", "cs", "cs", "cs", "cs", 
    "cs", "cs", "ces", "ces", "ces", "ces", "cs", "cs", "cs", 
    "cs", "cs", "cs", "ces", "ces", "ces", "ces", "ces", "cs", 
    "cs", "cs", "ces", "ces", "ces", "cs", "ces", "ces", "cs", 
    "ces", "cs", "cs", "ces", "cs", "cs", "cs", "cs", "cs", "ces", 
    "ces", "ces", "cs", "cs", "cs", "cs", "cs", "cs", "ces", 
    "ces", "ces", "cs", "cs", "cs", "cs", "cs", "cs", "ces", 
    "ces", "ces", "ces", "ces", "ces", "cs", "cs", "cs", "ces", 
    "ces", "ces", "cs", "ces", "cs", "ces", "cs", "cs", "ces", 
    "cs", "cs", "cs", "cs", "cs", "ces", "ces", "ces", "cs", 
    "cs", "cs", "cs", "cs", "cs", "ces", "ces", "ces", "ces", 
    "cs", "cs", "cs", "cs", "cs", "cs", "ces", "ces", "ces", 
    "ces", "ces", "ces", "cs", "cs", "cs", "ces", "ces", "ces", 
    "cs", "ces", "ces", "cs", "ces", "cs", "cs", "ces", "cs", 
    "cs", "cs", "cs", "cs", "ces", "ces", "ces", "cs", "cs", 
    "cs", "cs", "cs", "cs", "ces", "ces", "ces", "ces", "cs", 
    "cs", "cs", "cs", "cs", "cs", "ces", "ces", "ces", "ces", 
    "ces", "ces", "cs", "cs", "cs", "ces", "ces", "ces", "cs", 
    "ces", "ces", "cs", "ces", "cs", "cs", "ces", "cs", "cs", 
    "cs", "cs", "cs", "ces", "ces", "ces", "cs", "cs", "cs", 
    "cs", "cs", "ces", "ces", "ces", "ces", "cs", "cs", "cs", 
    "cs", "cs", "cs", "ces", "ces", "ces", "ces", "ces", "ces"
    )), row.names = c(NA, -346L), class = c("tbl_df", "tbl", 
"data.frame"))

标签: rggplot2

解决方案


这比最初看起来要难一些,因为 x 轴的顺序在两个方面是不同的。如果我们希望根据两个方面的频率进行排序,我们将需要按 x 轴和分面变量的交互频率进行排序,然后通过使其仅显示 x 轴部分来欺骗 x 轴交互变量名称:

dados %>%
  group_by(ortografia, tipo) %>%
  summarize(frequencia = length(which(epentese == "0")) /
                         length(which(epentese == "1"))) %>%
  ungroup() %>%
  mutate(tipo2 = interaction(tipo, ortografia)) %>%
  mutate(tipo2 = forcats::fct_reorder(tipo2, -frequencia)) %>%
  group_by(across(everything())) %>%
  summarize(epentese = c("0", "1")) %>%
  mutate(frequencia = ifelse(epentese == "0", frequencia, 1 - frequencia)) %>%
  ungroup() %>%
  ggplot(aes(x = tipo2, y = frequencia, fill = epentese))+
  geom_col(position = position_fill(reverse = TRUE))+
  geom_text(aes(label = if_else(epentese == "0" & frequencia != 0, 
                                scales::percent(frequencia, accuracy = 1), "")), 
            vjust = 0, nudge_y = .01) +
  scale_y_continuous(labels = scales::percent) +
  scale_x_discrete(labels = function(x) substr(x, 1, 2)) +
  facet_grid(~ortografia, space = "free_x", scales = "free_x") +
  labs(title = "Epenthesis rates by ortographic pattern and cluster type", 
       subtitle = "Orthographic Pattern") +
  theme(plot.title = element_text(hjust = 0.5)) +
  theme(plot.subtitle = element_text(hjust = 0.5)) +
  xlab("Cluster Type") + 
  ylab("Frequency")

在此处输入图像描述


推荐阅读