Capítulo 7 Programando com o ggplot2

Você chegou ao fim da versão online do livro Visualização de Dados com o R. O conteúdo integral da obra pode ser adquirido na loja da Amazon como ebook ou livro impresso. A compra do livro é uma ótima maneira de suportar este e outros projetos do autor.

7.1 Criando figuras via funções

Você chegou ao fim da versão online do livro Visualização de Dados com o R. O conteúdo integral da obra pode ser adquirido na loja da Amazon como ebook ou livro impresso. A compra do livro é uma ótima maneira de suportar este e outros projetos do autor.

7.2 Testando temas

Você chegou ao fim da versão online do livro Visualização de Dados com o R. O conteúdo integral da obra pode ser adquirido na loja da Amazon como ebook ou livro impresso. A compra do livro é uma ótima maneira de suportar este e outros projetos do autor.

7.3 Testando paletas

Você chegou ao fim da versão online do livro Visualização de Dados com o R. O conteúdo integral da obra pode ser adquirido na loja da Amazon como ebook ou livro impresso. A compra do livro é uma ótima maneira de suportar este e outros projetos do autor.

7.4 Testando temas e paletas

Você chegou ao fim da versão online do livro Visualização de Dados com o R. O conteúdo integral da obra pode ser adquirido na loja da Amazon como ebook ou livro impresso. A compra do livro é uma ótima maneira de suportar este e outros projetos do autor.

7.5 Exercícios

A solução dos exercícios de final de capítulo pode ser compilada localmente com o comando vdr::exercises_compile_solution(). Alternativamente, podes baixar uma versão do arquivo compilado no site do livro10.


Q.1

O código abaixo irá criar um gráfico simples com os preços da ação da empresa Engie (EGIE.SA).

library(ggplot2)

df_yf <- yfR::yf_get("EGIE3.SA", 
              first_date = "2018-01-01")

p <- ggplot(
  df_yf,
  aes(x = ref_date, y = price_adjusted)
) + geom_line()

Após a execução do código acima, use as ferramentas de programação do R para testar os seguintes temas da figura:


Q.2

Considere o gráfico template gerado pelo código a seguir:

library(ggplot2)

p <- ggplot(
  yfR::yf_get("USIM5.SA", first_date = "2018-01-01"),
  aes(x = ref_date, y = price_adjusted)
) + 
  geom_line() +
  labs(subtitle = "SUBTITLE",
       caption = "CAPTION")

Pacote hrbrthemes oferece uma grande variedade de temas adicionais a serem utilizados em um gráfico do ggplot2. Todas funções de tema possum um padrão bem distinto, onde o nome da função inicia com o texto theme_. Baseado nesta informação e também no uso da função ls, podemos descobrir o nome de todas as funções de tema do hrbrthemes com o código abaixo:

library(hrbrthemes)

all_fcts <- ls("package:hrbrthemes")

idx <- all_fcts |> 
  stringr::str_which("theme_")

theme_fcts <- all_fcts[idx]

Com base no código anterior:

  1. use as ferramentas de programação do R para, de forma automática, aplicar todos os temas anteriores para o gráfico gerado acima.
  2. agrege todos os gráfico em um único arquivo com função cowplot::plot_grid
  3. salve a figura resultante como hrbrthemes-demo.png, pasta documentos (atalho com ~). Defina o tamanho da figura como height = 20cm e width = 30cm. DICA: Caso a figura gravada sair com fundo transparente, abra-a em um navegador da web, tal como o Chrome ou firefox.

Q.3

Considere o gráfico criado de barras criado com o código abaixo:

library(ggplot2)

tickers <- c("PETR3.SA", "ITSA3.SA",
             "GRND3.SA", "GGBR3.SA",
             "EGIE3.SA", "USIM5.SA")

df_yf <- yfR::yf_get(tickers, 
                     "2020-01-01") 

df_tab <- df_yf |>
  dplyr::group_by(ticker) |>
  dplyr::summarise(
    total_ret = dplyr::last(cumret_adjusted_prices) - 1
    ) |>
  dplyr::arrange(total_ret)

p <- ggplot(df_tab, aes(x = reorder(ticker, total_ret),
                          y = total_ret,
                          fill = total_ret)) +
  geom_col(color = "white") + 
  theme_minimal() +
  coord_flip() + 
  labs(title = stringr::str_glue(
    "Performance de {length(tickers)} Ações Selecionadas"
    ),
       y = "Retorno Total",
       x = "Ticker")

Com base no código anterior, use as ferramentas de programação do R para, de forma automática, aplicar todas as possíveis combinações entre os temas:

  • ggplot2::theme_light
  • hrbrthemes::theme_modern_rc
  • ggtech::theme_airbnb_fancy()

e as paletas do colorspace

  • Red-Green
  • Green-Brown
  • Tropic

Adicionalmente:

  1. agrege todos os gráfico em um único arquivo com função cowplot::plot_grid
  2. salve a figura resultante como themes-and-palettes-demo.png, pasta documentos (atalho com ~). Defina o tamanho da figura como height = 30cm e width = 60cm. DICA: Caso a figura gravada sair com fundo transparente, abra-a em um navegador da web, tal como o Chrome ou firefox.