11.3 Pacotes Gráficos

11.3.1 graphics

O sistema básico de gráficos do está implementado no pacote {graphics}. Ele é carregado quando iniciamos o R. Veja a saída da função sessionInfo() para verificar nas informações de sua sessão os pacotes carregados. Para ver exemplos de gráficos básicos digite demo("graphics") e library(help = "graphics") para listar as funções disponíveis no {graphics}.

# lista de funções do pacote graphics
library(help = "graphics")
# exemplos de gráficos
demo("graphics")

Um exemplo simples de uso da função graphics::plot() é mostrado abaixo:

with(
  sulbr_md,
  plot(x = alt, y = tmax_med)
)

Para ilustrar os diferentes sistemas gráficos disponíveis no , vamos mostrar como gerar este mesmo gráfico usando o sistema {grid}, {lattice} e {ggplot2}.

11.3.2 grid

O sistema {grid} também faz parte da distribuição básica do , mas o pacote precisa ser carregado (library(grid))

library(grid)
## define tamanho da região para plot (viewport)
pushViewport(plotViewport(c(5, 4, 2, 2)))
## define intervalos de variação das escalas x e y
pushViewport(
  dataViewport(
    xData = sulbr_md$alt,
    yData = sulbr_md$tmed
  )
)
## retângulo em torno da região do plot
grid.rect()
## eixos x e y
grid.xaxis()
grid.yaxis()
## labels dos eixos x e y
grid.text("Altitude (m)", y = unit(-3, "lines"))
grid.text("Temperatura (°C)", x = unit(-3, "lines"), rot = 90)
## símbolos dos dados
grid.points(
  x = sulbr_md$alt,
  y = sulbr_md$tmed,
  name = "dataSymbols"
)

11.3.3 lattice

É baseado no sistema grid e os gráficos são armazenados como variáveis (objetos que podem ser salvos). Isto possibilita plotar, fazer alterações e atualizações no objeto.

Um grande atrativo do {lattice} são os gráficos multipainel para análise de dados multivariados.

# exemplo lattice
library(lattice)
# interface usando fórmula
 xyplot(tmed ~ alt, data = sulbr_md)

11.3.4 ggplot2

Assim como lattice também foi construído baseado no sistema grid. É um sistema poderoso de gráficos que torna mais fácil a produção de gráficos complexos com multicamadas. Usa os aspectos bons de ambos sistemas base e lattice. O principal fator da popularidade do {ggplot2} é o seu modelo mental mais claro e ser altamente customizável, apesar de um processamento mais lento.

## exemplo ggplot2
library(ggplot2)
 qplot(x = alt, y = tmed, data = sulbr_md)

11.3.5 Terminologia: funções de alto e baixo nível

Funções de alto nível produzem um gráfico completo. Por exemplo:

# exemplo função gráfica de alto nível
plot(x1, y1, las = 1)

Funções de baixo nível adicionam saídas a um plot existente, logo vão sobrepor o que estiver na tela gráfica. Considere o gráfico da onda abaixo:

# exemplo função gráfica de alto nível
plot(x1, y1, las = 1)

As expressões a seguir adicionam pontos, linhas de grade, uma linha horizontal de referência em y = 0, título e uma borda ao gráfico básico gerado no código anterior. Todas estas funções são de baixo nível.

plot(x1, y1, las = 1)
# exemplo funções gráficas de baixo nível
points(x1, y1,                    # adiciona pontos com cor e símbolo
       col = 2,                   # cor do ponto
       pch = 20,                  # tipo (círculo preenchido)
       cex = 0.8)                 # tamanho relativo do símbolo (default =1) 
grid()                            # adiciona linhas de grade
abline(h = 0,col = "gray")        # linhade referência (y = 0)
title(main = "Gráfico a partir de funções de baixo nível")      # adiciona título ao gráfico
box(lwd = 2)                      # adiciona retângulo em torna da região do gráfico, com linha mais larga

Ambos os Sistemas Básico e de Grade fornecem funções gráficas de baixo nível. O Sistema de Grade também oferece funções para interação com os gráficos de saída (como a edição, extração, remoção de partes de uma imagem). A Maioria das funções em pacotes gráficos produz gráficos completos e geralmente oferecem gráficos específicos para um tipo de análise ou campo de estudo.

Neste capítulo será dado foco a produção de gráficos usando o Sistema Básico do .