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) <r-br@listas.c3sl.ufpr.br> 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 <emmanuel.bra...@gmail.com> 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 > R-br@listas.c3sl.ufpr.br > 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 R-br@listas.c3sl.ufpr.br 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.