Gostaria de uma ajuda, pois a função forcats::fct_reorde não esta funcionando
imdb_base %>%
select( ator_1,lucro)%>%
group_by(ator_1)%>%
summarise(Lucro = sum(lucro,na.rm = T))%>%
top_n(10,Lucro)%>%
mutate(Lucro = scales::dollar(Lucro, scale = 1e-6, prefix = "R$ ",suffix = “M”))%>%
arrange(Lucro)%>%
mutate(ator_1 = forcats::fct_reorder(ator_1,Lucro))%>%
ggplot()+
geom_col(aes( y = ator_1, x= Lucro, ),show.legend = T)+
geom_label(aes(y = ator_1, x = Lucro ,label = Lucro,))+
xlab(“Lucro obtido”) +
ylab(“Atores”)+
theme(axis.title = element_text(size = 16),
axis.text = element_text(size = 12))
clente
Novembro 2, 2020, 5:14pm
2
leandrosolo2011,
Qual é o erro? O único erro que encontrei no seu código é o excesso de algumas vírgulas (x= Lucro,
e label = Lucro,
). Recomendo também dar uma olhadinha no guia de estilo do Tidyverse: https://style.tidyverse.org/
library(tidyverse)
imdb_base <- readr::read_rds("~/Downloads/imdb.rds")
imdb_base %>%
mutate(lucro = receita - orcamento) %>%
select(ator_1, lucro) %>%
group_by(ator_1) %>%
summarise(Lucro = sum(lucro, na.rm = TRUE)) %>%
top_n(10, Lucro) %>%
mutate(Lucro = scales::dollar(Lucro, scale = 1e-6, prefix = "R$ ", suffix = "M")) %>%
mutate(ator_1 = fct_reorder(ator_1, Lucro)) %>%
ggplot(aes(y = ator_1, x = Lucro)) +
geom_col(show.legend = TRUE) +
geom_label(aes(y = ator_1, x = Lucro, label = Lucro)) +
xlab("Lucro obtido") +
ylab("Atores") +
theme(
axis.title = element_text(size = 16),
axis.text = element_text(size = 12)
)
Created on 2020-11-02 by the reprex package (v0.3.0)
Oi, o objetivo do código seria criar um gráfico de barras horizontais, porem mesmo utilizando a função fct_reoder o gráfico continua vertical.
clente
Novembro 2, 2020, 6:25pm
4
Observe que, então, os eixos estão trocados. Não tem como o eixo X ser o lucro e o Y ser os atores: a altura de cada barra está indo até um nome. Por isso o fct_reorder()
não está te ajudando.
Você precisa trocar os eixos e usar coord_flip()
para transformar colunas em barras.
library(tidyverse)
imdb_base <- readr::read_rds("~/Downloads/imdb.rds")
dollar <- scales::dollar_format(scale = 1e-6, prefix = "R$ ", suffix = "M")
imdb_base %>%
mutate(lucro = receita - orcamento) %>%
select(ator_1, lucro) %>%
group_by(ator_1) %>%
summarise(Lucro = sum(lucro, na.rm = TRUE)) %>%
top_n(10, Lucro) %>%
mutate(
ator_1 = fct_reorder(ator_1, Lucro),
Label = dollar(Lucro)
) %>%
ggplot(aes(x = ator_1, y = Lucro)) +
geom_col(show.legend = TRUE) +
scale_y_continuous(labels = dollar) +
coord_flip() +
geom_label(aes(label = Label)) +
xlab("Atores") +
ylab("Lucro obtido") +
theme(
axis.title = element_text(size = 16),
axis.text = element_text(size = 12)
)
Created on 2020-11-02 by the reprex package (v0.3.0)
Muito, muito obrigado, realmente não atentei a este detalhe.