Salve Turminha, Valeu pela ajuda. Entendi que a questão não era exatamente no grafico mas nos dados que estavam entrando no grafico. Depois de olhar o primeiro codigo do CID, eu cheguei a quase a mesma solução, sendo a diferença na definição dos dados, assim:
# o .drop = FALSE fez a diferença porque manteve as categorias com contagem zero dados_prop <- df %>% group_by(Visitas, Classificacao, .drop = FALSE) %>% summarise(count = n()) %>% mutate(prop = count / sum(count)) ggplot(dados_prop, aes(x = Visitas, y = prop, fill = Classificacao)) + geom_bar(stat = "identity", position = "dodge") + scale_fill_manual(values = ramp(6)) + labs(x = "", y = "Proporção", fill = "Classificação") + scale_y_continuous(labels = scales::percent, limits = c(0,1)) + theme_classic()+ theme(legend.position = "top") Valeu valeu... que aforça esteja sempre com voces. Pedro Brasil Em qua., 22 de mai. de 2024 às 08:33, Cid Póvoas <[email protected]> escreveu: > > Acredito que assim fica melhor > > > dados_prop <- df %>% > count(Visitas, Classificacao) %>% > complete(Visitas, Classificacao, fill = list(n = 0)) %>% > group_by(Visitas) %>% > mutate(prop = n / sum(n)) > > ggplot(dados_prop, aes(x = Visitas, y = prop, fill = Classificacao)) + > geom_bar(stat = "identity", position = position_dodge(), color="black") + > scale_y_continuous(limits = c(0, 1), labels = scales::percent_format()) + > labs( > x = "", > y = "Proporção", > fill = "Classificação" > ) + > scale_fill_manual( > values = ramp(6), > labels = c("Não informado", "Definitivamente insatisfeito", > "Insatisfeito", > "Nem satisfeito, nem insatisfeito", "Satisfeito", > "Definitivamente satisfeito") > ) + > theme_classic() + > theme(legend.position = "top") > > *Cid Edson Mendonça Póvoas* > > *Engenheiro Agrônomo - **Data Scientist* > *CREA-BA: 051984991-4* > *Técnico em Segurança do Trabalho * > *Nº: **0012669/BA* > *Tel: +55 73 99151-9565* > *Lattes : *http://lattes.cnpq.br/2303498368142537 > *LinkedIn :* http://br.linkedin.com/in/cidedson/ > *Whatsapp :* https://wa.me/5573991519565 > > > Em ter., 21 de mai. de 2024 às 17:37, Pedro Emmanuel Alvarenga Americano > do Brasil por (R-br) <[email protected]> escreveu: > >> Turminha, >> >> Só pra ficar mais fácil de entender, se fosse no graphics, ficaria mais >> ou menos assim: >> barplot(prop.table(tab,2), >> ylim = c(0,1), >> beside = T, >> legend.text = c("Não informado","Definitivamente >> insatisfeito","Insatisfeito","Nem satisfeito, nem >> insatisfeito","Satisfeito","Definitivamente satisfeito"), >> col = ramp(6), >> args.legend = list(fill = ramp(6), x = "top", bty = "n", inset = >> -.15, xpd = NA, ncol = 2)) >> >> Pedro Brasil >> >> >> Em ter., 21 de mai. de 2024 às 17:06, Pedro Emmanuel Alvarenga Americano >> do Brasil <[email protected]> escreveu: >> >>> Salve salve irmãos de R, >>> >>> Estou batendo a cabeça pra acertar um gráfico de barras. Eu gostaria que >>> houvesse um grupo de 6 barras (categorias) por visita, ou seja, em cada >>> janela de visita houvesse 6 barras. Cada barra de uma cor pra poder fazer a >>> legenda correspondente. E as barras precisariam corresponder com as >>> frequências das categorias nas visitas. Acho que o problema é que há >>> algumas categorias que são zero, mas elas deveriam aparecer no gráfico e na >>> legenda mesmo assim. Mas quando eu consigo fazer as frequências, as cores >>> ficam ruins e quando eu consigo aproximar as cores as frequências vão >>> embora. O mais próximo que consegui foi assim: >>> >>> #Simulando o banco >>> tab <- array(c(0,0,0,1,34,46,0,0,0,2,24,19,0,0,1,7,6,2), c(6,3)) >>> dimnames(tab) <- list(c("Não informado","Definitivamente >>> insatisfeito","Insatisfeito","Nem satisfeito, nem >>> insatisfeito","Satisfeito","Definitivamente satisfeito"), c("Visita 2", >>> "Visita 3", "Visita 4")) >>> names(dimnames(tab)) <- c("Classificacao", "Visitas") >>> tab >>> df <- epitools::expand.table(tab) >>> df >>> levels(df$Classificacao) >>> prop.table(table(df$Classificacao, df$Visitas),2) >>> >>> # O grafico >>> ramp <- colorRampPalette(c("red","green")) >>> >>> library(tidyverse) >>> ggplot(df, >>> aes(x = Classificacao)) + >>> facet_grid(cols = vars(Visitas)) + >>> geom_bar(aes(y = after_stat(prop), >>> fill = Classificacao, >>> group = 1)) + >>> scale_y_continuous(labels = scales::percent) + >>> labs(y = "Percentual da satisfação", x = "", fill = "Satisfação") + # >>> scale_x_discrete(drop = FALSE) + >>> scale_fill_discrete(drop = FALSE) + >>> scale_fill_manual(values = ramp(length(levels(df$Classificacao)))) # >>> >>> Abraço forte e que a força esteja sempre com voces. >>> >>> Pedro Brasil >>> >> _______________________________________________ >> R-br mailing list >> [email protected] >> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br >> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça >> código mínimo reproduzível. >> >
_______________________________________________ R-br mailing list [email protected] https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
