Apresentações Dinâmicas usando a ferramenta Quarto

Quarto

O Quarto é uma extensão específica para o RStudio que oferece recursos adicionais para facilitar a análise e visualização de dados. Ele foi projetado para melhorar a experiência do usuário ao lidar com conjuntos de dados complexos e para simplificar tarefas comuns de análise de dados.

Vantagens do Quarto

Alguns recursos e funcionalidades do Quarto podem incluir:

  • Visualização Interativa de Dados : O Quarto pode oferecer ferramentas interativas para visualização de dados, permitindo que os usuários explorem seus conjuntos de dados de forma mais dinâmica.

  • Suporte a Markdown: O Quarto pode integrar-se ao Markdown, uma linguagem de marcação simples, permitindo que os usuários criem relatórios e documentos de análise de dados de forma mais fácil e elegante.

  • Integração com Bibliotecas e Pacotes R: O Quarto pode se integrar perfeitamente com várias bibliotecas e pacotes R, permitindo que os usuários acessem uma ampla gama de funcionalidades estatísticas e de visualização.

  • Facilidade de Compartilhamento: Com o Quarto, os usuários podem compartilhar facilmente seus resultados e análises com outras pessoas, seja exportando relatórios ou compartilhando notebooks interativos.

Recursos para Apresentação

O Quarto apresenta várias opções de formatos para criar apresentações. Dentre eles estão:

Para os nossos propósitos, utilizaremos o formato revealjs.

Base de Dados Utilizada

Para a construção de nossos slides utilizaremos a base de dados mtcars. Apresentaremos ela a seguir:

Motor Trend Car Road Tests

Os dados foram extraídos da revista Motor Trend US de 1974 e incluem o consumo de combustível e 10 aspectos da conceção e do desempenho de 32 automóveis.

mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1

Códigos Executáveis

Um código executável é, em geral, um código que é executado pela apresentação. Neste tipo de visualização, o código e o resultado são apresentados no slide.

Para podermos habilitar a apresentação dos códigos, devemos habilitar a vizualização deles na apresentação. Fazemos isto da seguinte forma:

{r, echo = TRUE}

# Linhas de código

Exemplo

library(ggplot2)

ggplot(mtcars, aes(hp, mpg, color = am)) + 
  geom_point() + 
  geom_smooth(formula = y ~ x, method = "loess")

Layout em Modo Coluna

Neste tipo de visualização, os componentes do slide são apresentados um ao lado do outro. Para habilitarmos este tipo de visualização, usamos a seguinte estrutura:

::: columns

::: {.column width="x"}

Título da coluna 1

Alguma coisa

:::

::: {.column width="y"}

Título da coluna 2

Alguma coisa

:::

:::

Em geral, podemos ter quantas colunas desejarmos. Mas é preciso ter cuidado para não colocar quantidade desnecessárias de colunas.

Exemplo

Motor Trend Car Road Tests

Os dados foram extraídos da revista Motor Trend US de 1974 e incluem o consumo de combustível e 10 aspectos da conceção e do desempenho de 32 automóveis.

mpg cyl disp hp wt
Mazda RX4 21.0 6 160 110 2.620
Mazda RX4 Wag 21.0 6 160 110 2.875
Datsun 710 22.8 4 108 93 2.320
Hornet 4 Drive 21.4 6 258 110 3.215
Hornet Sportabout 18.7 8 360 175 3.440
Valiant 18.1 6 225 105 3.460

Tabsets

Tabsets são formas de vizualização baseados em etiquetas. O intuito de um tabset é possibilitar uma vizualização mais aprofundada dos dados sem que haja perda de qualidade das imagens, tabelas e etc.

Um tabset tem a seguinte estrutura:

::: panel-tabset

### Etiqueta 1

Conteúdo

### Etiqueta 2

Conteúdo

:::

Em geral, um tabset pode ter várias etiquetas. Mas é importante salientar que para uma visualização ótima do conteúdo, utilize o menor número possível de etiquetas que puder.

Exemplo de Tabset

mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4
Datsun 710 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258.0 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3 2
Valiant 18.1 6 225.0 105 2.76 3.460 20.22 1 0 3 1
Duster 360 14.3 8 360.0 245 3.21 3.570 15.84 0 0 3 4
Merc 240D 24.4 4 146.7 62 3.69 3.190 20.00 1 0 4 2
Merc 230 22.8 4 140.8 95 3.92 3.150 22.90 1 0 4 2
Merc 280 19.2 6 167.6 123 3.92 3.440 18.30 1 0 4 4
Merc 280C 17.8 6 167.6 123 3.92 3.440 18.90 1 0 4 4
Merc 450SE 16.4 8 275.8 180 3.07 4.070 17.40 0 0 3 3
Merc 450SL 17.3 8 275.8 180 3.07 3.730 17.60 0 0 3 3
Merc 450SLC 15.2 8 275.8 180 3.07 3.780 18.00 0 0 3 3
Cadillac Fleetwood 10.4 8 472.0 205 2.93 5.250 17.98 0 0 3 4
Lincoln Continental 10.4 8 460.0 215 3.00 5.424 17.82 0 0 3 4
Chrysler Imperial 14.7 8 440.0 230 3.23 5.345 17.42 0 0 3 4
Fiat 128 32.4 4 78.7 66 4.08 2.200 19.47 1 1 4 1
Honda Civic 30.4 4 75.7 52 4.93 1.615 18.52 1 1 4 2
Toyota Corolla 33.9 4 71.1 65 4.22 1.835 19.90 1 1 4 1
Toyota Corona 21.5 4 120.1 97 3.70 2.465 20.01 1 0 3 1
Dodge Challenger 15.5 8 318.0 150 2.76 3.520 16.87 0 0 3 2
AMC Javelin 15.2 8 304.0 150 3.15 3.435 17.30 0 0 3 2
Camaro Z28 13.3 8 350.0 245 3.73 3.840 15.41 0 0 3 4
Pontiac Firebird 19.2 8 400.0 175 3.08 3.845 17.05 0 0 3 2
Fiat X1-9 27.3 4 79.0 66 4.08 1.935 18.90 1 1 4 1
Porsche 914-2 26.0 4 120.3 91 4.43 2.140 16.70 0 1 5 2
Lotus Europa 30.4 4 95.1 113 3.77 1.513 16.90 1 1 5 2
Ford Pantera L 15.8 8 351.0 264 4.22 3.170 14.50 0 1 5 4
Ferrari Dino 19.7 6 145.0 175 3.62 2.770 15.50 0 1 5 6
Maserati Bora 15.0 8 301.0 335 3.54 3.570 14.60 0 1 5 8
Volvo 142E 21.4 4 121.0 109 4.11 2.780 18.60 1 1 4 2
library(ggplot2)
ggplot(mtcars, aes(hp, mpg, color = am)) +
  geom_point() +
  geom_smooth(formula = y ~ x, method = "loess")

Lista Incrementada

Este tipo de visualização tem como objetivo apresentar listas incrementando elas em várias iterações. Uma lista incrementada é ótima quando se tem a necessidade de obter um maior foco dos ouvintes em cada item listado. Para construir uma lista incrementada, temos a seguinte estrutura:

::: incremental

- item 1

- item 2

:::

Exemplo

Fragmentos

A estrutura de fragmento pode ser vista como uma extensão da lista incrementada. Ao fragmentar componentes, podemos colocar variadas formas de animação para a aparição dos itens. Para construir um fragmento, temos a seguinte estrutura:

::: {.fragment estillo de animacao}

Texto

:::

Alguns Tipos de Animação

Animação
.fade-in
.fade-up
.fade-left
.fade-in-then-semi-out
.strike
.highlight-red

Exemplos

Fade in

Slide up while fading in

Slide left while fading in

Fade in then semi out

Strike

Highlight red

Ênfase em Códigos

Este tipo de vizualização nos permite dar ênfase em uma ou mais linhas de código. Caso estejamos apresentando algum código mas precisamos focar em um pedaço específico dele, podemos dar ênfase a esse pedaço do código. Para isto, temos a seguinte estrutura:

{.python code-line-numbers="linhas"}

codigo

Seleção de Linhas

Para selecionar as linhas, temos duas formas. A seguir, estão tabeladas ambas as formas:

Estilo Descrição
x-y Enfâse nas linhas entre x e y, inclusive x e y
x|y|z Ênfase somente nas linhas x, y e z
x-y|w|z Mistura entre as duas primeiras

Exemplo

import numpy as np
import matplotlib.pyplot as plt

r = np.arange(0, 2, 0.01)
theta = 2 * np.pi * r
fig, ax = plt.subplots(subplot_kw={'projection': 'polar'})
ax.plot(theta, r)
ax.set_rticks([0.5, 1, 1.5, 2])
ax.grid(True)
plt.show()

Neste exemplo, fomos da linha 4 a 6, pulamos para a linha 8 e pulamos para a linha 10.

Ambiente Matemático - LateX

Também podemos utilizar comandos do LateX para podermos escrever funções, fórmulas, equações e etc. Para isto, utilizamos a seguinte estrutura:

```{=tex}

comandos

```

Exemplo

\begin{align}
f(x) = \dfrac{\Gamma\left(\dfrac{v + 1}{2} \right)}{\sqrt{v\pi}\Gamma\left(\dfrac{v}{2}\right)} \left(1 + \dfrac{x^2}{v}\right)^{-\left(\dfrac{v + 1}{2}\right)}
\end{align}
\[\begin{align} f(x) = \dfrac{\Gamma\left(\dfrac{v + 1}{2} \right)}{\sqrt{v\pi}\Gamma\left(\dfrac{v}{2}\right)} \left(1 + \dfrac{x^2}{v}\right)^{-\left(\dfrac{v + 1}{2}\right)} \end{align}\]

Neste exemplo, construímos a forma da distribuição t com v graus de liberdade.

Plano de Fundo

Para o plano de fundo, podemos usar cores, imagens e vídeos. Para cores, podemos utilizar todos os formatos de cores aceitos pelo CSS. Em geral, mudamos a cor da seguinte forma: ## titulo da pagina {background="cor"}.

Já para imagens e vídeos, podemos usar os seguintes tipos de configurações:

  • An image: background-image

  • A video: background-video

  • An iframe: background-iframe

na seguinte forma ## titulo da pagina {configuracao="imagem/video"}.

Obs: Considerar gif como imagem.

Exemplo de Cor

Esta página esta com uma cor cinza.

Usamos o código hexadecimal #43464B para alcançar esta cor.

Exemplo de Mídia

Slides Interativos

Quando se tem gráficos ou qualquer outro tipo de vizualização que se pode modificar em tempo real, o slide se torna interativo. Para este caso, não há uma estrutura ou configuração a ser feita. Toda a interatividade é feita nos códigos do R.

Exemplo 1

Exemplo 2