Você está na página 1de 136

ANALISE GRAFICA COM USO DO R

Adilson dos Anjos Departamento de Estat stica - UFPR Curitiba, 10 de novembro de 2006.

Apresentao ca
O objetivo dessa disciplina fomentar o uso da anlise grca com o uso do e a a software R. No ser dado enfoque em tcnicas quantitativas de anlise de dados, a a e a mas, em alguns momentos essa associao de certa forma indispensvel. ca e a Alm das tcnicas grcas usuais, pretende-se incentivar o uso de alternativas e e a de anlise e interpretao de dados estat a ca ticos. O R, pelas suas caracter sticas de programaao, permite que sejam criados vrios tipos de anlise grca, seja uma c a a a nova metodologia ou uma combinao de metodologias j existentes. ca a Por m, pretende-se que o aluno desenvolva a capacidade de utilizar metodologias grcas para anlise de dados estat a a sticos utilizando o software R.

Sumrio a
Sumrio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . a Lista de guras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Lista de tabelas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ii v 1

Manipulao de grcos no R ca a

2
3 3 4 4 8 8

1 Sesso inicial a 1.1 Gerenciamento das atividades . . . . . . . . . . . . . . . . . . . . . . 1.1.1 1.2 Emacs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Grcos no R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . a 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 Tipos de sa das grcas . . . . . . . . . . . . . . . . . . . . . a Linhas, pontos e texto . . . . . . . . . . . . . . . . . . . . . .

Cores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Segmentos, echas, abline . . . . . . . . . . . . . . . . . . . . 19 Retngulos, pol a gonos e c rculos . . . . . . . . . . . . . . . . . 23 Regies do grco . . . . . . . . . . . . . . . . . . . . . . . . . 27 o a Arranjo de grcos . . . . . . . . . . . . . . . . . . . . . . . . 33 a Texto nas margens - mtext() . . . . . . . . . . . . . . . . . . . 35 Eixos e o comando mgp . . . . . . . . . . . . . . . . . . . . . 35

1.2.10 Controle de janelas grcas . . . . . . . . . . . . . . . . . . . 37 a ii

SUMARIO

iii

1.2.11 Fmulas matemticas . . . . . . . . . . . . . . . . . . . . . . . 38 o a 1.2.12 Explorando o plot . . . . . . . . . . . . . . . . . . . . . . . . . 39 1.2.13 Legendas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 1.2.14 Exerc cios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

II

Grcos estat a sticos

47
48

2 Grcos estat a sticos 2.1

Explorando Pacotes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 2.1.1 Introduao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 c

2.2

Apresentaao de Grcos . . . . . . . . . . . . . . . . . . . . . . . . . 49 c a 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.2.7 2.2.8 2.2.9 Introduao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 c Percepo grca . . . . . . . . . . . . . . . . . . . . . . . . . 49 ca a Classicaao de grcos . . . . . . . . . . . . . . . . . . . . . 50 c a Princ pios bsicos de um grco . . . . . . . . . . . . . . . . . 50 a a Elementos de um grco . . . . . . . . . . . . . . . . . . . . . 51 a Recomendaoes gerais para elaborar um grco . . . . . . . . 51 c a Erros mais comuns em grcos a . . . . . . . . . . . . . . . . . 52

Objetivo de um grco . . . . . . . . . . . . . . . . . . . . . . 53 a Nmeraao . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 u c

2.2.10 T tulo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 2.2.11 Fonte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 2.2.12 Escala . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 2.2.13 Diferena de linhas . . . . . . . . . . . . . . . . . . . . . . . . 54 c 2.2.14 Apresentaao . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 c 2.3 Grcos univariados . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 a

iv

SUMARIO

2.3.1 2.3.2 2.3.3 2.3.4 2.3.5 2.3.6 2.3.7 2.4

Ramo-e-folhas . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 Box-Plot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Grcos de setores ou circulares . . . . . . . . . . . . . . . . . 59 a Grco de barras . . . . . . . . . . . . . . . . . . . . . . . . . 64 a Histograma . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 Funoes rug e jitter . . . . . . . . . . . . . . . . . . . . . . . . 74 c Grcos de disperso ou Scatter plots . . . . . . . . . . . . . . 76 a a

Mais grcos exploratrios . . . . . . . . . . . . . . . . . . . . . . . . 80 a o 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.4.8 ballonplot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 pairs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 bpplot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 ecdf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 O grco Normal de Probabilidade . . . . . . . . . . . . . . . 85 a Curvas de densidades . . . . . . . . . . . . . . . . . . . . . . . 92 coplot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 Grcos para representao de superf de resposta . . . . . 97 a ca cie

2.5

Exerc cios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 108

3 Grcos para dados georeferenciados a 3.0.1 3.0.2 3.1

Grcos para dados georeferenciados . . . . . . . . . . . . . . 108 a Trabalhando com Mapas . . . . . . . . . . . . . . . . . . . . . 114

Criando um Pictograma . . . . . . . . . . . . . . . . . . . . . . . . . 122 3.1.1 Introduao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 c

Lista de Figuras
1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 Um grco para treinar. . . . . . . . . . . . . . . . . . . . . . . . . . a 5

Uso da funao segments(). . . . . . . . . . . . . . . . . . . . . . . . . 20 c Uso da funao arrows(). . . . . . . . . . . . . . . . . . . . . . . . . . 21 c Uso da funao abline(). . . . . . . . . . . . . . . . . . . . . . . . . . . 22 c Uso da funao polygon(). . . . . . . . . . . . . . . . . . . . . . . . . . 25 c Uso da funao polygon() com a distribuiao Normal. . . . . . . . . . 26 c c Uso da funao symbol() para c c rculos. . . . . . . . . . . . . . . . . . . 27 Uso da funao symbol() para c c rculos. . . . . . . . . . . . . . . . . . . 28 . Regies de um dispositivo grco no R. . . . . . . . . . . . . . . . . 29 o a

1.10 . Mltiplas regies de um dispositivo grco no R. . . . . . . . . . . . 30 u o a 1.11 . Exemplos de oma, omi e omd. . . . . . . . . . . . . . . . . . . . . . 31 1.12 . Dimenses de um grco. . . . . . . . . . . . . . . . . . . . . . . . . 32 o a 1.13 . Margens da regio da gura no R. . . . . . . . . . . . . . . . . . . . 36 a 1.14 . Margens externas da gura no R. . . . . . . . . . . . . . . . . . . . 37 1.15 . Inserindo texto nas margens. . . . . . . . . . . . . . . . . . . . . . . 38 1.16 . Inserindo frmulas no grco. . . . . . . . . . . . . . . . . . . . . . 39 o a 1.17 . Inserindo legendas no grco. . . . . . . . . . . . . . . . . . . . . . 42 a 1.18 Exerc sobre texto. . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 cio 1.19 Exerc sobre cores e pol cio gonos. . . . . . . . . . . . . . . . . . . . . 45 v

vi

LISTA DE FIGURAS

1.20 Exerc sobre cores e pol cio gonos. . . . . . . . . . . . . . . . . . . . . 46 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 Grco Box-Plot. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 a .Grco Box-Plot com cores. . . . . . . . . . . . . . . . . . . . . . . . 60 a Grco de Setores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 a Grco de Setores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 a Grco de Setores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 a Grco de Barras. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 a Grco de Barras. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 a Grco de Barras a partir de uma tabela. . . . . . . . . . . . . . . . . 68 a Grco de Barras a partir de uma tabela - inverso . . . . . . . . . . 69 a a

2.10 Grco de Barras a partir de uma tabela - legenda. . . . . . . . . . . 70 a 2.11 Grco de Barras a partir de uma matriz. . . . . . . . . . . . . . . . 71 a 2.12 Histograma simples. 2.13 Histograma simples. . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

2.14 Histograma com probabilidades. . . . . . . . . . . . . . . . . . . . . . 74 2.15 Histograma com identicao. . . . . . . . . . . . . . . . . . . . . . . 75 ca 2.16 Grco de disperso - Stripchart. . . . . . . . . . . . . . . . . . . . . 77 a a 2.17 Stripchart com grupos. . . . . . . . . . . . . . . . . . . . . . . . . . . 78 2.18 Stripchart com grupos e mdias. . . . . . . . . . . . . . . . . . . . . . 79 e 2.19 Dotchart. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 2.20 Dotchart. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 2.21 Dotchart. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 2.22 Baloonplot. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 2.23 Mltiplos grcos de disperso. . . . . . . . . . . . . . . . . . . . . . 84 u a a 2.24 Grco boxplot com percentis. . . . . . . . . . . . . . . . . . . . . . . 85 a

LISTA DE FIGURAS

vii

2.25 Grco ecdf. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 a 2.26 Grco da distribuio Normal. . . . . . . . . . . . . . . . . . . . . . 86 a ca 2.27 Grco da distribuio Normal acumulada. . . . . . . . . . . . . . . . 87 a ca 2.28 Grco dos efeitos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 a 2.29 Grco Normal de Probabilidade. . . . . . . . . . . . . . . . . . . . . 92 a 2.30 Grco Normal de Probabilidade - datax=T. . . . . . . . . . . . . . . 93 a 2.31 Uso da funo curve para Distribuiao Normal. . . . . . . . . . . . . 94 ca c 2.32 Uso da funo curve para Distribuiao Weibull. . . . . . . . . . . . . 95 ca c 2.33 Uso da funo curve para Distribuiao Gamma. . . . . . . . . . . . . 96 ca c 2.34 Uso do coplot. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 2.35 Uso do coplot. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 2.36 Grco de uma superf de resposta. . . . . . . . . . . . . . . . . . 100 a cie 2.37 Grco de uma curva de n a vel. . . . . . . . . . . . . . . . . . . . . . . 101 2.38 Grco de cores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 a 2.39 Grco com representao do ponto de mximo. . . . . . . . . . . . . 103 a ca a 2.40 Primeiro histograma. . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 2.41 Segundo Histograma. . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 2.42 Pol gono de Freqncia. . . . . . . . . . . . . . . . . . . . . . . . . . 106 ue 2.43 Grco boxplot com rug. . . . . . . . . . . . . . . . . . . . . . . . . . 107 a 3.1 3.2 3.3 3.4 3.5 3.6 Grco de disperso. . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 a a Grco de disperso de um objeto da classe sp. . . . . . . . . . . . . 111 a a Grco de bolhas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 a Grco de cores para pontos. . . . . . . . . . . . . . . . . . . . . . . 115 a Grco image. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 a Grco de bolhas [Please insert into preamble] dados meuse. . . . . . 117 a

viii

LISTA DE FIGURAS

3.7 3.8 3.9

Grco distncias do rio. . . . . . . . . . . . . . . . . . . . . . . . . . 118 a a Grco distncias do rio com pontos. . . . . . . . . . . . . . . . . . . 119 a a Grco do rio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 a

3.10 Mapa mundial. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 3.11 Mapa da Frana. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 c 3.12 Mapa da Itlia. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 a 3.13 Mapa dos Estados Unidos. . . . . . . . . . . . . . . . . . . . . . . . . 124 3.14 Mapa dos Estados Unidos com estados. . . . . . . . . . . . . . . . . . 125 3.15 Mapa do Brasil. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 3.16 Mapa do Brasil com a capital. . . . . . . . . . . . . . . . . . . . . . . 127

Lista de Tabelas
1.1 1.2 1.3 2.1 2.2 Funes grcas de alto n co a vel. . . . . . . . . . . . . . . . . . . . . . . Funes grcas de baixo n co a vel. . . . . . . . . . . . . . . . . . . . . . 6 7

Conjuntos de cores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Estimativas de efeitos de um experimento 24 . . . . . . . . . . . . . . 89 Clculo dos Percentuais Pi . . . . . . . . . . . . . . . . . . . . . . . . 89 a

Parte I Manipulao de grcos no R ca a

Cap tulo 1 Sesso inicial a


Sumrio a
1.1 1.2 Gerenciamento das atividades . . . . . . . . . . . . . . . . Grcos no R . . . . . . . . . . . . . . . . . . . . . . . . . . a 3 4

1.1

Gerenciamento das atividades

Para gerenciar os materiais produzidos durante o curso, sugere-se que cada aluno crie um diretrio dentro da sua rea de trabalho: o a

$ mkdir ce231 $ cd ce231 $ R

Assim, todas as tarefas realizadas com o R car armazenadas nesse diretrio. a o Toda vez que iniciar um sesso de trabalho, entre nesse diretrio, e abra o R. a o No se esquea de, ao nal, salvar sua sesso de trabalho. a c a

> q() Save workspace image? [y/n/c]: y 3

CAP ITULO 1. SESSAO INICIAL

1.1.1

Emacs

Se voc possui algum conhecimento sobre o Emacs recomendvel utiliz-lo e e a a durante a utilizao do contedo desse material. Alm de agilizar alguns comandos ca u e poss fazer comentrios e modicar funoes grcas mais facilmente. e el a c a No caso de utilizar o sistema operacional Windows, voc pode utilizar um e script de forma semelhante ao Emacs.

1.2

Grcos no R a

No R existem pacotes grcos (packages) que geram os grcos propriamente a a ditos e, alm disso, existem diversos outros pacotes que possuem funoes grcas e c a espec cas. Existem ainda, os sistemas grcos que implementam outras funcionalia dades aos grcos gerados pelos diferentes pacotes. Ainda, esses sistemas permitem a integrar os pacotes grcos, atravs de funes no pacote grDevices, possibilitando a e co uma maior versatilidade de trabalho com cores e tipos de fontes, por exemplo. No R existem trs tipos de funoes grcas: e c a funes de alto n (high-level), que produzem grcos completos; co vel a funes de baixo n co vel (low-level), que adicionam informaoes a um grco c a existente e, funes para trabalhar interativamente com grcos. co a Existem muitos pacotes que trabalham com funcionalidades grcas no R. a Por isso, antes de tentar criar algo novo, faa uma busca detalhada no site do R, c principalemnte nas listas de emails do site do R e na internet. Funoes de alto n c vel As funoes de alto n podem ser aplicadas atravs do comando par() ou c vel e como argumentos em funoes grcas como plot(), por exemplo. Experimente ver c a quais so as opoes da funao par(). Para isso, digite o seguinte comando no R: a c c Aparecer no arquivo de ajuda, uma lista das opes que podem ser utilizadas, a co os poss veis valores de cada uma e, no nal, alguns exemplos de aplicaao. Na tabela c 1.1, so apresentadas algumas dessas funoes. Experimente aplic-las em um grco! a c a a

1.2. GRAFICOS NO R

Antes de iniciar com um exemplo, recomendvel salvar a conguraao orie a c ginal da funao par(). c > op <- par() Para restaurar a funao original, aps ter experimentado os comandos da tabela c o 1.1, basta utilizar > par(op) Como sugesto, tente aplicar as opoes da funo par() no grco: a c ca a Figura 1.1: Um grco para treinar. a > plot(pressure, main = "Press~o versus temperatura", sub = "Dados do R") a

Presso versus temperatura


800 0 0 200 pressure 400 600

50

100

150 200 temperature Dados do R

250

300

350

Para ver quais so os parmetros atuais, denidos pela funo par(), digite o a a ca seguinte:

CAP ITULO 1. SESSAO INICIAL Tabela 1.1: Funes grcas de alto n co a vel. Funao c descriao c adj justicao de texto ca ann inserao de t c tulos bg cor de fundo bty tipo de caixa do grco a cex tamanho do texto cex.axis tamanho do tick dos eixos cex.lab tamanho dos nomes dos eixos cex.main tamanho do t tulo do grco a cex.sub tamanho do sub-t tulo do grco a col cor de linhas e s mbolos col.axis cor do tick dos eixos col.lab cor dos nomes dos eixos col.main cor do t tulo do grco a col.sub cor do sub-t tulo fg cor das linhas externas font fonte para texto font.axis fonte para tick dos eixos font.lab fonte para nome dos eixos font.main fonte para o t tulo font.sub fonte para o subt tulo gamma correao para cores c lab nmero de ticks nos eixos u las rotao de textos nas margens dos eixos ca lty tipo de linha lwd largura da linha mgp localizaao de ticks e nomes de ticks c pch tipo de s mbolo srt rotao de de texto na regio do plot ca a tck comprimento dos ticks (em relaao ao grco) c a tcl comprimento dos ticks (em relaao ao texto) c tmag tamanho do t tulo do grco (em relaao a outros nomes) a c type tipo de grco (pontos, linhas, ambos) a xaxp nmero de ticks sobre eiso x u xaxs clculo da amplitude de escal do eixo x a xaxt estilo do eixo x (padro ou nenhum) a yaxp nmero de ticks sobre eiso y u yaxs clculo da amplitude de escal do eixo y a yaxt estilo do eixo y (padro ou nenhum) a

> par(c("bty", "ann")) $bty

1.2. GRAFICOS NO R

[1] "o" $ann [1] TRUE As mudanas efetuadas atravs da funao par() permanecem inalteradas at c e c e que outra mudana seja efetuada nessa funao. Ou seja, para qualquer grco c c a gerado a partir de uma nova conguraao da funao par(), todos tero as mesmas c c a caracter sticas. Se a mudana for efetuada atravs da funao plot(), por exemplo, c e c essa mudana ser temporria e no afetar novos grcos. c a a a a a Funoes de baixo n c vel As funoes de baixo n c vel, ao contrrio da anterior, podem ser modicadas a apenas atravs da funao par(). Estas funes so listadas na tabela 1.2. e c co a Tabela 1.2: Funoes grcas de baixo n c a vel. Funo descriao ca c ask perguntar antes de criar um novo grco a family fam da fonte de texto lia mfcol nmero de guras na pgina u a mfrow nmero de guras na pgina u a mfg dene a gura atual new novo grco em um regio da gura a a

Ainda existem outras funes de baixo n co vel que tratam de margens e localizaao de guras dentro da regio do grco que sero tratadas mais adiante. c a a a Experimente utilizar alguns dos exemplos a seguir, para treinar o uso de algumas funoes da tabela 1.2: c > plot(pressure) > par(mfrow = c(1, 2)) > plot(pressure) > plot(pressure) > par(mfrow = c(2, 1)) > plot(pressure) > plot(pressure)

CAP ITULO 1. SESSAO INICIAL

> plot(pressure, cex = 1.5) > par(new = TRUE) > plot(pressure) > > > > > > par(mfrow = c(1, 2)) plot(pressure) plot(pressure) text(100, 400, "l") a par(mfg = c(1, 1)) text(100, 300, "aqui")

A funo text() utilizada aqui para adicionar um texto no grco. ca e a Consulte outras opoes da funao par() e experimente alter-las no grco c c a a anterior!

1.2.1

Tipos de sa das grcas a

Os grcos gerados no R podem ser salvos em diferentes formatos de arquivo: a A postscript, pdf, pictex (L TEX), xfig, bitmap, png e jpeg e exclusivamente no Windows, win.metafile e bmp. No R, uma sa grca direcionada para um dispositivo em particular, que da a e gerencia o formato do arquivo que ser criado. Assim, quando deseja-se que uma a sa grca seja salva, deve-se abrir um dispositivo grco, para receber essa saida, da a a e depois esse dispositivo deve ser fechado. Veja o seguinte exemplo para gerar um simples grco no formato postcript: a > postscript("meugrafico.ps") > plot(uspop) > dev.off()

1.2.2

Linhas, pontos e texto

As funes lines(), points() e text() permitem inserir, em um grco, lico a nhas, pontos e texto, respectivamente. Para saber quais opes podem ser utilizadas, co utilize a opo de ajuda de cada uma das funoes. ca c

1.2. GRAFICOS NO R > > > > > > > > x <- 1:5 y <- 1:5 par(family = "", mfrow = c(1, 1)) plot(x, y, type = "n") text(1.5, 1, "fonte", font = 1) text(2.5, 2, "fonte", font = 2) text(3.5, 3, "fonte", font = 3) text(4.5, 4, "fonte", font = 4)

fonte

fonte

y 3

fonte

fonte 1 2 3 x 4 5

Linhas Os dois principais comandos relacionados com linhas so lty e lwd. O primeiro a controla o tipo de linha: slida, pontilhada. O segundo, controla a largura da linha. o A largura da linha especicada por um nmero, por exemplo lwd=2. Esse e u valor varia com o tipo de dispositivo empregado para visualizaao. Na tela de um c monitor, o nmero 1, por exemplo, representa um pixel. Veja alguns exemplos a u seguir. No R poss e vel, alm de utilizar os formatos pr-denidos de linhas em lty, e e

10 > > > > > > > > > x <- 1:9 y <- 1:9 plot(x, y, lines(c(2, lines(c(2, lines(c(2, lines(c(2, lines(c(2, lines(c(2,

CAP ITULO 1. SESSAO INICIAL

type = "n") 8), c(8, 8), 8), c(7, 7), 8), c(6, 6), 8), c(5, 5), 8), c(4, 4), 8), c(3, 3),

lwd lty lty lty lty lty

= = = = = =

2) 2, 3, 4, 5, 6,

lwd lwd lwd lwd lwd

= = = = =

2) 2) 2) 2) 2)

y 2 4

4 x

utilizar verses pessoais. Esse formatos devem ser fornecidos como strings (entre o aspas). Um nmero u mpar especica o comprimento da linha e um nmero par u especica o tamanho do espao vazio (gap). c

Pontos No R pode-se adicionar diferentes tipos de pontos em grco. Basta denir a qual s mbolo deve ser utilizado entre os 26 dispon veis. Utiliza-se a funo points(). ca

1.2. GRAFICOS NO R

11

Ainda, poss utilizar caracteres como s e vel bolos. Simplesmente, dena o s mbolo entre aspas.

> > > > > > +

x <- 1:10 y <- 1:10 plot(x, y, type = "n") points(1:10, rep(8, 10), pch = 0:9, col = 1:10, cex = 1.5) points(1:10, rep(6, 10), pch = 10:19, col = 1:10, cex = 1.5) points(1:10, rep(4, 10), pch = c(".", "a", "o", "v", "s", "c", "&", "$", "@", "%"), col = 1:10, cex = 1.5)

10

&

4 x

10

Experimente utilizar a funo show.pch() do pacote Hmisc, ca

> require(Hmisc) > show.pch()

12

CAP ITULO 1. SESSAO INICIAL

Texto Com a funao text(), pode-se inserir textos no grco. Nessa funo devec a ca se informar a posiao do texto, fornecendo as coordenadas em relao ` regio do c ca a a grco. Uma opao util nessa funo adj, que indica a justicaao do texto. Nessa a c ca e c opao, 0 signica um alinhamento ` esquerda, 0.5 centrado e 1 justicado ` direita. c a a Ainda, na opp adj, pode-se fornecer a informao da forma c(hjust, vjust), onde ca ca hjust indica o alinhamento horizontal e vjust um alinhamento vertical. Veja alguns exemplos: Quando um texto muito longo ou deseja-se fazer a quebra de uma linha, e deve-se utilizar a opo \n no ponto de quebra de uma linha. ca

Comandos locator() e identify() Estes comandos so utilizados depois que os grcos so criados. a a a locator(): serve para encontrar as coordenadas de um ponto no grco; a identify(): serve para mostrar os nomes (labels) de pontos em um grco. a

locator() Experimente usar o exemplo seguinte. Gere o grco e depois, na janela grca, a a selecione um ponto com o mouse (d um clique dentro do grco). Nesse momento, e a aparecer na janela do R as coordenadas do ponto. a > > > > x <- 1:10 y <- 1:10 plot(x, y, type = "n") locator(n = 1) Agora, utilize o mesmo grco, denindo a opo com n = 2 e type=l. a ca > locator(2, type = "l") Com o mouse, selecione dois pontos dentro do grco. a

1.2. GRAFICOS NO R > > > > + > > > > > > x <- 1:10 y <- 1:10 plot(x, y, type = "n") points(seq(1, 9, by = 2), rep(5, 5), pch = "+", col = "gray", cex = 2) text(1, 5, "c(0,0)", adj = c(0, 0)) text(3, 5, "c(0,1)", adj = c(0, 1)) text(5, 5, "c(1,0)", adj = c(1, 0)) text(7, 5, "c(0,NA)", adj = c(1, NA)) text(9, 5, "c(NA,NA)", adj = c(0.5, 0.5)) text(5, 7, "rotacionado", adj = c(0, 0), srt = 45)

13

10

c(0,0) + 4

+ c(0,1)

ro

c(1,0)

ta

ci

on

ad

c(0,NA)

c(NA,NA)

4 x

10

Experimente, tambm, utilizar outras opoes para type (veja help(locator)). e c A funo locator(), tambm, pode ser utilizada em associaao com a funo ca e c ca points(). > points(locator(3), type = "l") e com a funao text(), c

14 > > > > +

CAP ITULO 1. SESSAO INICIAL x <- 1:10 y <- 1:10 plot(x, y, type = "n") text(5, 6, "quando necessria uma \n quebra de linha", e a adj = c(1, 1))

6 y 2 4

8 quando necessria uma quebra de linha

10

4 x

10

> text(locator(1), "meu texto") Da maneira a seguir, voc deve clicar duas vezes no grco. e a > text(locator(2), c("meu texto", "outro texto")) Para cancelar o processo antes de localizar todos os pontos, aperte o boto a direito do mouse. No Windows, apertando o boto direito mostrada a opao a e c stop. Cuidado! Se a janela grca for alterada antes que a total identicaao dos a c pontos seja feita, os pontos desaparecem.

1.2. GRAFICOS NO R

15

identify() Utiliza-se a funao identify() para dar nomes aos pontos de um grco. Para c a utilizar essa funo so necessrias as coordenadas (x,y) e um vetor com nomes dos ca a a pontos (string): > identify(x, y, labels = nomes) Como exemplo, considere o seguinte conjunto de dados e o respectivo grco: a > > > > nomes <- c("Jo~o", "Pedro", "Paulo") a salario <- c(400, 590, 730) vendas <- c(3000, 4500, 7200) plot(vendas, salario)

400 3000

450

500

salario 550 600

650

700

4000

5000 vendas

6000

7000

Para identicar cada ponto no grco, utilize a funo identify() da seguinte a ca maneira: > identify(vendas, salario, labels = nomes)

16

CAP ITULO 1. SESSAO INICIAL

Agora, clique prximo aos pontos para poder identicar cada um deles. Caso o no deseje identicar todos, aperte o boto direito do mouse. a a Se o ponteiro do mouse car muito distante do ponto, aparecer uma mensaa gem de aviso no R. Continue clicando at conseguir se aproximar do ponto desejado. e

1.2.3

Cores

Existem, basicamente, trs maneiras de denir cores nos grcos. Pode-se e a utilizar os comandos fg, bg e col. A funao col possui variaes, podendo ser c co aplicada em vrias situaes, como mudana de cor de eixos, t a co c tulos etc, como visto na tabela 1.1. Dependendo do local onde a funao col utilizada, ela pode funcionar de c e diferentes maneiras. Por exemplo, dentro da funo plot() ela pode ser utilizada ca para colorir s mbolos, texto, linhas. J, dentro da funo barplot() ela utilizada a ca e para colorir as barras. A funao fg utilizada para colorir eixos e bordas. Observe que, essa opo c e ca pode causar alguma sobreposio de cores se utilizada junto com comandos espec ca cos de cores para eixos e texto do tipo col.axis, col.main. A funo bg utilizada para controlar a cor de fundo de um grco. ca e a Para especicar uma cor, pode-se utilizar nmeros ou strings (nome da cor). u Por exemplo, blue indica que a cor azul foi denida. No R existem 657 nomes de cores para serem utilizados. Experimente a opao colors() para ver os nomes de c cores dispon veis. A funao palette() tambm fornece alguns nomes de cores. c e Experimente utilizar a seguinte funo do pacote Hmisc: ca Outras formas de especicar cores A funo rgb() permite que sejam especicadas cores como uma combinaao ca c de VERMELHO-VERDE-AZUL (Red,Green,Blue). por exemplo, a cor vermelha e especicada como rgb(1,0,0). Se voc quer saber qual so os nmeros que devem ser fornecidos para uma e a u determinada cor, utilize a funo col2rgb(). Veja o exemplo a seguir: ca > col2rgb("green")

1.2. GRAFICOS NO R > show.col()

17

0 1 2 3 4 5 6 7 8 9

10 11 12 13 14 15 16 17 18 19

20 21 22 23 24 25 26 27 28 29

30 31 32 33 34 35 36 37 38 39

40 41 42 43 44 45 46 47 48 49

50 51 52 53 54 55 56 57 58 59

60 61 62 63 64 65 66 67 68 69

70 71 72 73 74 75 76 77 78 79

80 81 82 83 84 85 86 87 88 89

90 91 92 93 94 95 96 97 98 99

[,1] red 0 green 255 blue 0 > col2rgb("gray") [,1] red 190 green 190 blue 190 Os valores da funao rgb() tambm podem ser fornecidos na forma de um c e string #RRGGBB, em que cada par corresponde a um numero de 0 a 255(FF). A funao rgb() possui uma opo maxColorValue que dene a amplitude de c ca variaao dos nmeros. c u Veja o exemplo, a seguir, para ver como utilizar cores com rgb (aproveite para conhecer a funao rect()): c

18 > > > > > > + > >

CAP ITULO 1. SESSAO INICIAL plot(c(100, 200), c(300, 450), type = "n", xlab = "", ylab = "") rect(100, 300, 125, 350) rect(100, 400, 125, 450, col = "green", border = "blue") rect(115, 375, 150, 425, col = par("bg"), border = "transparent") rect(150, 300, 175, 350, density = 10, border = "red") rect(150, 400, 175, 450, density = 30, col = "blue", angle = -30, border = "transparent") minha.cor <- rgb(5, 55, 10, max = 100) rect(100, 300, 125, 350, col = minha.cor)

Conjuntos de cores Existem ainda alguns conjuntos de cores j denidos no R. Esses conjuntos a formam alguns padres que podem ser utilizados em diferentes tipos de grcos. o a Esses padres, em geral, so utilizados em grcos que necessitam de mais de uma o a a cor para ser aplicada. Tabela 1.3: Conjuntos de cores. Conjunto descrio ca rainbow() cores do arco- ris heat.colors() varia do branco at laranja/vermelho e terrain.colors() varia do branco at marrom/verde e topo.colors() varia do branco at marron/verde/azul e cm.colors() varia do azul claro at branco/magenta e grey() ou gray() tipos de cinza

Dentro dos parnteses, so inseridas opes, em geral, o nmero de cores. e a co u Experimente o seguinte exemplo no R: > example(rainbow) Observe que, a cor nal pode depender da resoluao do v c deo, do tipo de impressora, tipo de papel alm de outras condies. Todas as cores geradas, so e co a armazenadass pelo R como cores do tipo rgb(). Veja alguns exemplos de cores na funo de demonstraao graphics: ca c > demo(graphics) Experimente ainda, utilizar essa funo para entender um pouco mais sobre ca cores

1.2. GRAFICOS NO R

19

> cores.ex <- function() { + plot(1, 1, xlim = c(0, 14), ylim = c(0, 3), type = "n", + axes = F, xlab = "", ylab = "") + text(1:6, rep(2.5, 6), paste(1:6), col = palette()[1:6], + cex = 2.5) + text(10, 2.5, "palette (default)", adj = 0) + rainchars <- c("R", "O", "Y", "G", "B", "I", "V") + text(1:7, rep(1.5, 7), rainchars, col = rainbow(7), cex = 2.5) + text(10, 1.5, "rainbow(7)", adj = 0) + cmtexto <- substring("cm.colors", 1:9, 1:9) + text(1:9, rep(0.5, 9), cmtexto, col = cm.colors(9), cex = 3) + text(10, 0.5, "cm.colors(9)", adj = 0) + } > cores.ex()

1.2.4

Segmentos, echas, abline

Nessa seao, veremos como construir mais linhas, com os comandos segments() c e abline, alm de echas (arrows). e

segments() A sintaxe da funo segments() a seguinte: ca e > segments(x0, y0, x1, y1, ...) x e y representam as coordenadas dos pontos que devem ser unidos. No exemplo, a seguir, pode-se colocar em um grco vrias linhasbaseadas na funao a a c segments(). Experimente alterar opes da funo segments() e gere outras guras! co ca

arrows() -echas De forma muito semelhante a funo segments(), a funao arrows() permite ca c que sejam feitas setas dentro de um grco. Entre os argumentos, code (0 a 3) a indica em que lada a ponta da echa vai estar, angle indica o ngulo da echa e a

20

CAP ITULO 1. SESSAO INICIAL Figura 1.2: Uso da funao segments(). c plot(0:10, 0:10, type = "n") segments(1, 2, 4, 5) segments(4, 5, 6, 5) segments(6, 5, 9, 2) segments(1, 2, 9, 2)

> > > > >

0:10 0 0 2 4

10

4 0:10

10

length indica o tamanho da echa. Outras opoes como tipo e cor da linha tambm c e so aceitas. a A funo arrows() pode ser utilizada da seguinte maneira (rura 1.3): ca

abline() A funao abline() utilizada, em geral, para representar coecientes de um c e modelo, mas, pode ser utilizada para gerar uma linha em um grco. A idia a e e utilizar os coecientes de um modelo, em geral de uma regresso linear simples para a gerar uma reta no grco. Mas, pode-se utilizar um simples argumento para gerar a

1.2. GRAFICOS NO R Figura 1.3: Uso da funo arrows(). ca plot(0:10, 0:10, type = "n") arrows(2, 8, 8, 8) arrows(2, 6, 8, 6, code = 1, angle = 30) arrows(2, 6, 8, 6, code = 1, angle = 15) arrows(2, 4, 8, 4, code = 3, angle = 45, lwd = 4) arrows(2, 2, 8, 2, lty = 2, col = 3, length = 1.7)

21

> > > > > >

0:10 0 0 2 4

10

4 0:10

10

uma linha vertical ou horizontal. Veja os exemplos a seguir: Primeiro, geramos um grco de disperso entre x e y. a a Em seguida, pode-se construir um modelo para representar a relaao entre x c e y. Nesse caso, um modelo de regresso linear simples (uma reta): a > reg.lm <- lm(y ~ x) > reg.lm$coef (Intercept) x

22

CAP ITULO 1. SESSAO INICIAL Figura 1.4: Uso da funao abline(). c

> set.seed(123) > x <- sort(runif(10)) > x [1] 0.0455565 0.2875775 0.4089769 0.4566147 0.5281055 0.5514350 0.7883051 [8] 0.8830174 0.8924190 0.9404673 > y <- sort(runif(10)) > y [1] 0.04205953 0.10292468 0.24608773 0.32792072 0.45333416 0.57263340 [7] 0.67757064 0.89982497 0.95450365 0.95683335 > plot(x, y)

y 0.2 0.4

0.6

0.8

0.2

0.4 x

0.6

0.8

-0.1356696

1.1397177

Existem pelo menos trs maneiras de inserir uma reta no grco. No caso e a

1.2. GRAFICOS NO R

23

de uma regresso linear simples, pode-se inserir o objeto do tipo lm, chamar os a coecientes do modelo ou simplesmente digitando os nmeros correspondentes aos u coecientes. > abline(reg = reg.lm) > abline(coef = c(reg.lm$coef[1], reg.lm$coef[2])) > abline(-0.1356696, 1.1397177) Ainda, pode-se inserir, com o comando abline() uma reta horizontal e ou uma reta vertical. > abline(h = 0.6) > abline(v = 0.4)

1.2.5

Retngulos, pol a gonos e c rculos

Algumas guras geomtricas podem ser geradas atravs de algumas funoes no e e c R. Nesta seo trataremos de algumas destas funoes que podem auxiliar na criao ca c ca de grcos. a rect() A primeira delas a funo rect() que pode ser utilizada para gerar retngue ca a los. A sintaxe da funo a seguinte: ca e > args(rect) function (xleft, ybottom, xright, ytop, density = NULL, angle = 45, col = NA, border = NULL, lty = par("lty"), lwd = par("lwd"), ...) NULL onde xleft, ybottom, xright, ytop so as coordenadas do retngulo dentro da a a regio do grco, density e angle so argumentos que denem a existncia ou no a a a e a de linhas dentro do retngulo e o ngulo de inclinaao das linhas, respectivamente. a a c Outras opoes fazem parte da congurao de cor, tipo de linha etc. c ca

24

CAP ITULO 1. SESSAO INICIAL

Veja o exemplo da gura 1.2.3 para saber como trabalhar com a funao rect(). c Faa alteraoes nos argumentos da funao para entender como ela funciona. c c c Experimente tambm, utilizar o exemplo dispon no documento de ajuda e vel sobre a funao no R. c

polygon() Em muitas situaes, podemos estar interessados em construir um pol co gono, ou seja, unir diferentes pontos em um grco. A funo polygon permite esse tipo a ca de tarefa. Duas novas funoes aparecem nos comandos da gura 1.5. c A primeira a funao box(). Essa funao cria uma caixa ao redor da regio e c c a do grco (questes sobre dimenso e margens sero estudadas mais adiante). a o a a A segunda a funao chull(), que retira do conjunto de coordenadas os pontos e c extremos de forma a contornar toda a extenso perifrica dos pontos. Observe que, a e o objeto perif contm os pontos que formam essa regio e x[perif] e y[perif] e a contm as coordenadas desses pontos. e Nesse caso, a funo polygon() simplesmente faz a unio desses pontos atravs ca a e de uma linha. Um aplicao pode ser com o uso da distribuiao Normal. ca c Lembre-se que a funao dnorm() gera os valoes de uma distribuiao Normal c c padro. Nesse caso, a funao polygon() utiliza a informaao sobre a distribuiao a c c c para poder acompanhar a linha da curva da distribuiao Normal. c Como sugesto, tente implementar outras opes para s a co mbolos e ainda, abra o arquivo de ajuda dessa funao para ver mais exemplos. c

symbols() Esta funao pode ser utilizada para construir c c rculos, quadrados, entre outros desenhos. Nesse momento, vamos trabalhar apenas com c rculos. Se tiver mais interesse, consulte a documentao de ajuda dessa funo. ca ca Observe nos argumentos da funao, que existem muitas opes: c co

1.2. GRAFICOS NO R Figura 1.5: Uso da funao polygon(). c > > > > > > > > set.seed(123) x <- rnorm(100) y <- rnorm(100) plot(x, y, ann = FALSE, axes = FALSE, col = "grey") box(col = "grey") rect(min(x), min(y), max(x), max(y), lty = "dashed") perif <- chull(x, y) polygon(x[perif], y[perif])

25

> args(symbols)

function (x, y = NULL, circles, squares, rectangles, stars, thermometers, boxplots, inches = TRUE, add = FALSE, fg = par("col"), bg = NA, xlab = NULL, ylab = NULL, main = NULL, xlim = NULL, ylim = NULL, ...) NULL

26

CAP ITULO 1. SESSAO INICIAL Figura 1.6: Uso da funo polygon() com a distribuio Normal. ca ca a <- 0 b <- 2 a.n <- "0" b.n <- "2" plot(dnorm, -4, 4, xlab = "", ylab = "", axes = F, bty = "n") polygon(x = c(a, seq(a, b, l = 20), b), y = c(0, dnorm(seq(a, b, l = 20)), 0), col = "gray") text(c(a, b), c(-0.011, -0.011), c(a.n, b.n), cex = 0.6) segments(-4, -0.004, 4, -0.004)

> > > > > > + > >

x e y fornecem as coordenadas do centro do s mbolo e circles dene o s mbolo do tipo c rculo. Observe a diferena entre as guras 1.7 e arefg:simbolo2. Na gura c 1.7 a opao inches foi denida como TRUE. Isso faz com que o tamanho dos c c rculos seja relacionado a escala em polegadas. J, quando a opao FALSE, a escala est a c e a relacionada com o eixo x. Veja os exemplos nas guras 1.7 e 1.8: Observe nas linhas de comando que a opao add foi denida como TRUE. Esta c opao indica que os novos s c mbolos devem ser adicionados ao grco. Experimente a

1.2. GRAFICOS NO R Figura 1.7: > plot(1:5, 1:5, type = > symbols(2, 2, circles > symbols(4, 4, circles Uso da funao symbol() para c c rculos. "n") = 0.1, inches = TRUE, bg = 2, add = TRUE) = 0.3, inches = TRUE, fg = 3, add = TRUE)

27

1 1

1:5 3

3 1:5

utilizar a opao FALSE para ver o resultado. c

1.2.6

Regies do grco o a

Toda vez que um dispositivo grco aberto no R, ele dividido em trs a e e e regies: margem externa, a regio da gura ativa e a regio do grco ativo (gura o a a a 1.9). No caso de existirem mltilos grcos, as regies cam caracterizadas conforme u a o a gura 1.10 O tamanho dessas regies controlado pela funo par(). o e ca

28 Figura 1.8: > plot(1:5, 1:5, type = > symbols(2, 2, circles > symbols(4, 4, circles

CAP ITULO 1. SESSAO INICIAL Uso da funao symbol() para c c rculos. "n") = 0.1, inches = FALSE, bg = 2, add = TRUE) = 0.3, inches = FALSE, fg = 3, add = TRUE)

1 1

1:5 3

3 1:5

Margem externa Por default no h margens externas quando da geraao de um grco. As a a c a margens externas podem ser inseridas de trs maneiras: e

Usando o comando oma: estabelece os espaos considerando a referncia de c e linhas de texto. Um valor 1 signica espao para uma linha de texto. Como c existem quatro margens, os valores so especicados na ordem bottom, left, a top, right; Usando o comando omi: as margens tmabm podem ser especicadas em poe legadas (inches);

1.2. GRAFICOS NO R Figura 1.9: . Regies de um dispositivo grco no R. o a


Margem externa 3 Regio da figura

29

Margem externa 2

Regio do grfico

Margem externa 1

Usando o comando omd: pode-se utilizar tambm uma proporao da regio do e c a dispositivo grco. Nesse caso a ordem de entrada left, right, bottom, a e top. Experimente alterar as opoes grcas da funao par(), como no exemplo da c a c gura 1.11. Nesse caso, voc dever perceber mudanas no dispositivo grco. Experie a c a mente alterar as opes do parmetro oma. co a Regio da gura a O R determina a regio da gura considerando as dimenses das margens a o externas e do nmero de guras no dispositivo grco. A regio da gura pode ser u a a determinada pelo comando fig especicando left, right, bottom, top. Nesse caso, cada valor uma proporo da gura desconsiderando os valores das margens e ca

Margem externa 4

30

CAP ITULO 1. SESSAO INICIAL Figura 1.10: . Mltiplas regies de um dispositivo grco no R. u o a
Margem externa 3

Figura 1
Margem externa 2

Figura 2
Margem externa 4

Regio ativa da figura

Regio ativa do grfico

Figura 4

Margem externa 1

externas. O comando fin especica a largura e altura, width, height da regio da a gura em polegadas e faz a centralizaao da regio da gura no grco. c a a

Margens da gura As margens da regio da gura podem ser controladas utilizando o comando a mar. Esse comando tambm utiliza a ordem bottom, left, top, right. Cada e valor representa o nmero de linhas de texto. Os nmeros default so c(5,4,4,2) u u a +0.1. Da mesma forma como em outros comandos, pode-se determinar o tamanho das margens em termos de polegadas utilizando o comando mai.

Regio do grco a a A regio do grco determinda pela diferena entre a regio da gura e a rea a e c a gio das margens da gura. As dimenses podem ser controladas pelo comando plt, a o

1.2. GRAFICOS NO R Figura 1.11: . Exemplos de oma, omi e omd. > > > > op <- par() par(oma = c(1, 2, 3, 3)) plot(1:10, 1:10) par(op)

31

1:10 6

10

6 1:10

10

fornecendo as especicaoes da forma left, right, bottom, top. Pode-se ainda c denir as dimenses, width, height, em termos de polegadas (inches). Ainda, o existe o comando pty que controla o quanto do espao dispon que a regi oda c vel a gura deve ocupar. O valor padro m, que indica que todo o espao dispon a e c vel deve ser ocupado. Pode-se utilizar a opo s que indica que a regio do grco deve ca a a ocupar o espao dispon (regio da gura menos a regio das margens), mas, esse c vel a a espao deve ser um quadrado. c

32

CAP ITULO 1. SESSAO INICIAL Figura 1.12: . Dimenses de um grco. o a


din[1]

fin[1] pin[1] oma[2] omi[2] mar[2] mai[2] mar[4] plt[2] omd[2] mai[4] oma[4] omi[4]

plt[1]

omd[1]

Fora da regio do grco - Clipping() a a Quando um grco gerado, o R ir colocar o resultado (output) na regio a e a a do grco. Qualquer resultado que seja gerado fora das coordenadas da regio do a a grco no aparecer. Mas, existem alguns mecanismos que permitem que se insiram a a a informaes fora da regio do grco (clipping). Por exemplo, pode ser necessrio co a a a inserir uma legenda em uma posio fora das delimitadas pelas dimenses da regio ca o a do grco. a A opo xpd controla a permisso para inserir informaes alm da regio do ca a co e a grco. Para xpd=NA, permitido inserir informaoes em toda a regio do dispositivo a e c a grco. J, para uma opao xpd=TRUE, permitido utilizar a regio da gura e para a a c e a a regio do grco, somente, utiliza-se a opao xpd=FALSE, que , por sua vez, o a a c e valor padro. a > par(op)

1.2. GRAFICOS NO R

33

> plot(1:5, 1:5) > points(0.3, 0.3, pch = "x", col = 2) > points(0.3, 0.3, pch = "x", col = 2, xpd = TRUE) Para saber quais as dimenses da janela grca, basta digitar o a > par("din", "fin", "pin", "oma", "plt", "mar") $din [1] 6.992249 6.995686 $fin [1] 6.992249 6.995686 $pin [1] 6.246351 6.036675 $oma [1] 0 0 0 0 $plt [1] 0.09143565 0.98476072 0.10662252 0.96953642 $mar [1] 3.5 3.0 1.0 0.5 Para alterar, pode-se utilizar, por exemplo: > > > > > par(op) par(pin = c(5.5, 5.5)) plot(1:5, 1:5) points(0.3, 0.3, pch = "x", col = 2) par(op)

1.2.7

Arranjo de grcos a

O comando mfrow ou mfcol permitiam inserir vrios grcos em um mesmo a a dispositivo. Mas, todos ocupavam as mesmas dimenses. o

34

CAP ITULO 1. SESSAO INICIAL

Nessa sesso, veremos como utilizar a funo layout(). Basicamente, essa a ca funo permite inserir vrios grcos com dimenses diferentes. ca a a o Para utilizar essa funao necessrio fornecer uma matriz especicando o c e a nmero de posioes que sero utilizadas. No exemplo, a seguir, devero ser gerados u c a a quatro grcos sobre a janela grca. a a > layout(matrix(c(1, 2, 3, 4), byrow = TRUE, ncol = 2)) > plot(1:5, 1:5, ann = FALSE) Observe que nesse caso, todos os espaos tero o mesmo tamanho. Mas, c a e poss denir tamanhos diferentes para cda grco. A opo heights ou widths vel a ca podem ser utilizadas para denir esses tamanhos. > layout(matrix(c(1, 2)), heights = c(1.5, 1)) > plot(1:2, 1:2, ann = FALSE, cex.lab = 0.5, cex.axis = 0.5) > plot(1:2, 1:2, ann = FALSE, cex.lab = 0.5, cex.axis = 0.5) Nesse caso, o grco superior ocupa dois teros do espao dispon (2/(2+1)), a c c vel enquanto que o grco inferior ocupa um tero do espao dispon (1/(2 + 1)). a c c vel Ainda, a altura das linhas, nesse exemplo, funciona de forma independente das colunas. Para forar que as colunas tambm tenham o mesmo formato das linhas, c e utiliza-se a opao respect=TRUE. Veja o que acontece com o seguinte exemplo: c > layout(matrix(c(1, 2)), heights = c(1.5, 1), respect = TRUE) > plot(1:3, 1:3, ann = FALSE, cex.lab = 0.5) > plot(1:3, 1:3, ann = FALSE, cex.lab = 0.5) Pode-se, ainda, denir dimenses em cent o metros, utilizando a funo lcm. O ca exemplo a seguir, mostra os grcos separados 0,5 cm. a > layout(matrix(c(1, 0, 2)), heights = c(2, lcm(0.5), 1), respect = TRUE) > plot(1:3, 1:3, ann = FALSE, cex.lab = 0.5) > plot(1:3, 1:3, ann = FALSE, cex.lab = 0.5) Assim como matrix(), pode-se utilizar as funes rbind() ou cbind(). co

1.2. GRAFICOS NO R

35

> layout(rbind(c(1, 3), c(0, 0), c(2, 2)), heights = c(2, lcm(0.5), + 1), respect = TRUE) > plot(1:3, 1:3, ann = FALSE, cex.lab = 0.5) Experimente gerar outras conguraoes de grcos utilizando a funao layout(). c a c Ainda poss utilizar a funo layout.show() para ver como est dividida e vel ca a a janela grca. a > layout.show()

1.2.8

Texto nas margens - mtext()

A funo text() permite inserir texto dentro da regio do grco. Para inserir ca a a um texto na regio da gura ou nas margens, utiliza-se a funo mtext(). O argua ca mento outer permite denir onde o texto ser inserido. O argumento side informa a em qual margem: 1-abaixo; 2-esquerda; 3-acima; 4-direita. O texto inserido em nmero de linhas, na regio da gura 1.13 ou nas margens e u a externas 1.14, podem ser denidas as coordenadas pelo usurio. a

Um exemplo Veja o exemplo 1.15 para ver como utilizar a funao mtext(). Nesse caso, c quando voc tenta inserir um texto com a funo text() aparece uma BF mensagem e ca de erro, pois a posiao requerida ca na regio da gura e no do grco. Por isso, c a a a a funao mtext() deve ser utilizada nessa situao. Experimente ver os argumentos c ca da funao mtext() e tentar novas opes. c co

1.2.9

Eixos e o comando mgp

J vimos alguns comandos sobre eixos quando estudamos funoes de alto n a c vel. Nessa seao veremos como trabalhar com o comando mgp. Esse comando controla a c distncia de alguns componentes dos eixos em relao a borda da regio do grco. a ca a a Como valor padro, o comando mgp tem o valor c(3,1,0). Os comandos a xaxs e yaxs controlam o estilo dos eixos de um grco. As opoes correntemente a c implementadas so i e r. Experimente mudar algumas opes no exemplo a seguir. a co

36

CAP ITULO 1. SESSAO INICIAL Figura 1.13: . Margens da regio da gura no R. a

Grfico corrente xmin 0 lines Margem da Figura 1 xmax

3 lines

ymax Margem da Figura 2 ymin 3 lines 0 lines Grfico corrente

> par(mgp = c(3, 0, 1)) > plot(1:5, 1:5, xaxs = "i") > box(col = "gray")

Ainda, pode-se alterar as marcaes de escala dos eixos com o comando tcl. co tcl especica o tamanho da marca como uma frao do tamanho da linha de texto. ca Alterando o sinal, muda-se o sentido da marcaao. c

> par(mgp = c(3, 0, 1)) > plot(1:5, 1:5, xaxs = "i", tcl = 0.5) > box(col = "gray")

1.2. GRAFICOS NO R Figura 1.14: . Margens externas da gura no R.

37

Plot 1 0 0 lines Margem externa 1 3 lines

Plot 2 1

1 Margem Externa 2 0 3 lines 0 lines Plot 1 Plot 2

1.2.10

Controle de janelas grcas a

Em algumas situaoes, podemos estar interessados na geraao de vrios grcos c c a a em diferentes janelas grcas. No R, existem algumas funoes que auxiliam no a c controle dessas janelas grcas. a Para abrir uma nova janela grca, pode-se utilizar, no Windows, x11() ou a window(). No Linux, utilize X11(). Experimente abrir vrias janelas grcas ao a a mesmo tempo. Observe que em cada janela, na parte superior, aparece o nmero u da janela e se ela est ativa ou no. a a Para movimentar-se entre as janelas, voc pode utilizar dev.set(). Entre e parnteses, insira o nmero da janela grca que voc quer trabalhar. Ainda, voc e u a e e pode utilizar dev.next() para saber qual a prxima ou dev.prev() para saber qual o o nmero da janela anterior (considerando a ordem de abertura das janelas). u O comando dev.off() fecha a janela grca. a

38

CAP ITULO 1. SESSAO INICIAL Figura 1.15: . Inserindo texto nas margens.

> > > > >

op <- par() plot(1:5, 1:5) text(3, 6, "regi~o da figura") a mtext("regi~o da figura", side = 3, line = 1) a par(op)

1 1

1:5 3

3 1:5

1.2.11

Fmulas matemticas o a

Em alguns grcos, pode-se ter a necessidade de se inserir frmulas matema o a ticas. No R, pode-se utilizar tanto o formato de texto quanto expresses que gerem o um resultado de interesse. A funao expression(), pode desenhar s c mbolos que podero ser utilizados em grcos. a a Utilize a demo(plotmath) ou help(plotmath) para saber quais expresses o podem ser utilizadas em um grco no R. Aps, tente reproduzir as expresses a o o contidas na gura 1.16:

1.2. GRAFICOS NO R Figura 1.16: . Inserindo frmulas no grco. o a

39

i=1

xi

expression(sum(x[i],i==1,n))

N(0, 2)
expression(N(0,sigma^2))

x=

xi i=1 n
n

expression(bar(x)==sum(frac(x[i],n),i==1,n)) 1 f(x) = 2 expression(f(x)==frac(1,paste(sigma,sqrt(2*pi)))) x 2 expression((frac(xmu,sigma))^2)

1.2.12

Explorando o plot

J utilizamos a funao plot() para construir alguns grcos simples. Nessa a c a seo, vamos explorar um pouco mais os argumentos dessa funao. Acompanhe na ca c seqncia, a seguir, alguns dos principais argumentos da funao plot(). ue c Como inserir t tulos: > x <- 1:5 > y <- 1:5 > plot(x, y, main = "Explorando plot()", sub = "um sub-ttulo", + xlab = "eixo x", ylab = "eixo y") Como mudar o tamanho dos t tulos: > plot(x, y, main = "Explorando plot()", sub = "um sub-ttulo",

40

CAP ITULO 1. SESSAO INICIAL

+ +

xlab = "eixo x", ylab = "eixo y", cex.axis = 1.5, cex.lab = 2, cex.main = 2.2, cex.sub = 1.5) Como alterar cores:

> plot(x, y, main = "Explorando plot()", sub = "um sub-ttulo", + xlab = "eixo x", ylab = "eixo y", col = 3, col.axis = 4, + col.lab = 5, col.main = 6, col.sub = 7, fg = 8) Como trabalhar com as marcas de eixos: > plot(x, y, main = "Explorando plot()", lab = c(8, 15, 15), + mgp = c(5, 2, 3), tck = 1) Como trabalhar com eixos: > plot(x, y, main = "Explorando plot()", xaxp = c(0, 7, 10)) Como controlar a exibio de eixos: ca > plot(x, y, main = "Explorando plot()", axes = F) > plot(x, y, main = "Explorando plot()", xaxt = "n") Como controlar os limites de eixos: > plot(x, y, main = "Explorando plot()", xlim = c(-2, 6), ylim = c(-1, + 8)) Ainda, com relaao ao tipo de grco, podem ser denidas as seguintes opes: c a co > > > > > > > > > > par(mfrow = c(3, 3)) plot(x, y, main = "Explorando plot(x, y, main = "Explorando plot(x, y, main = "Explorando plot(x, y, main = "Explorando plot(x, y, main = "Explorando plot(x, y, main = "Explorando plot(x, y, main = "Explorando plot(x, y, main = "Explorando plot(x, y, main = "Explorando

plot()", plot()", plot()", plot()", plot()", plot()", plot()", plot()", plot()",

sub sub sub sub sub sub sub sub sub

= = = = = = = = =

"p", "l", "o", "b", "c", "s", "S", "h", "n",

type type type type type type type type type

= = = = = = = = =

"p") "l") "o") "b") "c") "s") "S") "h") "n")

1.2. GRAFICOS NO R

41

1.2.13

Legendas

Outro tpico bastante usual em grcos a insero de legendas em um grco. o a e ca a Considere o seguinte conjunto de dados para iniciar o trabalho: > dados <- data.frame(x = 1:5, y = 1:5, nome = letters[1:5]) Um simples legenda pode ser inserida com o comando legend(). Deve-se inserir as coordenadas, o texto da legenda e o tipo de caracter: > plot(x, y) > legend(x = 4, y = 2, legend = "pontos", pch = 1, cex = 0.5) Pode-se utilizar os nomes dos objetos: > plot(dados$x, dados$y, col = rainbow(5), pch = 1:5) > legend(x = 2, y = 4.5, dados$nome, pch = 1:5, col = rainbow(5)) O comando fill pode ser utilizado para preencher os s mbolos: > plot(dados$x, dados$y, col = rainbow(5), pch = 15) > legend(x = 2, y = 4.5, dados$nome, fill = rainbow(5), bg = "lightgray") Se voc tiver linhas, pode-se represent-las da seguinte forma (uma opo): e a ca > plot(x, y, type = "l") > lines(x, y + 1, col = 2) > legend(3.5, 2, c("linha 1", "linha 2"), pch = "-", col = 1:2, + cex = 1.5) A posio da legenda tambm pode ser determinada por comandos, ao invs ca e e de coordenadas (gura 1.17): Veja outros exemplos e opoes no help da funao legend(). c c

42

CAP ITULO 1. SESSAO INICIAL Figura 1.17: . Inserindo legendas no grco. a plot(x, y, type = "n") legend("bottomright", "(x,y)", pch = 1, title = "bottomright") legend("bottom", "(x,y)", pch = 1, title = "bottom") legend("bottomleft", "(x,y)", pch = 1, title = "bottomleft") legend("left", "(x,y)", pch = 1, title = "left") legend("topleft", "(x,y)", pch = 1, title = "topleft, inset = .05", inset = 0.05) legend("top", "(x,y)", pch = 1, title = "top") legend("topright", "(x,y)", pch = 1, title = "topright, inset = .02", inset = 0.02) legend("right", "(x,y)", pch = 1, title = "right") legend("center", "(x,y)", pch = 1, title = "center")

> > > > > > + > > + > >

top topleft, inset = .05 (x,y) 2 3 (x,y)

topright, inset = .02 (x,y)

left y (x,y) 0

center (x,y)

right (x,y)

1 bottomleft 2 (x,y) 2 1

bottom (x,y) 0 x 1

bottomright (x,y) 2

1.2.14

Exerc cios

Tente reproduzir as guras a seguir, utilizando comandos bsicos do R. Em a cada gura so listadas as principais funes utilizadas em cada uma delas. a co

1.2. GRAFICOS NO R

43

Obviamente, a reproduo no precisa ser perfeita (considerando, principalca a mente, dimenses e cores) mas, voc deve tentar aproximar ao mximo cada como e a ponente do grco. a 1. As principais funes utilizadas nesse grco foram: co a plot(), text(), arrows(), segments(), points e rect(). 2. As principais funes utilizadas nesse grco foram: co a plot(), text(), symbols(), polygon(), points e rect(). 3. As principais funes utilizadas nesse grco foram: co a plot(), symbols(), points e segments().

44

CAP ITULO 1. SESSAO INICIAL

Figura 1.18: Exerc sobre texto. cio > + > > + > > > > > > > > > + > + > > + plot(1:10, 1:10, type = "n", ann = FALSE, axes = TRUE, bg = "green", xaxt = "n", yaxt = "n") texto <- substring("preciso", 1:7, 1:7) text(seq(1.7, 2.9, by = 0.2), rep(2, 7), texto, col = rainbow(7), cex = 2.5) text(5, 5, "treinar", srt = 45, cex = 2.5) segments(1, 7.6, 3, 7.6, lty = 3, lwd = 5) text(2, 8, "grficos", cex = 2) a text(8, 8, "no") rect(7.5, 7.5, 8.5, 8.5) text(8, 5, "R", font = 4, cex = 4, col = "blue") arrows(2.5, 2.5, 4.5, 4.5, srt = 45, code = 2, lty = 2) arrows(4.5, 5, 2.5, 7.5, srt = 90, code = 2, lty = 1, lwd = 3) arrows(3, 8, 7.5, 7.5, srt = 0, code = 2, lty = 1, angle = 10, len = 0.4) arrows(8, 7.5, 8, 5.5, srt = -90, code = 2, lty = 2, len = 0.9, angle = 60) text(8, 2, "Eu vou\n conseguir!", cex = 2, col = "red") points(seq(7, 9, len = 10), rep(4, 10), pch = "*", col = "violet", cex = 1.5)

grficos

no

ar

tre

R
**********

in

prec i so

Eu vou conseguir!

1.2. GRAFICOS NO R

45

Figura 1.19: Exerc sobre cores e pol cio gonos. > > > > > > > > + + + > + + +

plot(1:10, 1:10, type = "n", ann = FALSE, axes = FALSE, main = "Bandeira do rect(1, 2, 10, 9, col = "darkgreen") polygon(c(5.5, 1.2, 5.5, 9.8), c(2.2, 5.5, 8.8, 5.5), col = "yellow") symbols(5.5, 5.5, 2, bg = rgb(0, 0, 1), add = TRUE) rect(3.54, 5.3, 7.46, 5.8, col = "white") text(5.5, 5.5, "ORDEM E PROGRESSO", col = "darkgreen") points(5.92, 5.98, , pch = 8, col = "white") points(c(6.06, 5.91, 6.07, 6.13, 6.24, 5.68, 5.29, 5.19, 5.03, 4.87, 5.13, 5.18, 5.38), c(5.14, 4.82, 4.67, 4.99, 5.1, 4.9, 4.55, 4.86, 5.06, 5.06, 4.69, 4.47, 4.31), pch = 8, col = "white") points(c(5.73, 5.88, 5.51, 5.79, 5.96, 6.08, 5.34, 5.5, 5.23, 5.12, 5.55, 5.87, 6.04), c(5.01, 4.58, 4.66, 4.84, 5.1, 4.71, 4.88, 4.56, 4.55, 4.95, 4.42, 4.49, 4.64), pch = 8, col = "white")

ORDEM E PROGRESSO

46

CAP ITULO 1. SESSAO INICIAL

Figura 1.20: Exerc sobre cores e pol cio gonos. > > > > + > + > > > > > > + > + plot(1:10, 1:10, type = "n", ann = FALSE, axes = FALSE) symbols(5, 5, 2, add = TRUE, inc = FALSE) symbols(c(4, 6), c(6, 6), c(0.3, 0.3), add = TRUE, inc = FALSE) points(c(4.041275, 6.086176), c(6.006826, 6.006826), pch = c(44, 44), cex = 4, col = "blue") points(c(7.022771, 2.997524), c(4.974744, 5.011604), pch = c(41, 40), cex = 7) segments(4.467296, 3.426621, 5.617553, 3.297611, col = "red") segments(4.22, 7.1, 5.04, 9, 1) segments(5.04, 9.01, 5.96, 7.02) symbols(5.16, 8.97, 0.2, add = TRUE, inc = FALSE, bg = "yellow") points(4.989172, 4.827304, pch = 94, cex = 3) points(c(3.49, 3.54, 3.84, 4.07), c(4.71, 4.31, 4.21, 4.6), pch = 42, col = 5:8) points(c(5.81, 6.05, 6.41, 6.13), c(4.53, 4.01, 4.18, 4.66), pch = 42, col = 5:8)

,
* * * *

,
^
* * * *

Parte II Grcos estat a sticos

47

Cap tulo 2 Grcos estat a sticos


Sumrio a
2.1 2.2 2.3 2.4 2.5 Explorando Pacotes . . . . . . . . . . . . . . . . . . . . . . 48 Apresentao de Grcos . . . . . . . . . . . . . . . . . . . 49 ca a Grcos univariados . . . . . . . . . . . . . . . . . . . . . . 55 a Mais grcos exploratrios . . . . . . . . . . . . . . . . . . 80 a o Exerc cios . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

2.1
2.1.1

Explorando Pacotes
Introduo ca

No R existem, alm dos pacotes bsicos, vrios outros pacotes (packages) que e a a geram muitos tipos diferentes de grcos. Nesta seao, iremos estudar como gerar a c grcos estat a sticos utilizando estes diferentes pacotes. Entre na pgina do R e explore alguns pacotes, claro, dando enfoque para a a parte grca. a Para baixar um pacote, no R digite > require("nome.do.pacote") Tambm daremos algum enfoque na forma de apresentaao de grcos, procue c a rando seguir as normas de publicao e, claro, dentro dos aspectos estat ca sticos. 48

2.2. APRESENTACAO DE GRAFICOS

49

Segunda avaliao: Para a segunda avaliaao, cada aluno dever escolher ca c a um pacote do R, obviamente, que trabalhe com funoes grcas. Um das questes c a o ser a entrega de um trabalho (um grco) baseado em uma ou mais funes grcas a a co a de um pacote. Voc deve utilizar somente as funes do pacote e/ou funoes bsicas e co c a do R, ou seja, voc deve usar a funo require() apenas uma vez. Procure utilizar e ca dados originais ou ento, simule-os no prprio R (indique a semente set.seed()). a o Aps a escolha do pacote, envie uma email para o professor com o subject o pacote, informando qual o nome do pacote. A preferncia ser dada pela ordem de e a chegada dos emails. O trabalho dever ser entregue no dia da segunda avaliaao. a c Utilize a aula de hoje para pesquisar esses pacotes.

2.2
2.2.1

Apresentao de Grcos ca a
Introduo ca

Nesta seo veremos alguns pontos que tratam da apresentao de grcos, ca ca a como por exemplo, t tulos, formato etc. As informaoes contidas desta seo so bac ca a seadas nas Normas para apresentaao de trabalhos cient c cos publicada pela UFPR. Estas normas, por sua vez, baseiam-se nas normas da ABNT (Associaao Brasileira c de Normas Tcnicas). Mesmo assim, muitas revistas cient e cas, por exemplo, podem possuir normas ou recomendaes diferentes das apresentadas nesse e em outros co textos. Procure, daqui para frente, observar os detalhes de apresentao de grcos, ca a no s em relao as normas de apresentaao, mas tambm com relao ` qualidade a o ca c e ca a de apresentaao das informaes. c co

2.2.2

Percepo grca ca a

Existem algumas caracter sticas fundamentais em grcos que podem gerar a diferentes percepoes em diferentes indiv c duos: 1. Posio ao longo de uma escala comum; ca 2. Posio ao longo de uma escala no alinhada; ca a

50

CAP ITULO 2. GRAFICOS ESTAT ISTICOS

3. Longitude; 4. Angulao; ca 5. Area; 6. Volume, densidade e saturao de cores; ca 7. Escala de cores. Cada indiv duo possui uma percepo diferente em determinados aspectos. ca

2.2.3

Classicao de grcos ca a

Dependendo da nalidade, um grco pode ser classicado em: a Grcos de Propaganda; a Grcos Anal a ticos: informam o que est acontecendo. Em geral, os grcos a a estat sticos; Grcos que substituem tabelas: necessariamente deve-se ler os nmeros para a u poder interpret-lo; a Grcos decorativos: apenas so apresentados porque so bonitos mas no a a a a oferecem muita informaao. c

2.2.4

Princ pios bsicos de um grco a a

Em um grco deve-se procurar observar alguns princ a pios. Basicamente, um grco deve ser: a Compreens vel: permite visualizar as relaes entre variveis; co a Claro: todos os componentes de um grco devem ser perfeitamente percept a veis, principalmente os componentes mais imprtantes devem estar visivelmente destacados; Consistente: os elementos grcos devem fornecer informaoes coerentes com a c grcos anteriores; novos elementos podem requerer uma descrio adicional a ca para fazerem sentido

2.2. APRESENTACAO DE GRAFICOS

51

Ecincia: os elementos grcos devem representar exatamente o que os dados e a querem dizer; pode ser que existam elementos que representem mais de uma informao ca Necessidade: um grco deve ser util para representar dados; deve haver uma a necessidade para inserir elementos em um grco a Conabilidade: os dados devem estar corretamente representados, principalmente no que diz respeito ` escala a

2.2.5

Elementos de um grco a

T tulo Principal T tulo Secundrio o Subt a tulo Descrio do grco ca a Regio de dados e s a mbolos Eixo horizonta e escala Eixo vertical e escala Indicadores: echas, nmeros u Descrio de sinais e marcas ca

2.2.6

Recomendaoes gerais para elaborar um grco c a

1. Os dados devem se sobressair, aparecer. Evite informaoes desnecessrias. c a 2. Utilize elementos destacados para mostrar os dados. 3. No exagere no nmero de s a u mbolos. 4. Utilize uma linha de referncia quando h algum valor importante que deva e a ser visto em todo o grco, por exemplo, uma linha mdia. Cuide para que a e isso no interra na apresentaao do grco. a c a 5. No deixar que s a mbolos ou outros elementos interram em dados quantitativos, por exemplo, se amontoando.

52

CAP ITULO 2. GRAFICOS ESTAT ISTICOS

6. Evite colocar notas, marcas ou sinais em um lado da regio do grco. Coloque a a notas no texto de como explicao. ca 7. Grcos sobrepostos devem ser visualmente diferenciveis. a a 8. Datos sobrepostos devem ser visualmente diferenciveis. a 9. Um grco deve mostras os dados. a 10. Um grco deve induzir o aobservador a pensar sobre o contedo e no no a u a desenho do grco, na tecnologia ou outros atributos. a 11. Evitar distorcer a mensagem que os dados devem passar. 12. Evitar muitos nmeros em um espao pequeno. u c 13. Fazer com que grandes conjuntos de dados tenham coerncia. e 14. Induzir que os olhos do observador comparem diferentes partes dos dados. 15. Revelar diferentes detalhes dos dados, desde a perspectiva global at detalhes e particulares. 16. Ter um objetivo bastante claro: descriao, exploraao, tabulaao e decorao. c c c ca 17. Estar bastante integrado as descrioes estat c sticas e verbais do conjunto de dados.

2.2.7

Erros mais comuns em grcos a

1. Em geral, excessso de decoraao um problema; c e 2. Ausncia de um t e tulo, marcas e indicadores; 3. Ausncia ou erro na escala de eixos; e 4. Excesso de informaao; c 5. Falta de dados; 6. M qualidade de impresso. a a

2.2. APRESENTACAO DE GRAFICOS

53

2.2.8

Objetivo de um grco a

Inicialmente, um grco tem a nalidade de apresentar uma informaao de a c maneira clara, rpida e objetiva, alm de resumir, organizar e apresentar dados de a e qualquer natureza. Obviamente, existem naturezas diversas, bem como objetivos variados na apresentaao de grcos. Pode-se, por exemplo, citar grcos com ns promocionais. c a a Muitas vezes, eles no seguem quaisquer normas r a gidas de apresentao. Mesmo ca nesses casos, deve-se ter sempre em mente que a informaao no pode ser modic a cada. Aspectos relacionados com a maneira de evidenciar ou obscurecer informaoes c em grcos no sero tratados nesse texto. a a a Elementos bsicos: a

2.2.9

N merao u ca

Assim como tabelas, os grcos devem ser referenciados no texto. Se eles a ocorrem em um trabalho, porque possuem alguma importncia, fornecem alguma e a informao. Portanto, eles precisam ter alguma explicaao ou comentrio a respeito ca c a deles no corpo do trabalho. Por esse motivo, os grcos devem ser numerados seqencialmente ao longo do a u texto, independente do tipo. Insere-se, no texto, a palavra Grco e em seguida o a nmero. Pode-se abreviar a palavra Grco. Em alguns textos ou revistas, podeser u a exigida a palavra gura. Exemplo: GRAFICO 1 - Nmero mdio mensal de acidentes de trnsito com ciclistas em u e a Curitiba no ano de 2005. No caso de cap tulos, deve-se utilizar a numeraao correspondente ao cap c tulo. Exemplo: No cap tulo 1 use GRAFICO 1.1 GRAFICO 1.2 No cap tulo 2 use GRAFICO 2.1 GRAFICO 2.2

54

CAP ITULO 2. GRAFICOS ESTAT ISTICOS

2.2.10

T tulo

De maneira simples, o t tulo de um grco deve ser suciente para o leitor a entender seu contedo e sua insero no contexto do material publicado. u ca Basicamente, o t tulo traz uma breve descriao do contedo do grco e uma c u a data de referncia, quando for o caso. e

2.2.11

Fonte

Em grcos estat a sticos, recomendvel que a fonte (responsvel) dos dados e a a seja mencionada. Normalmente a fonte apresentada abaixo do grco, com uma e a tamanho de letra menor do que a do t tulo, iniciada com a expresso Fonte. a

2.2.12

Escala

Em um grco, as informaes que possuem uma escala devem ser apresentadas a co com clareza. Os nmeros da escala devem estar na posiao horizontal e na regio u c a externa dos eixos. A unidade de medida deve aparecer no nal de cada linha do grco. a Caso no seja poss apresentar a escala por completo, pode-se fazer um corte a vel no eixo correspondente para informar que a escala no est completa. a a

2.2.13

Diferena de linhas c

Cores: dependem dos recursos e da nalidade. Em geral, para publicaao c em revistas cient cas, em se tratando de grcos estat a sticos, so utilizados apenas a grcos em preto e branco. Uma alternativa utilizar tonalidades de preto, passando a e pelo cinza, at o branco. e Alm de cores, podem-se utilizar hachuras ou linhas pontilhadas e legenda: Tanto cores, como linhas pontilhadas ou hachuras devem ser referenciadas em uma legenda.

2.3. GRAFICOS UNIVARIADOS

55

2.2.14

Apresentao ca

Em geral, pode-se dizer que quando um grco no consegue expressar a devida a a informao sem a necessidade de nmeros, porque uma tabela deve ser uma opo ca u e ca mais adequada.

2.3

Grcos univariados a

Nesta seao, estudaremos alguns grcos univariados. O principal objetivo c a destes grcos fazer uma anlise descritiva de dados. Entende-se por anlise desa e a a critiva a obtenao de informaes que auxiliem na interpretaao e na avaliaao da c co c c qualidade dos dados em determinadas situaoes. Basicamente a freqncia e a forma c ue de distribuio dos dados so os aspectos que podem ser considerados mais relevanca a tes em uma anlise grca univariada. Obviamente, em casos particulares, pode-se a a ter interesses diferentes dos aqui apresentados. No R, iremos utilizar alguns conjuntos de dados provenientes de pacotes e em algumas situaoes, utilizaremos funoes espec c c cas de alguns pacotes.

2.3.1

Ramo-e-folhas

O objetivo de um grco ramo-e-folhas resumir os dados de tal forma que a e se possa ter uma noao da forma da distribuiao dos dados (simtrica, assimtrica), c c e e a freqncia de observaes, vazios entre os dados e poss ue co veis dados discrepantes (outliers). As observaoes devem ser divididas em duas partes. A primeira, chamada de c ramo, colocada ` direita de uma linha vertical, e a segunda, chamada de folhas, e a e colocada esquerda. Por exemplo, se a varivel possui valores do tipo 2, 34; 2, 98, o a a nmero 2 ser o ramo e 34 e 98 sero as folhas. u a a A maneira como so distribu a dos os ramos e folhas podem variar em funao da c quantidade de dados. Em alguns casos, pode-se ter uma visualizao melhor com ca uma separaao dos dados por ramo. c Esse grco pode no ser muito util quando existem muitas observaes. a a co

56

CAP ITULO 2. GRAFICOS ESTAT ISTICOS

Exemplo Vamos considerar um conjuto de dados simulados no R:

> set.seed(2209) > dados <- sample(1:100, 50)

Para construir o grco, utiliza-se a funao stem(). a c

> stem(dados)

The decimal point is 1 digit(s) to the right of the | 0 1 2 3 4 5 6 7 8 9 10 | | | | | | | | | | | 267 01257 03579 0123 345678 1369 346789 23468 3456789 2679 0

Veja os argumentos e o help da da funao stem(): c

> args(stem)

function (x, scale = 1, width = 80, atom = 1e-08) NULL

Experimente alterar alguns dos parmetros da funao. Tente, tambm, aumena c e tar o tamanho e o tipo de dado gerado. Por exemplo, gere dados de uma distribuiao c Normal, utilizando rnorm().

2.3. GRAFICOS UNIVARIADOS

57

2.3.2

Box-Plot

O box-plot um grco que mostra a posio central, disperso e simetria dos e a ca a dados de uma amostra , comprimento de caudas e dados discrepantes. E utilizado para resumir as informaoes de um conjunto de dados. c Esse grco baseado no resumo dos 5 nmeros(fivenum()). a e u Considere o seguinte conjunto de dados: 17, 22, 23, 27, 29, 32, 38, 42, 46, 52, 60, 92 Para construir o box-plot dessas observaoes, devemos seguir os seguintes pasc sos: Passo 1: Calcular a mediana , o primeiro e terceiro quartis, e a amplitude interquart lica.

> box <- c(17, 22, 23, 27, 29, 32, 38, 42, 46, 52, 60, 92) > quantile(box, type = 2) 0% 17 25% 25 50% 35 75% 100% 49 92

> AIQ <- quantile(box, 0.75, type = 2) - quantile(box, 0.25, + type = 2) Passo 2: Calcular 1,5 AIQ =1,5 24=36 e, Limite inferior = Q1-36=25-36=-11 Limite superior = Q3+36=49+36=85 Passo 3: Encontrar o menor valor e o maior valor dentro dos limites inferiores e superiores, respectivamente: menor=17 e maior=60; Passo 4: Construir o grco (gura 2.1) a No R, basta utilizar a funo boxplot() informando a varivel que ser utica a a lizada. Alm do grco, a funo boxplot() retorna outras estat e a ca stica que podem ser de interesse. > boxplot.stats(box)

58

CAP ITULO 2. GRAFICOS ESTAT ISTICOS

Figura 2.1: Grco Box-Plot. a > boxplot(box, main = "Box plot")

Box plot

$stats [1] 17 25 35 49 60 $n [1] 12 $conf [1] 24.05344 45.94656 $out [1] 92 Veja outras opoes da funo boxplot(). c ca Se o objeto que se deseja utilizar a funo boxplot() apenas uma varivel ca e a

20

40

60

80

2.3. GRAFICOS UNIVARIADOS

59

numrica, ser constru apenas um box-plot. No caso de existir mais de uma e a do varivel, por exemplo, um data.frame, a funao boxplot() ir construir um boxa c a plot para cada coluna. Se existir uma varivel do tipo factor, pode-se utilizar uma frmula para a o construir um box-plot para cada categoria. Por exemplo, considere os dados sobre gatos (cats) do pacote MASS. Existem trs colunas: Sex (sexo), Bwt (peso do corpo), Hwt (peso do corao). e ca > library(MASS) > data(cats) Para construir um box-plot para cada um dos sexos, utiliza-se o seguinte: > boxplot(Bwt ~ Sex, data = cats) Experimente alterar algumas opes da funo boxplot(). Veja, por exemplo, co ca como mudar cores. A opao notch=TRUE insere um corte (entalhe) em cada box-plot. Quando esses c cortes se sobrepem, isso indica que no deve haver diferenas entre as medianas dos o a c grupos.

2.3.3

Grcos de setores ou circulares a

O grco de setores ou circular, tambm conhecido como pizza pode ser a e utilizado para representar a freqncia de observaes de diferentes categorias. O ue co tamanho de cada setor proporcional ao nmero de observaes em cada categoria. e u co O tamanho pode ser denido em nmeros percentuais ou absolutos. u Em geral, um grco de setores no um bom modo de representar dados pora a e que o olho humano tem diculdades para comparar reas relativas. em comparaao a c com medidas lineares. No R, a funao utilizada para esse tipo de grco pie(). c a e Vamos utilizar os dados do arquivo cats do pacote MASS: > require(MASS) > data(cats) > attach(cats)

60

CAP ITULO 2. GRAFICOS ESTAT ISTICOS

Figura 2.2: .Grco Box-Plot com cores. a > boxplot(Bwt ~ Sex, col = c("red", "blue"), data = cats)

2.0

2.5

3.0

3.5

Experimente obter algumas informaoes, c > summary(cats) Sex F:47 M:97 Bwt Min. :2.000 1st Qu.:2.300 Median :2.700 Mean :2.724 3rd Qu.:3.025 Max. :3.900 Hwt Min. : 6.30 1st Qu.: 8.95 Median :10.10 Mean :10.63 3rd Qu.:12.12 Max. :20.50

A funao tapply() (t de table) pode ser utilizada para obter estat c sticas por grupos:

2.3. GRAFICOS UNIVARIADOS

61

> tapply(Bwt, Sex, mean) F M 2.359574 2.900000 Nesse exemplo, utiliza-se a varivel resposta Bwt, agrupa-se por Sex e estima-se a a mdia de cada grupo. e ou fazendo tabelas, > table(Sex) Sex F M 47 97 Suponha uma nova varivel, onde, se o peso do coraao for maior ou igual a a c 9,5, o gato est apto e, caso contrrio, estar inapto. a a a > aptidao <- ifelse(Hwt >= 9.5, "apto", "inapto") > table(Sex, aptidao) aptidao Sex apto inapto F 23 24 M 72 25 Obtenao de uma soma marginal: c > sex.t <- table(Sex, aptidao) > margin.table(sex.t, 1) Sex F M 47 97 > margin.table(sex.t, 2)

62

CAP ITULO 2. GRAFICOS ESTAT ISTICOS

aptidao apto inapto 95 49 Para obter freqncias relativas, utilize ue > prop.table(sex.t, 1) aptidao Sex apto inapto F 0.4893617 0.5106383 M 0.7422680 0.2577320 > prop.table(sex.t, 2) aptidao Sex apto inapto F 0.2421053 0.4897959 M 0.7578947 0.5102041 Se for de interesse obter valores em percentual, multiplique por 100. Para obter as propores em funo do total geral, basta utilizar co ca > sex.t/sum(sex.t) aptidao Sex apto inapto F 0.1597222 0.1666667 M 0.5000000 0.1736111 > round(sex.t/sum(sex.t), 2) aptidao Sex apto inapto F 0.16 0.17 M 0.50 0.17

2.3. GRAFICOS UNIVARIADOS Figura 2.3: Grco de Setores. a > pie(margin.table(sex.t, 2))

63

apto

inapto

(com duas casas decimais) O grco de setores pode ser obtido da seguinte maneira: a Outros exemplos Alguns outros exemplos podem ser vistos a seguir. Por exemplo: > cores <- c(0.3, 0.25, 0.2, 0.15, 0.1) > names(cores) <- c("verde", "vermelho", "azul", "laranja", + "preto") Para esses dados, um grco de setores pode ser constru da seguinte forma: a do Pode-se trabalhar com cores da seguinte forma: Experimente trabalhar com cores:

64

CAP ITULO 2. GRAFICOS ESTAT ISTICOS Figura 2.4: Grco de Setores. a

> pie(cores)

verde

vermelho

preto

azul

laranja

Existem outros parmetros grcos que podem ser utilizados. Veja os argua a mentos da funo pie() e outros exemplos utilizando ?pie. ca

2.3.4

Grco de barras a

Assim como o grco de setores, o grco de barras utilizado para representar a a e a freqncia absoluta ou percentual de diferentes categorias. ue Basicamente, so constru a das barras proporcionais as freqncias. No R, utilizaue se a funo barplot(). Como exemplo veja a gura 2.6, ca Tambm, pode-se trabalhar com cores (gura 2.7): e Quando trata-se de dados dispostos em uma tabela, a funao barplot() enc xerga os dados da seguinte maneira (gura 2.8):

2.3. GRAFICOS UNIVARIADOS Figura 2.5: Grco de Setores. a > pie(rep(1, 24), col = rainbow(24), radius = 0.9)

65

8 9 10 11 12 13 14 15 16 17

5 4 3 2 1 24 23 22 21

18

19

20

Para inverter as posioes, basta utilizar a funao t(), que transpe a matriz c c o de dados (gura 2.9): Ainda, pode-se colocar as barras lado a lado e inserir uma legenda (gura 2.10) : Se os dados esto no formato de uma matriz, as barras so agrupadas para rea a presentar os dados de maneira adequada. Por exemplo, considere o seguite conjunto de dados: > > > + > disciplina <- c("CE213", "CE214", "CE219") alunos <- c("A", "B", "C") notas <- matrix(c(71, 62, 75, 83, 54, 60, 82, 43, 67), nc = 3, dimnames = list(alunos, disciplina)) notas

66

CAP ITULO 2. GRAFICOS ESTAT ISTICOS Figura 2.6: Grco de Barras. a

> barplot(cores)
0.30 0.00 0.05 0.10 0.15 0.20 0.25

verde

vermelho

azul

laranja

preto

CE213 CE214 CE219 A 71 83 82 B 62 54 43 C 75 60 67

Para esses dados, a funo barplot() retorna o seguinte grco: ca a Veja o arquivo de ajuda da funo barplot() para ver mais exemplos e outras ca funcionalidades.

> detach(cats)

2.3. GRAFICOS UNIVARIADOS Figura 2.7: Grco de Barras. a > barplot(cores, col = c("green", "red", "blue", "orange", + "black"))
0.30

67

0.00

0.05

0.10

0.15

0.20

0.25

verde

vermelho

azul

laranja

preto

2.3.5

Histograma

Um histograma utilizado para representar a distribuiao de uma varivel e c a aleatria cont o nua. Basicamente, as freqncias observadas so representadas por ue a classes de ocorrncia. As freqncias absolutas podem ser substitu e ue das por freqnue cias relativas ou proporcionais. Um dos principais aspectos na construao de um histograma a denio do c e ca nmero de classes. Existem vrias proposies sobre esse aspecto. No R algumas u a co dessas proposies esto implementadas. Inicialmente, vamos estudar os comandos co a bsicos do histograma e a seguir, aplicar os diferentes mtodos para deniao do a e c nmero de classes. u No R, a funao hist() constri o histograma. Para ver os argumentos dessa c o

68

CAP ITULO 2. GRAFICOS ESTAT ISTICOS

Figura 2.8: Grco de Barras a partir de uma tabela. a > barplot(sex.t)

20

40

60

80

apto

inapto

funo, utilize ?hist ou args(hist) para ver quais argumentos so poss ca a veis para a funao hist(). c function (x, ...) NULL Como exemplo, considere o seguinte conjunto de dados: > set.seed(123) > x <- sample(1:100, 50, rep = TRUE) > x [1] [18] [35] 29 5 3 79 33 48 41 96 76 89 89 22 95 70 32 5 53 65 100 24 15 90 66 42 56 71 42 46 55 37 96 60 16 46 29 14 68 15 24 58 97 47 11 91 27 90 70 86 25 80

2.3. GRAFICOS UNIVARIADOS Figura 2.9: Grco de Barras a partir de uma tabela - inverso . a a > barplot(t(sex.t))

69

20

40

60

80

Um simples histograma pode ser gerado da seguinte maneira: O nmero de classes pode ser alterado com o comando breaks. Nesse caso so u a aceitos um simples nmero indicando quantas classes devem ser formadas. Interu namente, h uma funo de tolerncia que pode no responder ao valor informado. a ca a a Dependendo da conguraao dos dados,o R, automaticamente, faz um ajuste difec rente do solicitado. Veja alguns exemplos As classes podem ser explicitamente denidas pelo usurio de vrias maneiras: a a > hist(x, br = c(0, 15, 30, 45, 60, 75, 90, max(x))) > hist(x, br = seq(0, 100, len = 8)) As classes tambm podem ter tamanhos diferentes: e

70

CAP ITULO 2. GRAFICOS ESTAT ISTICOS

Figura 2.10: Grco de Barras a partir de uma tabela - legenda. a > barplot(sex.t, beside = TRUE, legend.text = rownames(sex.t), + col = c("white", "gray"))
70

F M 60 0 10 20 30 40 50

apto

inapto

> hist(x, br = c(0, 10, 35, 45, 60, 70, 90, max(x))) O argumento right=TRUE, indica que o intervalo de classe denido da forma e (a,b], ou seja, aberto ` esquerda e fechado ` direita. a a O argumento include.lowest=TRUE indica como o R trata das observaes co que esto nos extremos dos dados. Esse argumento dependente da opao breaks a e c e rigth. O nmero de classes importante na construo do histograma, pois isso afeta u e ca a forma do grco e por sua vez, a maneira como os dados ou informaes sero a co a interpretadas. Na funao hist()o mtodo de Sturges o padro. Esse mtodo dene o c e e a e nmero de classes, k, atravs da seguinte expresso k = 1 + log2 (n). Outra opao u e a c

2.3. GRAFICOS UNIVARIADOS Figura 2.11: Grco de Barras a partir de uma matriz. a > barplot(notas, beside = TRUE, legend = rownames(notas))

71

80

A B C

20

40

60

CE213

CE214

CE219

utilizar o mtodo ou regra de Scott, onde o nmero de classes dado por: k = e e u e 1/3 (2n) .

Histograma com probabilidades O argumento freq=FALSE dene que ao invs de serem inseridas as freqncias e ue no histograma deve-se inserir as propores ou probabilidades. Dessa maneira, o R co insere as barras do histograma de modo que elas tenha uma rea de valor 1. a Observe nesse grco, que no eixo y aparecem as probabilidades e no as a a freqncias. ue

72

CAP ITULO 2. GRAFICOS ESTAT ISTICOS Figura 2.12: Histograma simples.

> hist(x)

Histogram of x
7 0 0 1 2 Frequency 3 4 5 6

20

40 x

60

80

100

Outros elementos Quando a funo hist() utilizada, algumas informaes so geradas. Por ca e co a exemplo: > hist.meu <- hist(x) > hist.meu $breaks [1] 0

10

20

30

40

50

60

70

80

90 100

$counts [1] 3 5 7 3 7 5 5 4 5 6

2.3. GRAFICOS UNIVARIADOS Figura 2.13: Histograma simples. > hist(x, 5)

73

Histogram of x
12 0 0 2 4 Frequency 6 8 10

20

40 x

60

80

100

$intensities [1] 0.005999999 0.010000000 0.014000000 0.006000000 0.014000000 [6] 0.010000000 0.010000000 0.008000000 0.010000000 0.012000000 $density [1] 0.005999999 0.010000000 0.014000000 0.006000000 0.014000000 [6] 0.010000000 0.010000000 0.008000000 0.010000000 0.012000000 $mids [1] 5 15 25 35 45 55 65 75 85 95 $xname [1] "x"

74

CAP ITULO 2. GRAFICOS ESTAT ISTICOS

Figura 2.14: Histograma com probabilidades. > hist(x, freq = FALSE)


0.014

Histogram of x

0.000 0

0.002

0.004

Density 0.006 0.008

0.010

0.012

20

40 x

60

80

100

$equidist [1] TRUE attr(,"class") [1] "histogram" Essas informaoes podem ser utilizadas, por exemplo, na identicaao ou na c c insero de freqncias sobre as barras (gura 2.15). ca ue

2.3.6

Funes rug e jitter co

Em um histograma, pode-se ter interesse em visualisar a densidade de dados por cada classe. A funo rug() insere no grco pequenas linhas, indicando a ca a

2.3. GRAFICOS UNIVARIADOS Figura 2.15: Histograma com identicaao. c > hist.meu <- hist(x) > text(hist.meu$mid, hist.meu$counts + 0.2, hist.meu$counts)
7

75

Histogram of x
7

Frequency 3 4

0 0

20

40 x

60

80

100

posiao dos pontos em daca barra do histograma. Pode acontecer que dados iguais c ocorram em um classe. Nesse caso, pode-se utilizar a funo jitter() que adiciona ca uma certa quantidade a cada observao, permitindo que dados iguais possam ser ca diferenciados. Em alguns casos, principalmente se existirem muitos dados, essas funoes poc dem no ser muito uteis. a

> rug(jitter(x, 0.15))

Experimente, tambm, trabalhar com cores, linhas (density), legendas etc. e

76

CAP ITULO 2. GRAFICOS ESTAT ISTICOS

Sugesto de estudo a Dentro do pacote MASS h uma funao que faz histogramas e tambm dentro a c e do pacote lattice. Veja quais so os argumentos de cada funo, compare com a a ca funo hist e tente construir alguns grcos. ca a > require(MASS) [1] TRUE > truehist(x) > require(lattice) [1] TRUE > histogram(x)

2.3.7

Grcos de disperso ou Scatter plots a a

Grcos que mostram a disperso de dados so uteis para identicar muitas caa a a racter sticas de dados. Alm da disperso, outliers, tendncias entre outros aspectos, e a e podem ser explorados com grcos de disperso ou Scatter plots. a a No R, alm da funo plot(), outras funoes como stripchart() e dotchart() e ca c podem ser utilizados para representar pontos. Dependendo do tipo de objeto que est sendo utilizado, um simples vetor ou a uma matriz, cada funo gerar grcos de acordo com a antureza dos dados. ca a a stripchart A funao stripchart() produz um grco unidimensional, ou seja, considec a rando apenas uma escala. Um grco de pontos pode ser uma alternativa a um a boxplot, principalmente quando o nmero de pontos pequeno. u e Inicialmente, explore os argumentos da funao stripchart(): c > args(stripchart)

2.3. GRAFICOS UNIVARIADOS

77

function (x, method = "overplot", jitter = 0.1, offset = 1/3, vertical = FALSE, group.names, add = FALSE, at = NULL, xlim = NULL, ylim = NULL, main = "", ylab = "", xlab = "", log = "", pch = 0, col = par("fg"), cex = par("cex")) NULL Como exemplo, vamos considerar o seguinte conjunto de dados: > set.seed(12) > dados <- sample(100, 30, rep = TRUE)

Figura 2.16: Grco de disperso - Stripchart. a a > stripchart(dados, method = "overplot")

20

40

60

80

Outras opoes podem ser inseridas. Em especial, o mtodo de posicionamento c e dos pontos relevante, pois, por exemplo, observaoes com o mesmo valor podem e c passar despercebidas em um grco desse tipo. Assim, existem trs opes nesse a e co

78

CAP ITULO 2. GRAFICOS ESTAT ISTICOS

aspecto: overplot, que insere os pontos sobrepostos, jitter, insere os pontos com um ru doe stack, que insere os pontos um sobre o outro, como se fosse uma pilha de tijolos.

> stripchart(dados, method = "jitter", jitter = 0.1) > stripchart(dados, method = "stack")

Quando os dados esto agrupados por grupos ou categorias, a funao stripchart() a c constri um grco, separando as categorias, da seguinte maneira o a Figura 2.17: Stripchart com grupos. set.seed(12) x <- rnorm(25, 5, 2) grupo <- gl(5, 5) stripchart(x ~ grupo)

> > > >

Experimente, por exemplo, inserir as mdias no grco: e a

2.3. GRAFICOS UNIVARIADOS Figura 2.18: Stripchart com grupos e mdias. e > grupo.m <- tapply(x, grupo, mean) > grupo.m 1 2 3 4 5 3.488884 4.642260 3.803347 5.415836 5.766047 > stripchart(x ~ grupo) > stripchart(grupo.m ~ 1:5, col = 2, add = T, pch = "x")

79

x 2 4 6 8

Dotchart A funao dotchart() utilizada visualizar os dados, na ordem em que so c e a fornecidos. Antes de iniciar, veja quais so os argumentos dessa funao. a c Como exemplo, considere o seguinte conjunto de dados: > set.seed(12) > dados <- sample(100, 10, rep = TRUE)

80

CAP ITULO 2. GRAFICOS ESTAT ISTICOS

Um grco pode ser constru da seguinte maneira: a do Figura 2.19: Dotchart. > dotchart(dados)

20

40

60

80

Tambm, se os dados estiverem em uma ordem, o mesmo conjunto de dados e e visualizado de outra maneira: Se os dados estiverem na forma de grupos Para nalizar, procure alterar os argumentos fornecidos para as funoes dotchart() c e stripchart(). Experimente tambm, estudar outros argumentos e trabalhar com e outros dados.

2.4

Mais grcos exploratrios a o

Existem muitos grcos para anlsie exploratria de dados. Nesta seo, verea a o ca mos alguns outros grcos que podem ser utilizados para resumir informaoes. No a c

2.4. MAIS GRAFICOS EXPLORATORIOS Figura 2.20: Dotchart. > set.seed(12) > dados <- sample(100, 10, rep = TRUE) > dados [1] 7 82 95 27 17 4 18 65 3 1

81

> dotchart(sort(dados))

20

40

60

80

R, alguns desses grcos so inseridos em pacotes (packages). a a Por exemplo, no pacote gplots existem algums funoes grcas para explorar c a dados.

2.4.1

ballonplot

A funao baloonplot() resume as informaes em uma tabela mas, h alguc co a mas caracter sticas que podem ser acrescentadas nessa tabela.

82

CAP ITULO 2. GRAFICOS ESTAT ISTICOS Figura 2.21: Dotchart.

> > > > >

set.seed(12) x <- rnorm(25, 5, 2) grupo <- gl(5, 5) grupos <- data.frame(x, grupo) dotchart(x, groups = grupo)

Primeiro, necessrioa carregar o pacote gplots. e a

> require("gplots")

Veja o exemplo: Experimente vericar quais so os argumentos da funao e tente modicar a c alguns argumentos do exemplo acima.

2.4. MAIS GRAFICOS EXPLORATORIOS Figura 2.22: Baloonplot. > > > > > + > > > set.seed(12) vendas.mar <- sample(100:1000, 50) vendas.abr <- sample(100:800, 50) marca <- rep(LETTERS[1:5], each = 10) cidade <- c("Curitiba", "Maring", "Londrina", "Cascavel", a "Foz do Iguau") c cidades <- rep(cidade, 10) dados <- data.frame(cidades, marca, vendas.mar, vendas.abr) balloonplot(dados$marca, dados$cidades, dados$vendas.mar)

83

Balloon Plot for dados, marca by dados, cidades. Area is proportional to dados$vendas.mar.
marca dados cidades dados Cascavel 461 1125 1206 1237 499
4528

Curitiba

292

938

1278

1223

787

4518

Foz do Iguau

358

533

975

1086

1583

4535

Londrina

1620

1011

450

1695

1078

5854

Maring

1095
3826

1328
4935

1334
5243

1577
6818

981
4928

6315

25750

2.4.2

pairs

Outro grco exploratrio, pode ser constru com a funao pairs(). Essa a o do c funo relaciona as variveis contidas em um data frame ou matriz, formando uma ca a matriz de disperso de dados. Veja o resultado da funo aplica aos dados de vendas: a ca

84

CAP ITULO 2. GRAFICOS ESTAT ISTICOS Figura 2.23: Mltiplos grcos de disperso. u a a

> pairs(dados)

200

500

800 5

cidades

marca

vendas.mar

500

800

vendas.abr

200

200

600

1000

2.4.3

bpplot

Dentro do pacote Hmisc, experimente utilizar a funo bpplot(). Essa funao ca c cria um boxplot, considerando os percentis de cada varivel. Essaa funao retorna a c um grco para a var a avel parecido com o boxplt mas, as observaoes da varivel c a so orepresentadas pela largura do boxplot. a

2.4.4

ecdf

A funo ecdf, dentro do pacote Hmisc, constri um grco com a funo de ca o a ca distribuiao emp c rica acumulada dos dados. E um grco onde a ordem de cada a observao inserida no grco em funao de cada observaao na amostra. ca e a c c

200

600

1000

2.4. MAIS GRAFICOS EXPLORATORIOS Figura 2.24: Grco boxplot com percentis. a > > > > > set.seed(12) x1 <- rnorm(500) x2 <- runif(500, -2, 2) x3 <- abs(rnorm(500)) - 2 bpplot(x1, x2, x3)

85

BoxPercentile Plot

x1

x2

x3

Figura 2.25: Grco ecdf. a > > > > > A <- rnorm(50, 5, 2) B <- rnorm(50, 10, 2) x <- c(A, B) g <- c(rep("A", length(A)), rep("B", length(B))) ecdf(x, group = g)

2.4.5

O grco Normal de Probabilidade a

Em muitas anlises estat a sticas, um dos pressupostos mais comuns de que a e varivel aleatria em estudo tenha distribuio Normal. Alm de vrios testes de a o ca e a

86

CAP ITULO 2. GRAFICOS ESTAT ISTICOS

hipteses existentes para realizar essa avaliao, existem, tambm, maneiras grcas o ca e a de se avaliar se uma varivel aleatria possui ou no distribuiao Normal. a o a c Um desses mtodos grcos, bastante utilizado, o Grco Normal de Probae a e a bilidade. No R, a funo qqnorm() constri o grco. ca o a Esse grco tambm pode ser utilizado para avaliar se existem outliers ou a e efeitos signicativos de fatores em experimentos planejados. Base terica do mtodo o e Considere a gura 2.26, representando uma Distribuio Normal. ca Figura 2.26: Grco da distribuio Normal. a ca > curve(dnorm(x), from = -4, to = 4, ylab = "") > segments(1, -0.2, 1, 0.243) > text(0, 0.1, "P")
0.4 0.1 0.2 0.3

0.0 4

0 x

A probabilidade percentual P de ocorrncia de algum valor menor do que x e e

2.4. MAIS GRAFICOS EXPLORATORIOS

87

dada pela rea a esquerda de x. a Fazendo um grco para todos os poss a veis valores de P vs x obtm-se a curva e normal acumulada, que tem a caracter stica sigmide (forma de S, gura 2.27). o Figura 2.27: Grco da distribuiao Normal acumulada. a c > curve(pnorm(x), from = -4, to = 4, ylab = "P%")

P% 0.0 4 0.2 0.4

0.6

0.8

1.0

0 x

Para gerar o grco normal de probabilidade, faz-se um ajuste na escala vertical a (P) de modo a se obter uma linha reta. Considere uma amostra de 10 pontos (n=10). A primeira observaao (ordenada) apresenta os primeiros 10% da distribuiao acuc c mulada da varivel. A segunda representa 20% e assim por diante. Considerando a que a para estabelecer uma reta a partir da curva acumulada o ponto central (50% ou 0.5) permanece o mesmo, o ajuste pode ser realizado em relao ao centro ou ca 0.5. Ou ainda, a cada 10% pode-se considerar o ponto intermedirio da classe para a refazer o grco de P vs x. Assim, de forma geral tem-se a i 0.5 n

Pi = 100

88

CAP ITULO 2. GRAFICOS ESTAT ISTICOS

onde i = 1, 2, 3, . . . , n representa a posiao da observaao na amostra ordenada e n c c o tamanho da amostra ou no caso de um experimento, o nmero de efeitos. u Um grco das observaes ordenadas vs os valores percentuais Pi indica o a co comportamento da varivel. a No caso da avaliao da Normalidade de uma varivel, espera-se que a maioria ca a dos pontos esteja sobre a reta e concentrados na regio central. Nas caudas, como a se espera para uma distribuiao Normal, podem aparecer pontos no muito concenc a trados e um pouco afastados da reta. Pontos muito distantes e afastados da reta indicam um poss outlier ou dado discrepante. vel Em se tratando de um experimento, nesse grco, tem-se que tentar avaliar a quais so os efeitos que no devem estar ocorrendo ao acaso. Isso pode ser identia a cado de forma subjetiva pelos pontos que se afastam de uma linha reta. Essa linha reta colocada subjetivamente sobre os pontos. Uma sugesto e a (Montgomery, 2001) estabelecer uma reta entre os pontos nos quantis 25% e 75%. e Para saber quais so os efeitos signicativos basta observar quais so os pontos a a no grco que se afastam da reta e identicar os efeitos correspondentes. a

Construindo o grco no R a

Exemplo de dados de um experimento: Para construir o grco, inicialmente necessitamos das estimativas dos efeitos a dos fatores do experimento. Considere o exemplo de um experimento fatorial 24 com uma repetiao. Os efeitos estimados so apresentados na tabela 2.1: c a As probabilidades de cada um dos efeitos so obtidas por P = 100(i0, 5)/15. a Assim, os resultados para construao do grco so apresentados na tabela 2.4.5 c a a As probabilidades de cada um dos efeitos so obtidas por P = 100(i0, 5)/15. a O grco obtido quando os efeitos vs P so colocados em um grco de a e a a disperso. Uma linha reta entre os valores dos efeitos ajuda a vericar quais so os a a pontos que podem ser considerados como signicativos. Essa linha reta colocada subjetivamente sobre os pontos. Uma regra (Monte gomery, 2001) ligar os pontos nos quantis 25% e 75%. e

2.4. MAIS GRAFICOS EXPLORATORIOS Tabela 2.1: Estimativas de efeitos de um experimento 24 Efeitos Estimativas A -8,00 B 24,00 C -2,25 D -5,50 AB 1,00 AC 0,75 AD 0,00 BC -1,25 BD 4,50 CD -0,25 ABC -0,75 ABD 0,50 ACD -0,25 BCD -0,75 ABCD -0,25

89

Tabela 2.2: Clculo dos Percentuais Pi a


i efeitos Identicao ca Pi 1 -8 A 3,3 2 -5,5 D 10 3 -2,25 C 16,7 4 -1,25 BC 23,3 5 -0,75 ABC 30 6 -0,75 BCD 36,7 7 -0,25 CD 43,3 8 -0,25 ACD 50 9 -0,25 ABCD 56,7 10 0 AD 63,3 11 0,5 ABD 70 12 0,75 AC 76,7 13 1 AB 83,3 14 4,5 BD 90 15 24 B 96,7

Os efeitos so: a > efeitos <- c(-8, 24, -2.25, -5.5, 1, 0.75, 0, -1.25, 4.5, + -0.25, -0.75, 0.5, -0.25, -0.75, -0.25) Ordenando > efeitos.o <- sort(efeitos) > fatores <- c("A", "B", "C", "D", "AB", "AC", "AD", "BC", + "BD", "CD", "ABC", "ABD", "ACD", "BCD", "ABCD") > names(efeitos) <- fatores Aplicando os percentuais acumulados para os efeitos tem-se os seguintes valores: > p <- c(3.3, 10, 16.7, 23.3, 30, 36.7, 43.3, 50, 56.7, 63.3, + 70, 76.7, 83.3, 90, 96.7)

90

CAP ITULO 2. GRAFICOS ESTAT ISTICOS

Esses valores podem ser obtidos atravs da seguinte funao no R: e c > P <- function(efeitos.o) { + p <- numeric(0) + n <- 1:length(efeitos) + for (i in n) { + p[i] <- 100 * (i - 0.5)/length(efeitos) + } + print(p) + } > P() [1] 3.333333 10.000000 16.666667 23.333333 30.000000 36.666667 43.333333 [8] 50.000000 56.666667 63.333333 70.000000 76.666667 83.333333 90.000000 [15] 96.666667 e O grco (gura 2.28) obtido pelo comando plot(): a Para fazer a linha, podemos encontrar os quantis dos efeitos, > quantile(efeitos.o) 0% 25% 50% -8.000 -1.000 -0.250 75% 100% 0.625 24.000

Utilizando o comando locator() pode-se fazer uma linha entre os pontos dos quantis 25% e 75%. Depois do comando, clique nos pontos correspondentes no grco e uma linha ser criada. a a > points(quantile(efeitos.o, 0.25), 25, col = 2, pch = 19, + cex = 0.5) > points(quantile(efeitos.o, 0.75), 75, col = 2, pch = 19, + cex = 0.5) > segments(quantile(efeitos.o, 0.25), 25, quantile(efeitos.o, + 0.75), 75, col = "blue") Voc pode usar, tambm, o comando locator: e e

2.4. MAIS GRAFICOS EXPLORATORIOS Figura 2.28: Grco dos efeitos. a > plot(efeitos.o, p)
100

91

p 0 20 40

60

80

10 efeitos.o

15

20

25

> locator(n = 2, type = "l") Os efeitos signicativos podem ser identicados com o comando identify(). Lembre-se que os efeitos esto ordenados do menor para o maior. a > identify(efeitos.o, p) Para terminar, aperte o boto direito do mouse (Linux). No Windows, aperte a o boto direito e selecione stop. a Faa agora o Grco Normal de Probabilidade gerado pelo R. Compare os c a grcos. a Experimente a opo ca

92

CAP ITULO 2. GRAFICOS ESTAT ISTICOS

Figura 2.29: Grco Normal de Probabilidade. a > qqnorm(efeitos) > qqline(efeitos)


25

Normal QQ Plot

Sample Quantiles 5 10

15

20

0 Theoretical Quantiles

> identify(c$x, c$y, labels = names(c$x))

E agora?

2.4.6

Curvas de densidades

Em algumas situaoes, pode ser de interesse fazer grcos de funes relacioc a co nadas ` algumas distribuioes. Nesta seo, veremos como utilizar a funao curve() a c ca c para gerar alguns grcos dessa natureza. a Por exemplo, vamos utilizar inicialmente a distribuiao Normal. c A distribuiao Weibull, pode ser representada da seguinte forma: c

2.4. MAIS GRAFICOS EXPLORATORIOS Figura 2.30: Grco Normal de Probabilidade - datax=T. a > c <- qqnorm(efeitos, datax = T) > qqline(efeitos)

93

Normal QQ Plot

Theoretical Quantiles 0

5 10 Sample Quantiles

15

20

25

E a distribuiao Gama, da seguinte maneira: c Em cada uma destas distribuioes, modique os parmetros para entender o c a comportamento de cada uma. Sugesto de exerc a cios Experimente construir o grco de outras distribuioes. Como sugesto, expea c a 2 rimente a distribuio F , e t. ca

2.4.7

coplot

A funao coplot() pode ser utilizada para representar dados que podem ser c arranjados da forma resp b, onde a e b so variveis do tipo fator. Em geral, modelos a a

94

CAP ITULO 2. GRAFICOS ESTAT ISTICOS

Figura 2.31: Uso da funo curve para Distribuiao Normal. ca c > curve(dnorm(x, m = 20, sd = 3), from = 0, to = 30, main = "Distribui~o Nor ca

Distribuio Normal
0.12 0.00 0 0.02 dnorm(x, m = 20, sd = 3) 0.04 0.06 0.08 0.10

10

15 x

20

25

30

estat sticos podem ser escritos sob essa forma. Uma plicao est na anlise de dados ca a a experimentais, por exemplo. Como exemplo, considere o seguinte conjunto de dados > > > > > > set.seed(123) resp <- rnorm(24, 50, 5) b <- as.factor(rep(1:3, each = 8)) c <- as.factor(rep(1:2, each = 4, len = 24)) dados <- data.frame(resp, b, c) dados resp b c 47.19762 1 1

2.4. MAIS GRAFICOS EXPLORATORIOS Figura 2.32: Uso da funao curve para Distribuio Weibull. c ca > curve(dweibull(x, scale = 2, shape = 1), from = 0, to = 15, + main = "Distribui~o Weibull") ca

95

Distribuio Weibull
0.5 0.0 0 dweibull(x, scale = 2, shape = 1) 0.1 0.2 0.3 0.4

5 x

10

15

2 3 4 5 6 7 8 9 10 11 12 13 14

48.84911 57.79354 50.35254 50.64644 58.57532 52.30458 43.67469 46.56574 47.77169 56.12041 51.79907 52.00386 50.55341

1 1 1 1 1 1 1 2 2 2 2 2 2

1 1 1 2 2 2 2 1 1 1 1 2 2

96

CAP ITULO 2. GRAFICOS ESTAT ISTICOS

Figura 2.33: Uso da funao curve para Distribuio Gamma. c ca > curve(dgamma(x, scale = 1.5, shape = 2), from = 0, to = 15, + main = "Distribui~o Gamma") ca
0.25

Distribuio Gamma

0.00 0

dgamma(x, scale = 1.5, shape = 2) 0.05 0.10 0.15 0.20

5 x

10

15

15 16 17 18 19 20 21 22 23 24

47.22079 58.93457 52.48925 40.16691 53.50678 47.63604 44.66088 48.91013 44.86998 46.35554

2 2 3 3 3 3 3 3 3 3

2 2 1 1 1 1 2 2 2 2

A funo coplot() pode ser utilizada da seguinte maneira: ca Interprete o grco! a

2.4. MAIS GRAFICOS EXPLORATORIOS Figura 2.34: Uso do coplot. > coplot(resp ~ b | c)

97

Given : c

resp

40

45

50

55

Experimente, tambm, inverter os fatores: e

2.4.8

Grcos para representao de superf a ca cie de resposta

Em algumas anlises, grcos tridimensionais podem ser gerados para visualia a zaao do comportamento de modelos estat c sticos.

Superf cie de resposta Entre os mais comuns est o grco de superf de resposta. Este tipo de a a cie grco gerado a partir de modelos que expressam o comportamento de uma varivel a e a resposta em funao de dois ou mais fatores. c

98

CAP ITULO 2. GRAFICOS ESTAT ISTICOS Figura 2.35: Uso do coplot.

> coplot(resp ~ c | b)
Given : b
3 2 1

resp

40

45

50

55

40

45

50

55

No abordaremos aqui o ajuste de modelos. Faremos apenas o uso de modelos a pr-existentes e Para construir o grco de superf de resposta so necessrias trs variveis, a cie a a e a ou seja, x e y, representando os n veis dos fatores e uma varivel z, representando o a comportamento da varivel resposta. a Como exemplo, considere uma variaao de x e y da seguinte forma c

> x <- seq(-1.5, 1.5, length = 30) > y <- seq(-1.5, 1.5, length = 30)

Os valores preditos pelo modelo, nessa escala de variao, podem ser preditos ca por uma funo ou um modelo ca

2.4. MAIS GRAFICOS EXPLORATORIOS

99

> z.f <- function(x, y) { + y <- 31.76 + 1 * x + 0.46 * y - 0.74 * x^2 - 0.51 * y^2 + + 0.275 * x * y + } Alternativamente, os coecientes do modelo podem ser obtidos diretamente do modelo (nesse caso ele no existe, apenas apresentamos a forma) a > z <- function(x = x, y = y) { + y <- modelo$coef[1] + modelo$coef[2] * x + modelo$coef[3] * + y + modelo$coef[4] * x^2 + modelo$coef[5] * y^2 + + modelo$coef[6] * x * y + } Antes de construirmos o grco, veja como as trs variveis x, y e z esto a e a a organizadas. Para gerar o grco, os dados precisam ser agrupados de forma a serem utilia zados pela funao persp. c A funo outer prepara os dados para serem utilizados pela funao persp. ca c > z <- outer(x, y, z.f) Para mais detalhes dessa funo utilize ca > ? (outer) Para construir a superf cie, utilize a funo persp da seguinte maneira: ca Experimente alterar alguns argumentos e entender sua funcionalidade. Os mesmos dados podem ser representados de duas outras formas. Atravs de e curvas de n com a funao countour() ou de um grco representando a varivel vel c a a z por cores com a funo image(). ca Curva de n vel Uma curva de n pode ser constru com a funo countour(). Observe vel da ca que cada curva corresponde a uma altura da varivel resposta a Investigue a funao curve() e experimente alterar algumas opoes. c c

100

CAP ITULO 2. GRAFICOS ESTAT ISTICOS

Figura 2.36: Grco de uma superf de resposta. a cie > persp(x, y, z, theta = -35, phi = 5, expand = 0.5, col = "gray", + xlab = "Tempo", ylab = "Temperatura", zlab = "Rend", + scale = T, ticktype = "detailed")

32 31

Grco image() a Uma outra alternativa aos grcos anteriores construir um grco de cores a e a para representar o modelo. A funao image() pode ser utilizada nesse caso. c VEja o seguinte exemplo: Para nalizar, considere que o ponto mximo (nesse caso) corresponde a 0,7948 a e 0,6556 graus. A representaao pode ser feita da seguinte forma c Para nalizar, experimente utilizar alguns exemplos do pacote lattice: > require(lattice) > x <- seq(-pi, pi, len = 20)

Rend

30 29 28 1.5 1.0 Te 0.5 mp 0.0 era 0.5 tur a 1.0 1.5 1.5 1.5

1.0

0.5

0.5 0.0 po Tem

1.0

2.4. MAIS GRAFICOS EXPLORATORIOS Figura 2.37: Grco de uma curva de n a vel. > contour(x, y, z, xlab = "Tempo", ylab = "Temperatura")

101

1.5 1.5

1.0

Temperatura 0.5 0.0 0.5

1.0

1.5

1.0

0.5

0.0 Tempo

0.5

1.0

1.5

> > > > +

y <- seq(-pi, pi, len = 20) g <- expand.grid(x = x, y = y) g$z <- sin(sqrt(g$x^2 + g$y^2)) print(wireframe(z ~ x * y, g, drape = TRUE, aspect = c(3, 1), colorkey = TRUE))

> wireframe(volcano, shade = TRUE, aspect = c(61/87, 0.4), + light.source = c(10, 0, 10)) Experimente tambm a utilizar a funo scatterplo3d() do pacote do mesmo e ca nome: > require(scatterplot3d) > z <- seq(-10, 10, 0.01)

102

CAP ITULO 2. GRAFICOS ESTAT ISTICOS

Figura 2.38: Grco de cores. a > image(x, y, z, col = topo.colors(12))


1.5 1.5 1.5 1.0 0.5 y 0.0 0.5 1.0

1.0

0.5

0.0 x

0.5

1.0

1.5

> x <- cos(z) > y <- sin(z) > scatterplot3d(x, y, z, highlight.3d = TRUE, col.axis = "blue", + col.grid = "lightblue", main = "scatterplot3d - 1", pch = 20)

2.5

Exerc cios

1. Construa o histograma da gura 2.40, baseado nos seguintes dados: > set.seed(11) > x1 <- rnorm(50, 50, 10) 2. Construa o histograma da gura 2.41, baseado nos seguintes dados de 1:

2.5. EXERC ICIOS Figura 2.39: Grco com representao do ponto de mximo. a ca a > image(x, y, z, col = topo.colors(12)) > contour(x, y, z, xlab = "Tempo", ylab = "Temperatura", add = T) > points(0.7948, 0.6556, col = "red")
1.5

103

1.5 1.5

1.0

0.5

y 0.0

0.5

1.0

1.0

0.5

0.0 x

0.5

1.0

1.5

3. Construa o histograma e o pol gono de freqncia da gura 2.42, baseado nos ue seguintes dados: > set.seed(11) > x2 <- sample(1:50, 20, rep = TRUE) 4. Construa o grco boxplot da gura 2.43, baseado nos seguintes dados: a > set.seed(123) > x3 <- rnorm(50)

104

CAP ITULO 2. GRAFICOS ESTAT ISTICOS

Figura 2.40: Primeiro histograma. > hist(x1, br = seq(0, 100, by = 10), density = 20, angle = 30, + border = 2, main = "Primeiro histograma")

Primeiro histograma

0 0

Frequency 10 15

20

20

40 x1

60

80

100

2.5. EXERC ICIOS

105

Figura 2.41: Segundo Histograma. > hist(x1, br = seq(0, 100, by = 5), col = "gray", main = "Segundo histograma + xlab = "resposta", ylab = "Probabilidade", prob = TRUE) > lines(density(x1))

Segundo histograma

0.00 0

0.01

Probabilidade 0.02 0.03

0.04

20

40 resposta

60

80

100

106

CAP ITULO 2. GRAFICOS ESTAT ISTICOS

Figura 2.42: Pol gono de Freqncia. ue > > > > + set.seed(11) x2 <- sample(1:50, 20, rep = TRUE) x2.h <- hist(x2, , br = seq(0, 50, by = 5)) lines(c(min(x2.h$breaks), x2.h$mids, max(x2.h$breaks)), c(0, x2.h$counts, 0), type = "l")

Histogram of x2
4 0 0 1 Frequency 2 3

10

20 x2

30

40

50

2.5. EXERC ICIOS

107

Figura 2.43: Grco boxplot com rug. a > boxplot(x3, boxwex = 0.15, ylab = "Resposta") > rug(x3, side = 2)

Resposta 0

Cap tulo 3 Grcos para dados a georeferenciados


Sumrio a
3.1 Criando um Pictograma . . . . . . . . . . . . . . . . . . . 122

3.0.1

Grcos para dados georeferenciados a

Dados georeferenciados so aqueles que possuem um sistema de coordenadas a que o localizam no espao. Em geral esse espao do tipo bidimensional, ou seja, c c e com coordenadass x, y, que podem representar distncias, em metros, ou mesmo a sob a forma de latitude, longitude. Em outras situaoes, dados georeferenciados c podem ser representados em um espao tridimensional, como por exemplo, estrelas c e planetas, contedo intracelular, cerebral etc. u Existem muitas formas de se representar dados georeferenciados. Desde um simples grco de disperso at um mapa com cores representando intensidades a a e de ocorrncia de eventos. Este ultimo, utiliza normalmente metodologias baseadas e em modelagem geoestat stica. No daremos enfoque em modelos espaciais neste a cap tulo. Assim como existem diferentes maneiras de se representar dados georeferenciados, no R, existem vrios pacotes criados para tratar desse tipo de informaao. a c Neste cap tulo, veremos alguns desses pacotes. Algumas funes sero utilizadas co a para representar dados georeferenciados. Tambm veremos algumas funes que e co 108

109

trabalham especicamente com mapas. O pacote sp O pacote sp possui muitas funoes que trabalham com dados georeferenciados. c Alm de funoes grcas, existem muitas funoes que denem classes de objetos e c a c para serem utilizados no R. Classes so tipos de objetos que possuem caracter a sticas espec cas para serem utilizados por diferentes pacotes em diferentes metodologias. Anlises baseadas em grcos so uma dessas possibilidades. a a a Como exemplo, vamos criar um conjunto de dados para represent-lo. a > > > > xc = round(runif(10), 2) yc = round(runif(10), 2) xy = cbind(xc, yc) xy xc 0.60 0.33 0.49 0.95 0.48 0.89 0.91 0.61 0.41 0.15 yc 0.94 0.30 0.06 0.95 0.72 0.14 0.55 0.95 0.59 0.40

[1,] [2,] [3,] [4,] [5,] [6,] [7,] [8,] [9,] [10,]

Observe que o objeto xy da classe matrix. e > class(xy) [1] "matrix" A aplicaao da funo plot() resulta no grco da gura 3.1: c ca a No pacote sp, a funo SpatialPoints() muda a classe do objeto para ser ca utilizado por outras funoes. c

110

CAP ITULO 3. GRAFICOS PARA DADOS GEOREFERENCIADOS Figura 3.1: Grco de disperso. a a

> plot(xy)

yc 0.2 0.4

0.6

0.8

0.2

0.4 xc

0.6

0.8

> xy.sp = SpatialPoints(xy) Observe agora que o objeto xy.sp possui, agora, algumas propriedades. > class(xy.sp) [1] "SpatialPoints" attr(,"package") [1] "sp" Experimente, tambm, utilizar a funo plot() sobre esse objeto. e ca Para obter os dados na forma de matriz, novamente, utilize-se a funo coordinates() ca

111 Figura 3.2: Grco de disperso de um objeto da classe sp. a a > plot(xy)

yc 0.2 0.4

0.6

0.8

0.2

0.4 xc

0.6

0.8

> xy.cc <- coordinates(xy.sp) > class(xy.cc) [1] "matrix" Existem outros, recursos dentro do pacote sp, que podem ser utilizados. Por exemplo, a funo bbox() retorna os pontos extremos dos dados. Explore o pacote ca e descubra outras funcionalidades. Alm disso, um summary() mostra outros atributos dos objetos. e > summary(xy.sp) Object of class SpatialPoints Coordinates:

112

CAP ITULO 3. GRAFICOS PARA DADOS GEOREFERENCIADOS

min max xc 0.15 0.95 yc 0.06 0.95 Is projected: NA proj4string : [NA] Number of points: 10 Pontos podem ter atributos. Por exemplo, um ponto pode ser uma medida da altura de uma rvore, etc. Assim, em cada coordenada podem existir vrias a a medidas. Essas medidas podem ser representadas gracamente. Como exemplo, vamos criar duas variveis, representadas aqui por z1 e z2: a > df <- data.frame(z1 = round(5 + rnorm(10), 2), z2 = 20:29) Inicialmente, uma forma de construir ou de inserir medidas em um objeto e utilizando a funao SpatialPointsDataFrame() c > xy.spdf <- SpatialPointsDataFrame(xy.sp, df) > xy.spdf coordinates 1 (0.6, 0.94) 2 (0.33, 0.3) 3 (0.49, 0.06) 4 (0.95, 0.95) 5 (0.48, 0.72) 6 (0.89, 0.14) 7 (0.91, 0.55) 8 (0.61, 0.95) 9 (0.41, 0.59) 10 (0.15, 0.4) z1 5.38 4.50 4.67 3.98 3.93 5.30 5.45 5.05 5.92 7.05 z2 20 21 22 23 24 25 26 27 28 29

Agora, um summary() do objeto xy.spdf fornece mais informaoes sobre o c objeto. > summary(xy.spdf)

113

Object of class SpatialPointsDataFrame Coordinates: min max xc 0.15 0.95 yc 0.06 0.95 Is projected: NA proj4string : [NA] Number of points: 10 Data attributes: z1 z2 Min. :3.930 Min. :20.00 1st Qu.:4.543 1st Qu.:22.25 Median :5.175 Median :24.50 Mean :5.123 Mean :24.50 3rd Qu.:5.433 3rd Qu.:26.75 Max. :7.050 Max. :29.00 De maneira geral, a distribuio desses pontos pode ser feita com o uso da ca funo bubble() ou spplot(). ca Avalie as duas funes acima, modique parmetros, crie outros daco a dos ... . Mais alguns exemplos de funoes, selecionadas, do pacote sp: c Sugesto de exerc a cios: 1. Construa um grco para representar a distribuio de pontos. Mostre o gra ca a co para um colega e pea para ele reproduzir o mesmo grco. No nal da c a aula troquem os comandos grcos; a 2. Explore as funcionalidades de alguns pacotes que trabalham com grcos esa paciais;

114

CAP ITULO 3. GRAFICOS PARA DADOS GEOREFERENCIADOS

Figura 3.3: Grco de bolhas. a > print(bubble(xy.spdf, "z1", key.space = "bottom"))

z1

3.93 4.543 5.175 5.433 7.05

3.0.2

Trabalhando com Mapas

Quando se trata de dados georeferenciados, pode-se ter interesse na construo ca de mapas que representam reas determinadas por pol a gonos. Por exemplo, um cidade pode ser formada por bairros, um estado por munic pios e assim por diante. No R, existem vrios formatos de objetos que podem ser utilizados por difea rentes pacotes para representar um mapa. Assim como para dados pontuais, tambm existem pacotes com funoes espee c c cas para trabalhar com dados que representam vrios pol a gonos. Por exemplo, o mapa de uma cidade pode ser representado por bairros. Cada bairro pode ser delimitado por vrias linhas. A unio dessas linhas, formando vrtices, gera um a a e pol gono.

115 Figura 3.4: Grco de cores para pontos. a > print(spplot(xy.spdf, "z1", key.space = "bottom"))

[3.93,4.554] (4.554,5.178] (5.178,5.802] (5.802,6.426] (6.426,7.05]

Existem vrios formatos poss a veis. Os mais comuns so aqueles que tratam com a shapefiles, ou arquivos de formas. Em geral, esses arquivos vm acompanhados e de mais arquivos que fornecem informaoes sobre o mapa, como nomes, variveis c a medidas etc. Nesta seo, veremos apenas alguns exemplos de utilizao de funoes para ca ca c gerar alguns mapas. Inicialmente, vamos trabalhar com mapas j existentes dentro a dos pacotes do Re em seguida vamos obter alguns arquivos da web para criar mapas. No trataremos aqui, da criaao dos arquivos de geraao dos pol a c c gonos de mapas. Apenas faremos uso de arquivos j dispon a veis no Rou na web.

116

CAP ITULO 3. GRAFICOS PARA DADOS GEOREFERENCIADOS Figura 3.5: Grco image. a

> bpy.colors(10) [1] "#000033FF" "#000099FF" "#0000FFFF" "#5000FFFF" "#9F0FF0FF" [6] "#EF42BDFF" "#FF758AFF" "#FFA857FF" "#FFDB24FF" "#FFFF60FF" > > > > > p <- expand.grid(x = 1:30, y = 1:30) p$z <- p$x + p$y coordinates(p) <- c("x", "y") gridded(p) <- TRUE image(p, col = bpy.colors(100), asp = 1)

Os pacotes maps e maptools Para iniciar, vamos explorar a s funcionalidades do pacote maps. Neste pacote existem alguns arquivos e funoes que podem ser utilizados para gerar mapas. c Experimente utilizar simplesmente

117 Figura 3.6: Grco de bolhas dados meuse. a

> data(meuse) > coordinates(meuse) <- c("x", "y") > print(bubble(meuse, "cadmium", maxsize = 2.5, main = "cadmium concentration + key.entries = 2^(-1:4)))

cadmium concentrations (ppm)

0.5 1 2 4 8 16

> map() Aparecer um grco do mapa mundial. a a Existem, tambm, maps de alguns pa como Frana, Itlia e Estados Unidos. e ses c a Vamos criar esses mapas! O mapa mundial pode ser explorado por pa ses Agora, vamos explorer o pacote maptools. Esse pacote faz uso de arquivos externos para criar mapas. Basicamente, trs e arquivos so exigidos para a geraao de um mapa: a c

118

CAP ITULO 3. GRAFICOS PARA DADOS GEOREFERENCIADOS Figura 3.7: Grco distncias do rio. a a

> > > >

data(meuse.grid) coordinates(meuse.grid) = c("x", "y") gridded(meuse.grid) = TRUE image(meuse.grid["dist"], main = "Distance to river Meuse")

um arquivo com a extenso .shp, ou o shapefile, que o arquivo que fornece a e as informaes sobre os pol co gonos; um arquivo com a extenso .dbf, que contm nomes; a e e um arquivo com a extenso .shx, que contm a e ndices dos dados. Assim, para gerar um mapa com uso do pacote maptools so necessrios pelo a a menos esses trs arquivos. e Alguns desses arquivos esto dispon a veis na Internet. Por exemplo, no site do IBGE (Instituto Brasileiro de Geograa e Estat stica) existe uma rea com arquivos, a nos formatos necessrios para uso com o pacote maptools. a

119 Figura 3.8: Grco distncias do rio com pontos. a a data(meuse.grid) coordinates(meuse.grid) = c("x", "y") gridded(meuse.grid) = TRUE image(meuse.grid["dist"], main = "Distance to river Meuse") data(meuse) coordinates(meuse) = c("x", "y") points(coordinates(meuse), pch = "+")

> > > > > > >

+ +++ + +++ + ++ + + + ++ + + + ++ + ++ + + + + ++ ++ + + + + + + + + ++ ++ + + + ++ + + ++ + + + + + + + + ++ ++ + + + ++ + ++ + ++ + + + ++ + +++ + + + + + +++ + + + + ++ + ++ + ++ + +++ + +++ ++ ++ + + + +++ + + ++ + + + + + + + + ++ + + + + + ++ + + + + + + + + + + +

Por exemplo, acesse http://www.ibge.gov.br, depois, Download, geocine cias, mapas, malhas digitais, setor-urbano, PR. Aparecero quatro arquivos. Salve a estes arquivos na sua rea de trabalho. O primeiro, 4100400.shp, pode ser utilizado a de imediato. No R, devemos ler os arquivos com a funao read.shape(). c Primeiro, carregamos o pacote > require(maptools)

120

CAP ITULO 3. GRAFICOS PARA DADOS GEOREFERENCIADOS Figura 3.9: Grco do rio. a

> > > > > >

data(meuse.riv) plot(meuse.riv, type = "l", asp = 1) data(meuse.grid) coordinates(meuse.grid) = c("x", "y") gridded(meuse.grid) = TRUE image(meuse.grid, "dist", add = TRUE)
meuse.riv[,2] 326000 328000 330000 332000 334000 336000 338000 174000 176000 178000 180000 182000 184000 186000 meuse.riv[,1]

e depois a leitura do arquivo shapefile

> estado <- read.shape("4100400.shp")

Agora, o arquivo est dispon para ser utilizado. Utilize, a vel

> est <- Map2poly(estado, as.character(estado$att.data$ID_)) > plot(est)

121 Figura 3.10: Mapa mundial.

No endereo http://sigmine.dnpm.gov.br/baixar.htm existem outros arc quivos que podem ser trabalhados. Experimente gerar alguns grcos. a

122

CAP ITULO 3. GRAFICOS PARA DADOS GEOREFERENCIADOS Figura 3.11: Mapa da Frana. c

> map("france")

3.1
3.1.1

Criando um Pictograma
Introduo ca

Terceira avaliao: ca A questo referente ao trabalho ser OPCIONAL. Caso o aluno no apresente a a a um trabalho durante a terceira avaliaao, este quesito ser substitu por uma c a do questo adicional na prova. a O trabalho ter valor 3 (trs pontos) (o mesmo valor da questo adicional); a e a Para a terceira avaliaao, cada DUPLA (ou indiv c duo) de alunos dever elaa borar um pictograma. Um pictograma um grco que representa alguma e a varivel atravs de s a e mbolos. Mais detalhes devem ser pesquisados pelo aluno;

3.1. CRIANDO UM PICTOGRAMA Figura 3.12: Mapa da Itlia. a > map("italy")

123

Devem ser utilizados, obrigatoriamente, dados simulados no R(indique a semente set.seed() utilizada). Os dados devem ser contextualizados, ou seja, deve-se inserir os dados do grco dentro de algum problema; a Utilize o arquivo como exemplo de estrutura do trabalho (Clique aqui); O trabalho dever ser entregue no dia da terceira avaliao. Os dados devero a ca a ser colados na pgina de avaliao, conforme as avaliaes anteriores; a ca co O trabalho no deve ser entregue em formato impresso e nem enviado por a email para o professor; Critrios de avaliaao: cumprimento das normas grcas e de estruturao e c a ca desse trabalho, utilizao correta de pacotes e funoes, funcionalidade dos ca c comandos do R, funcionalidade do grco de pictograma, contextualizao a ca dos dados simulados, utilizao de ferramentas grcas do R, criatividade. ca a

124

CAP ITULO 3. GRAFICOS PARA DADOS GEOREFERENCIADOS

Figura 3.13: Mapa dos Estados Unidos. > map("usa")

3.1. CRIANDO UM PICTOGRAMA

125

Figura 3.14: Mapa dos Estados Unidos com estados. > map("state")

126

CAP ITULO 3. GRAFICOS PARA DADOS GEOREFERENCIADOS

Figura 3.15: Mapa do Brasil. > map("world", "Brazil")

3.1. CRIANDO UM PICTOGRAMA

127

Figura 3.16: Mapa do Brasil com a capital. > map("world", "Brazil") > map.cities(country = "Brazil", capitals = 1)

Brasilia

Você também pode gostar