[R-br] ggplot + geom_bar
Felipe Barletta
felipe.e.barletta em gmail.com
Ter Dez 21 14:54:08 -03 2021
Prezado Pedro,
Talvez esse código lhe sirva (com alguns ajustes de perfumaria nas legendas
e eixos)
###########################################################################
library(ggplot2)
ggplot(a, aes( x = Satisfaction, group=Visit)) +
geom_bar(aes(y = ..prop.., fill = factor(..x..)), stat="count") +
geom_text(aes( label = scales::percent(..prop..),
y= ..prop.. ), stat= "count", vjust = -.5,
size = 2.5 ) +
theme(axis.text.x= element_text(angle=45, size = 8),
legend.title=element_blank()) +
labs(y = "Percent", fill="Satisfaction") +
facet_grid(~Visit+Intervention) +
scale_y_continuous(labels = scales::percent)
Em ter., 21 de dez. de 2021 às 12:02, Pedro Emmanuel Alvarenga Americano do
Brasil por (R-br) <r-br em listas.c3sl.ufpr.br> escreveu:
> Amigos de R,
>
> Estou num esforço de tentar aprender a usar o tidyverse. Gostaria de
> manter a consistência de um relatório que estou trabalhando com gráficos do
> ggplot. Mas há um particular gráfico de barras que não estou conseguindo
> fazer. Alguém pode me ajudar a fazer o gráfico no ggplot + geom_bar? Segue
> abaixo um exemplo como eu faria com o graphics.
>
> # Preparando os dados simulados
> tab <- array(c(92,74,11,0,0,94,98,10,1,0,
> 83,56,13,2,0,96,68,9,7,0,
> 46,28,7,1,1,54,59,16,7,0,
> 26,20,3,0,0,36,32,16,4,0,
> 8,2,0,0,0,3,3,1,0,0), c(5, 2, 5))
> dimnames(tab) <- list(c("Definitively satisfied",
> "Satisfied",
> "Little satisfied",
> "Little dissatisfied",
> "Definitively dissatisfied"),
> c("Surface 1","Surface 2"),
> c(1:5))
> names(dimnames(tab)) <- c("Satisfaction","Intervention","Visit")
> tab
> a <- epitools::expand.table(tab)
> a$Visit <- paste0("Visit ", a$Visit)
> head(a)
>
> # Fazendo as tabelas ja com os percentuais
> x <- sapply(unique(a$Visit), function(i)
> prop.table(table(a$Satisfaction[a$Visit==i],a$Intervention[a$Visit==i]),2),
> simplify = FALSE)
>
> # Criando o objeto height do barplot
> y <- x[[1]] ; for(i in 2:length(x)) {y <- cbind(y,x[[i]])}
> ramp <- colorRampPalette(c("darkgreen","red"))
>
> # Criando o gráfico
> z <- barplot(y, beside = T, col = ramp(5),
> legend = T,
> args.legend = list(x="top",xpd=NA,inset=-.15,bty="n",cex=.8,
> ncol = 2),
> axisnames = FALSE)
> axis(2, at = seq(0,1,.025),labels = FALSE, tck = -.01)
> text(z[3,], -.005, colnames(y), cex = .5, srt = 35, xpd = NA, adj = 1,
> offset = 5)
> axis(1, at = sapply(seq(0,ncol(z)-2,2),function(i) mean(z[,c(1:2) +
> i])),labels = unique(a$Visit), line = 1.5, tick = FALSE)
> sapply(1:ncol(y), function(i) text(x = z[1:5,i], y = y[1:5,i], labels =
> round(y[1:5,i],2), pos = 3, cex = .5, xpd = NA))
>
> Abraço forte a todos,
> 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/20211221/b159dfcc/attachment.htm>
Mais detalhes sobre a lista de discussão R-br