Função forcats::fct_reorde não esta funcionando

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))

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.

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.