Stack Overflow em Português Asked on February 7, 2021
Estou trabalhando com o seguinte data frame:
library(tidyverse)
df<- data.frame(Ano=c(2017, 2018,2019,2020), Vagas=c(16, 14, 27, 32), Inscritos=c(70, 107,74,88), Aprovados=c(15,14,17, 12))
df
Ano Vagas Inscritos Aprovados
1 2017 16 70 15
2 2018 14 107 14
3 2019 27 74 17
4 2020 32 88 12
Preciso expressar isso na forma de um gráfico de colunas.
Então, converto para o formato tidy como "gather"
df2<-df %>%
gather(Condicao, n, c(Vagas:Aprovados))
Ano Condicao n
1 2017 Vagas 16
2 2018 Vagas 14
3 2019 Vagas 27
4 2020 Vagas 32
5 2017 Inscritos 70
6 2018 Inscritos 107
7 2019 Inscritos 74
8 2020 Inscritos 88
9 2017 Aprovados 15
10 2018 Aprovados 14
11 2019 Aprovados 17
12 2020 Aprovados 12
Eu gostaria de expressar os dados na forma de colunas lado a lado.
Então uso o geom_col()
com a posição dodge
df2 %>%
ggplot()+
geom_col(aes(Ano, n, fill=Condicao), position="dodge")
Consigo criar os labels usando o geom_label()
:
df2 %>%
ggplot(aes(Ano, Condicao, label = n))+
geom_label(aes(Ano, n, label=n))
No entanto, não consigo juntar ambos da forma correta.
Tentei:
df2 %>%
ggplot()+
geom_col(aes(Ano, n, fill=Condicao), position="dodge")+
geom_label(aes(Ano, n, label=n), position = "dodge")
A minha intenção é que os rótulos estejam ALINHADOS às suas respectivas colunas:
Pode resolver o problema com
aes(Ano, n)
na chamada inicial a ggplot
. Isto simplifica as geom_*
seguintes uma vez que partilham os valores dos eixos.aes(Ano, n, group = Condicao)
.position_dodge(width = 1)
em geom_label
.O gráfico final é o seguinte.
df2 %>%
ggplot(aes(Ano, n, group = Condicao)) +
geom_col(aes(fill = Condicao), position = position_dodge()) +
geom_label(aes(label = n), position = position_dodge(width = 1))
Answered by Rui Barradas on February 7, 2021
Você pode utilizar position = position_dodge(width = 1)
Código:
df2 %>%
ggplot(aes(Ano, n, fill=Condicao))+
geom_bar(stat = 'identity', position="dodge") +
geom_label(aes(Ano, n, label= n), position = position_dodge(width = 1))
Answered by lmonferrari on February 7, 2021
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP