[R-br] ggplot2 geom_bar() argumento fill não retorna legendau

Cid Póvoas cidedson em gmail.com
Qua Maio 22 08:33:34 -03 2024


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 em 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.brasil em 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 em 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.
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20240522/c5aea41d/attachment.htm>


Mais detalhes sobre a lista de discussão R-br