[R-br] ggplot + geom_bar
Pedro Emmanuel Alvarenga Americano do Brasil
emmanuel.brasil em gmail.com
Ter Dez 21 16:13:28 -03 2021
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 em 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*
>
> *AnovAgro <http://www.anovagro.com/>*
> *Engenheiro Agrônomo - **Data Scientist*
> *CREA : 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 dez. de 2021 às 14:54, Felipe Barletta por (R-br) <
> r-br em 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 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.
>>>
>> _______________________________________________
>> 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.
>>
> _______________________________________________
> 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/759abdba/attachment.htm>
Mais detalhes sobre a lista de discussão R-br