Estatística na Mão

Sem mistérios e sem complicação

Artigos sobre Estatística



Visualizações: 149

Criando Gráficos Básicos com R

Introdução

Quem trabalha com R, principalmente quem está começando, tem dificuldade para gerar gráficos no. neste artigo traremos as noções básica da criação de gráficos com R, usanso os pacotes plot e ggplot2.

Para usar o pacote plot não há necessidade de carregar a biblioteca (Library), pois esta já é padrão do R, mas para usar ggplot2 há a necessidade de carrega-la atavés do comando library(ggthemes). Caso não tenha ela instalada processa da seguinte forma: insira o comando install.packages("ggthemes").

Biblioteca ou pacotes

Serão utilizados o seguintes pacotes plot, ggplot2 e o ggthemes. No script será careegados os pacotes individualmente, por exemplo, library("ggplot2"), library("ggthemes"),library("vegan").

Função plot()

Parâmetros de plot()

Função genérica para pltagem de objetos do R.

plot(x, y, xlab, ylab, type, main, sub, asp)

x, y
Vetores numéricos: x e y devem possuir mesmo tamanho (na=nb.)

xlab, ylab
São os títulos a serem exibidos nos eixos x e y, respectivamente.

type
São os tipos de gráficos a serem exibidos, como segue:

  • "p" for points,
  • "l" for lines,
  • "b" for both,
  • "c" for the lines part alone of "b",
  • "o" for both ‘overplotted’,
  • "h" for ‘histogram’ like (or ‘high-density’) vertical lines,
  • "s" for stair steps,
  • "S" for other steps,
  • "n" for no plotting.

main
Especifica o título do gráfico, se omitido nada será exibido.

sub
Especifica o subtítulo do gráfico, se omitido nada será exibido.

asp
Numérico, dando a razão do aspecto entre y / x.

Script do R para função plot()

O script do R, tem os seguintes dados:

## Cria os conjuntos de dados x e y
##Conjunto de dados X
cx=c(12,15,45,32,36,32,21,21,14,52)
##Conjunto de dados Y
cy=c(5400,2500,3600,900,1500,1100,1400,1800,1800,1100)
##Converte o conjunto de dados cx e xy em uma data frame (matriz)
Data=data.frame(cx,cy)
##Plota o gráfico. Detalhe apara a função sort(), que
plot(sort(cx),sort(cy), xlab="Idade", ylab="Renda", type="o", main="Idade vs renda",sub="Ano de 2016")

Resultado

Figura 1. Gráfico criado a partir da função plot().

Função ggplot

O pacote ggplot2 possui maior poder quando comparado com a função plot(). Além de mais opções a estética dos gráficos são melhores, p ois permite adicionar vários itens a mais, como por exemplo, linhas de tendência linear, polinomial, logaritmica.

Exploraremos no exemplo abaixo, que tem por base os dados da função plot(). Ressaltando que o arquivo de script pode ser baixado aqui.

Parâmetros de ggplot()

ggplot(data = NULL, mapping = aes(), ..., environment = parent.frame())

data
Refere-se ao um conjunto de dados do tipo data.frame().

mapping
Lista padrão de mapeamentos estéticos (aesthetic) a serem usados para na plotagem. Se não especificado, deve ser fornecido em cada camada adicionada ao gráfico. Usa-se aes() (veja mais detalhes em Construct aesthetic mappings).

environment
Se uma variável definida no mapeamento estético (aesthetic) não for encontrada nos dados, ggplot() procurará por ele neste ambiente. O padrão é usar o ambiente no qual ggplot() é chamado.

Parâmetro stat_smooth

Usaremos o pacote adicional ggthemes(), para permitir dar cores diferenciadas ao gráfico, veja mais em Pacote ggthemes.

Pacote ggthemes

São 14 temas que podem ser explorados, conforme segue abaixo (Arnold, 2017)

  1. theme_base: a theme resembling the default base graphics in R. See also theme_par.
  2. theme_calc: a theme based on LibreOffice Calc.
  3. theme_economist: a theme based on the plots in the The Economist magazine.
  4. theme_excel: a theme replicating the classic ugly gray charts in Excel
  5. theme_few: theme from Stephen Few’s “Practical Rules for Using Color in Charts”.
  6. theme_fivethirtyeight: a theme based on the plots at fivethirtyeight.com.
  7. theme_gdocs: a theme based on Google Docs.
  8. theme_hc: a theme based on Highcharts JS.
  9. theme_par: a theme that uses the current values of the base graphics parameters in par.
  10. theme_pander: a theme to use with the pander package.
  11. theme_solarized: a theme using the solarized color palette.
  12. theme_stata: themes based on Stata graph schemes.
  13. theme_tufte: a minimal ink theme based on Tufte’s The Visual Display of Quantitative Information.
  14. theme_wsj: a theme based on the plots in the The Wall Street Journal.

Além dos 13 esquemas de cores, como segue:

  1. scale_colour_calc, scale_shape_calc: color and shape palettes from LibreOffice Calc.
  2. scale_colour_colorblind: Colorblind safe palette from http://jfly.iam.u-tokyo.ac.jp/color/.
  3. scale_colour_economist: colors used in plots in plots in The Economist.
  4. scale_colour_excel: colors from new and old Excel.
  5. scale_colour_few: color palettes from Stephen Few’s “Practical Rules for Using Color in Charts”.
  6. scale_colour_gdocs: color palette from Google Docs.
  7. scale_colour_hc: a theme based on Highcharts JS.
  8. scale_colour_solarized: Solarized colors
  9. scale_colour_stata, scale_shapes_stata, scale_linetype_stata: color, shape, and linetype palettes from Stata graph schemes.
  10. scale_colour_tableau, scale_shape_tableau: color and shape palettes from Tableau.
  11. scale_colour_pander, scale_fill_pander: scales to use with the pander package.
  12. scale_colour_ptol, scale_fill_ptol: color palettes from Paul Tol’s Colour Schemes
  13. scale_shape_cleveland, scale_shape_tremmel, scale_shape_circlefill: shape scales from classic works in visual perception: Cleveland, Tremmel (1995), and Lewandowsky and Spence (1989) (Arnold, 2017).

Script para a função ggplot

##Carrega o pacote ggplot2 e ggthemes
library(ggplot2)
library(ggthemes)

ggplot(Data, aes(x=cx,y=cy)) + geom_point() + 
  stat_smooth(method = 'lm', aes(colour = 'Linear'), se = FALSE) +
  stat_smooth(method = 'lm', formula = y ~ poly(x,2), aes(colour = 'Polynomial'), se= FALSE) +  
  stat_smooth(method = 'nls', formula = y ~ a * log(x) +b, aes(colour = 'Logarithmic'), se = FALSE, start = list(a=1,b=1)) +
  stat_smooth(method = 'nls', formula = y ~ a*exp(b *x), aes(colour = 'Exponential'), se = FALSE,start = list(a=1,b=1)) +
  theme_base() +  scale_colour_brewer(name = 'Trendline', palette = 'Set2') +  
  stat_smooth(method="loess",se=FALSE) 

Resultado

Figura 2. Gráfico gerado pelo pacote ggplot(), como tema theme_base() e scale_colour_brewer().

Figura 3. Gráfico gerado pelo pacote ggplot(), como tema theme_economist() e scale_colour_brewer().

Figura 4. Gráfico gerado pelo pacote ggplot(), como tema theme_gdocs() e scale_colour_brewer().

Figura 5. Gráfico gerado pelo pacote ggplot(), como tema theme_solarized() e scale_colour_brewer().

Figura 6. Gráfico gerado pelo pacote ggplot(), como tema theme_solarized(light=FALSE), como dark e scale_colour_solarized("red",name = 'Trendline').

Figura 7. Gráfico gerado pelo pacote ggplot(), como tema theme_wsj() e scale_colour_brewer().

Para maiores detalhes sobre stat_smoth() ou geom_point() ou geom_smoth(), consulte o trabalho de Wickham & Chang (2016).

Referências

Arnold, J.B., 2017. Introduction to ggthemes. ggthemes Package. Disponível em: https://cran.r-project.org/web/packages/ggthemes/vignettes/ggthemes.html

RDocumentation: ggplot, version 2.2.1 .Disponível em: https://www.rdocumentation.org/packages/ggplot2/versions/2.2.1/topics/ggplot

RDocumentation: plot, version 3.4.0 .Disponível em: https://www.rdocumentation.org/packages/graphics/versions/3.4.0/topics/plot

Wickham, H. & W. Chang, 2016. Create Elegant Data Visualisations Using the Grammar of Graphics - Package ‘ggplot2’ version 2.2.1, 189 p. disponível em: https://cran.r-project.org/web/packages/ggplot2/ggplot2.pdf

Como citar este artigo:
Rodrigues, William Costa, 2017. Criando Gráficos Básicos com R. Estatística na Mão. Disponível em: http://estatisticanamao.agroamb.com.br/estatisticanamao/artigos.aspx?ID=16?ID=16. [Acesso em: 20.10.2017].



Topo