Valeu, 

O que o Cid mandou ficou bem proximo mesmo. Agora, eu fiquei olhando umas coisas no código e não consigo entender umas coisas, por exemplo o que seria o ..prop.. e o  ..x..? Com frequência eu procuro quais os possíveis valores que o stat pode receber e eu so vejo o stat = "count" ou uma função definida pelo usuário. Outra coisa que acho bem difícil é que com o ggplot muitos graficos não tem a cara do desejado no final nas primeiras linhas de comando. Por exemplo, no recomendado pelo Cid, se eu rodar somente as 3 primeiras linhas... fica muito esquisito ainda. 

Por ultimo, nesse codigo do Cid, como eu faria pra tirar os níveis das categorias da Satisfação do eixo x já que estão na legenda do fill?
 
Pedro Brasil


Em ter., 21 de dez. de 2021 às 15:39, Cid Póvoas por (R-br) <r-br@listas.c3sl.ufpr.br> escreveu:

Adicionei umas coisas

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(round(..prop..,2)),
                 y= ..prop.. ), stat= "count", vjust = -.5,
            size = 3) +
  theme_bw(15)+
  theme(axis.text.x= element_text(angle=45, size = 10, hjust=1),
        legend.position = "top",
        strip.background = element_blank(),
        panel.grid.major.x = element_blank(),
        panel.grid.minor.x = element_blank(),
        panel.grid.minor.y = element_blank(),
        #panel.grid.major.y = element_line(linetype=2, size=1),
        panel.grid.minor =  element_blank(),
        panel.grid.major = element_blank(),
        legend.title = element_blank()) +
  labs(y = "Percent", fill="Satisfaction") +
  #facet_grid(~Visit+Intervention) +
  facet_wrap(~Visit+Intervention,strip.position="top",ncol=10)+
  scale_y_continuous(labels = scales::percent)+
  scale_fill_manual(values = ramp(5),labels=levels(a$Satisfaction))

 

Cid Edson Mendonça Póvoas

Engenheiro Agrônomo - Data Scientist 
CREA : 051984991-4
Técnico em Segurança do Trabalho 
Nº: 0012669/BA
Tel: +55 73 99151-9565


Em ter., 21 de dez. de 2021 às 14:54, Felipe Barletta por (R-br) <r-br@listas.c3sl.ufpr.br> escreveu:
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@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@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.
_______________________________________________
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.