Pular para o conteúdo principal
Documentos
Compartir
LinkedIn
Facebook
Twitter
Copy
Gerenciamento de dados em REntrada de dados em RGráficos em RDocumentação RInterface REstatísticas em R

Gráficos com ggplot2

O pacote ggplot2</a >, criado por Hadley Wickham, oferece uma linguagem gráfica poderosa para a criação de gráficos elegantes e complexos. Sua popularidade na comunidade R explodiu nos últimos anos. Originalmente baseado no livro de Leland Wilkinson The Grammar of Graphics</a >, o ggplot2 permite que você crie gráficos que representem dados numéricos e categóricos univariados e multivariados de maneira simples. O agrupamento pode ser representado por cor, símbolo, tamanho e transparência. A criação de parcelas de treliça (ou seja, condicionamento) é relativamente simples.

Dominar a linguagem ggplot2 pode ser um desafio (consulte a seção Indo além abaixo para obter recursos úteis). Há uma função auxiliar chamada qplot() (para plotagem rápida) que pode ocultar grande parte dessa complexidade ao criar gráficos padrão.

qplot()

A função qplot() pode ser usada para criar os tipos de gráficos mais comuns. Embora não exponha todo o poder do ggplot, ele pode criar uma grande variedade de gráficos úteis. O formato é o seguinte:

qplot(x, y, data=, color=, shape=, size=, alpha=, geom=, method=, 
  formula=, facets=, xlim=, ylim= xlab=, ylab=, main=, sub=)

onde estão as opções:

   
opção descrição
alfa Transparência alfa para elementos sobrepostos expressa como uma fração entre 0 (transparência total) e 1 (opacidade total)
cor, forma, tamanho, preenchimento Associa os níveis da variável à cor, forma ou tamanho do símbolo. Para gráficos de linha, a cor associa os níveis de uma variável à cor da linha. Para gráficos de densidade e de caixa, o preenchimento associa as cores de preenchimento a uma variável. As legendas são desenhadas automaticamente.
dados Especifica um quadro de dados
facets Cria um gráfico de treliça especificando variáveis de condicionamento. Seu valor é expresso como rowvar ~ colvar. Para criar gráficos de treliça com base em uma única variável de condicionamento, use rowvar</em>. ou .colvar)
geom Especifica os objetos geométricos que definem o tipo de gráfico. A opção geom é expressa como um vetor de caracteres com uma ou mais entradas. Os valores geom incluem "point" (ponto), "smooth" (suave), "boxplot" (gráfico de caixa), "line" (linha), "histogram" (histograma), "density" (densidade), "bar" (barra) e "jitter" (tremor).
principal, secundário Vetores de caracteres que especificam o título e o subtítulo
método, fórmula Se geom="smooth", uma linha de ajuste de loess e limites de confiança serão adicionados por padrão. Quando o número de observações é maior que 1.000, um algoritmo de suavização mais eficiente é empregado. Os métodos incluem "lm" para regressão, "gam" para modelos aditivos generalizados e "rlm" para regressão robusta. O parâmetro da fórmula fornece a forma do ajuste. Por exemplo, para adicionar linhas de regressão linear simples, você especificaria geom="smooth", method="lm", formula=yx. Alterar a fórmula para y</del>poly(x,2) produziria um ajuste quadrático. Observe que a fórmula usa as letras x e y, não os nomes das variáveis. Para method="gam", certifique-se de carregar o pacote mgcv. Para method="rml", carregue o pacote MASS.
x, y Especifica as variáveis colocadas nos eixos horizontal e vertical. Para gráficos univariados (por exemplo, histogramas), omita y
xlab, ylab Vetores de caracteres que especificam os rótulos dos eixos horizontal e vertical
xlim,ylim Vetores numéricos de dois elementos que fornecem os valores mínimo e máximo para os eixos horizontal e vertical, respectivamente.

Observações:

  • No momento, o ggplot2 não pode ser usado para criar gráficos 3D ou gráficos em mosaico.
  • Use I(valor) para indicar um valor específico. Por exemplo, size=z faz com que o tamanho dos pontos ou linhas plotados seja proporcional aos valores de uma variável z. Por outro lado, size=I(3) define cada ponto ou linha como três vezes o tamanho padrão.

Aqui estão alguns exemplos usando dados automotivos (quilometragem do carro, peso, número de marchas, número de cilindros etc.) contidos no quadro de dados mtcars.

# ggplot2 examples
library(ggplot2)

# create factors with value labels
mtcars$gear <- factor(mtcars$gear,levels=c(3,4,5),
   labels=c("3gears","4gears","5gears"))
mtcars$am <- factor(mtcars$am,levels=c(0,1),
   labels=c("Automatic","Manual"))
mtcars$cyl <- factor(mtcars$cyl,levels=c(4,6,8),
   labels=c("4cyl","6cyl","8cyl"))
# Kernel density plots for mpg
# grouped by number of gears (indicated by color)
qplot(mpg, data=mtcars, geom="density", fill=gear, alpha=I(.5),
   main="Distribution of Gas Milage", xlab="Miles Per Gallon",
   ylab="Density")
# Scatterplot of mpg vs. hp for each combination of gears and cylinders
# in each facet, transmittion type is represented by shape and color
qplot(hp, mpg, data=mtcars, shape=am, color=am,
   facets=gear~cyl, size=I(3),
   xlab="Horsepower", ylab="Miles per Gallon")

# Separate regressions of mpg on weight for each number of cylinders
qplot(wt, mpg, data=mtcars, geom=c("point", "smooth"),
   method="lm", formula=y~x, color=cyl,
   main="Regression of MPG on Weight",
   xlab="Weight", ylab="Miles per Gallon")
# Boxplots of mpg by number of gears
# observations (points) are overlayed and jittered
qplot(gear, mpg, data=mtcars, geom=c("boxplot", "jitter"),
   fill=gear, main="Mileage by Gear Number",
   xlab="", ylab="Miles per Gallon")

densidade1 densidade 2 densidade 3 boxplot

Personalizando os gráficos do ggplot2

Diferentemente dos gráficos do R básico, os gráficos do ggplot2 não são afetados por muitas das opções definidas na função par( ). Você pode modificá-los usando a função theme() e adicionando parâmetros gráficos na função qplot(). Para obter maior controle, use ggplot() e outras funções fornecidas pelo pacote. Observe que as funções do ggplot2 podem ser encadeadas com sinais de "+" para gerar o gráfico final.

library(ggplot2)

p <- qplot(hp, mpg, data=mtcars, shape=am, color=am,
   facets=gear~cyl, main="Scatterplots of MPG vs. Horsepower",
   xlab="Horsepower", ylab="Miles per Gallon")

# White background and black grid lines
p + theme_bw()

# Large brown bold italics labels
# and legend placed at top of plot
p + theme(axis.title=element_text(face="bold.italic",
   size="12", color="brown"), legend.position="top")

gráfico de treliça personalizado

Indo além

Aqui, apenas arranhamos a superfície. Para saber mais, consulte esta útil folha de dicas sobre ggplot</a > e o excelente siteCookbook for R de Winston Chang . Embora um pouco desatualizado, ggplot2: Elegant Graphics for Data Anaysis</a > ainda é o livro definitivo sobre esse assunto.

Para praticar

Experimente o primeiro capítulo gratuito deste tutorial interativo sobre ggplot2.</a >