[R-br] ggplot2 geom_bar() argumento fill não retorna legendau
Pedro Emmanuel Alvarenga Americano do Brasil
emmanuel.brasil em gmail.com
Ter Maio 21 17:36:58 -03 2024
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
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20240521/8384ba20/attachment.htm>
Mais detalhes sobre a lista de discussão R-br