12
Tutoriais para Criação e Edição de Gráficos no R Fazendo Gráficos no R Aqui você irá aprender como fazer gráficos para publicação. Nesta aula, iremos passar apenas pelos gráficos mais simples como gráficos de dispersão, de barras e box-plot, pois estes serão os gráficos usados pela grande maioria dos alunos durante o curso de pós- graduação. Porém, lembre-se que no R é possível construir uma variedade incrível de gráficos e figuras. Para mais exemplos basta entrar no R Graph Gallery e ver todas as possibilidades. Custo Benefício de Fazer Gráficos no R Nesta aula você aprenderá a editar os gráficos e adequá-los para dissertações, teses ou revistas científicas. Editar gráficos no R não é fácil, demora tempo (pode demorar horas para fazer apenas uma figura) e é muitas vezes frustrante, pois cada passo requer uma série de ajustes. Porém, o R permite mudar quase todos os parâmetros dentro de um gráfico, uma liberdade que (quase) nenhum outro pacote estatístico possui. E lembre-se, bons gráficos dizem mais que apenas o conjunto de dados a ser apresentado. Bons gráficos mostram vários resultados em um pequeno espaço de papel, são facilmente interpretáveis e podem aumentar suas chances de ter trabalhos aceitos em boas revistas científicas. Por isso, é muito importante investir bastante tempo em fazer figuras bonitas e bem explicativas. Orientações para a aula O objetivo nesta aula foi de apresentar como criar e como editar gráficos no R. Aqui são apenas dados os códigos e funções, mas para visualizar cada gráfico você terá que fazê-lo. Aproveite a chance para dar um passo a mais e mudar mais argumentos e funções além das apresentadas nos exercícios. Criando Gráficos Fazer gráficos rapidamente no R é fácil. Basta dizer qual tipo de gráfico se deseja e quais são as variáveis. Há duas maneiras de se especificar as variáveis Cartesiana plot(x,y) Formula plot(y~x)

Tutoriais para criação e edição de gráficos no r

Embed Size (px)

Citation preview

Page 1: Tutoriais para criação e edição de gráficos no r

Tutoriais para Criaccedilatildeo e Ediccedilatildeo de

Graacuteficos no R

Fazendo Graacuteficos no R

Aqui vocecirc iraacute aprender como fazer graacuteficos para publicaccedilatildeo Nesta aula iremos passar apenas pelos graacuteficos mais simples como graacuteficos de dispersatildeo de barras e box-plot

pois estes seratildeo os graacuteficos usados pela grande maioria dos alunos durante o curso de poacutes-graduaccedilatildeo Poreacutem lembre-se que no R eacute possiacutevel construir uma variedade incriacutevel de

graacuteficos e figuras Para mais exemplos basta entrar no R Graph Gallery e ver todas as possibilidades

Custo Benefiacutecio de Fazer Graacuteficos no R

Nesta aula vocecirc aprenderaacute a editar os graacuteficos e adequaacute-los para dissertaccedilotildees teses ou

revistas cientiacuteficas Editar graacuteficos no R natildeo eacute faacutecil demora tempo (pode demorar horas para fazer apenas uma figura) e eacute muitas vezes frustrante pois cada passo requer uma seacuterie de ajustes Poreacutem o R permite mudar quase todos os paracircmetros dentro de um graacutefico uma

liberdade que (quase) nenhum outro pacote estatiacutestico possui E lembre-se bons graacuteficos dizem mais que apenas o conjunto de dados a ser apresentado Bons graacuteficos mostram

vaacuterios resultados em um pequeno espaccedilo de papel satildeo facilmente interpretaacuteveis e podem aumentar suas chances de ter trabalhos aceitos em boas revistas cientiacuteficas Por isso eacute muito importante investir bastante tempo em fazer figuras bonitas e bem explicativas

Orientaccedilotildees para a aula

O objetivo nesta aula foi de apresentar como criar e como editar graacuteficos no R Aqui satildeo apenas dados os coacutedigos e funccedilotildees mas para visualizar cada graacutefico vocecirc teraacute que fazecirc-lo

Aproveite a chance para dar um passo a mais e mudar mais argumentos e funccedilotildees aleacutem das apresentadas nos exerciacutecios

Criando Graacuteficos

Fazer graacuteficos rapidamente no R eacute faacutecil Basta dizer qual tipo de graacutefico se deseja e quais

satildeo as variaacuteveis

Haacute duas maneiras de se especificar as variaacuteveis

Cartesiana ndash plot(xy)

Formula ndash plot(y~x)

Ambas as formas satildeo corretas mas como a grande maioria das anaacutelises feitas satildeo no

formato y~x em vez de xy acaba ficando mais faacutecil usar y~x

riqueza lt- c(151822242530313437394145)

area lt- c(24561030345056607758085)

areacate lt- rep(c(pequeno grande) each=6)

plot(riqueza~area)

plot(areariqueza) o mesmo que o anterior

boxplot(riqueza~areacate)

barplot(riqueza)

As figuras padratildeo (default) que o R produz natildeo satildeo publicaacuteveis mas trazem toda a

informaccedilatildeo que foi usada para gerar o graacutefico e podem perfeitamente ser usadas para uma interpretaccedilatildeo inicial dos resultados O plot ou scatterplot eacute um graacutefico de dispersatildeo sendo

que cada ponto no plot representa uma das reacuteplicas (eg 12 reacuteplicas 12 pontos) Na sua

forma mais simples as legendas dos eixos vecircm com o nome das variaacuteveis usadas para criar o plot

Quando as variaacuteveis satildeo categoacutericas o graacutefico padratildeo que o R produz eacute o boxplot ou ldquobox

and whiskers plotrdquo (chamado em portuguecircs de desenho esquemaacutetico desenho da caixa ou desenho de caixa e bigode) No boxplot a linha grossa do meio representa a mediana a

caixa representa o 1deg e 3degquartil e os ldquobigodesrdquo podem representar ou os valores maacuteximos e miacutenimos ou 15 vezes o valor dos quartis (aproximadamente 2 desvios padrotildees) eacute desenhado o que for menor Agraves vezes alguns pontos satildeo desenhados individualmente aleacutem

dos bigodes estes satildeo os ldquooutliersrdquo que podem ser suprimidos com o argumento outline=F

O barplot ou graacutefico de barras mostra cada ponto da variaacutevel especificada como uma barra Na sua forma mais simples satildeo apresentados apenas os valores brutos e natildeo haacute

informaccedilatildeo alguma quanto agrave dispersatildeo dos dados No barplot nenhum dos eixos vem com legendas (aliaacutes o eixo x tambeacutem natildeo eacute desenhado)

Exerciacutecio 1 ndash Fazendo os Primeiros Graacuteficos

Construa ldquoplotrdquo boxplot e barplot usando as variaacuteveis do conjunto de dados Conjunto de Dados Dados de Biomassa de Aacutervores de Eucalyptus Saligna para explorar relaccedilotildees entre

dap e ht

ht e tronco

dap e classe

dap e talhao

dap

ht

Note barplot soacute aceita uma variaacutevel

Editando Graacuteficos

Aqui comeccedila a parte mais complicada Natildeo porque eacute difiacutecil mudar a forma como os graacuteficos satildeo feitos mas porque para chegar num resultado final adequado requer um

processo iterativo Em outras palavras se o objetivo eacute mudar o tamanho da fonte seraacute necessaacuterio testar vaacuterios tamanhos ateacute se atingir o ldquotamanho idealrdquo para incluir no manuscrito eou tese

Existem duas maneiras de se mudar paracircmetros no graacutefico uma eacute por dentro do graacutefico ou

seja dentro da funccedilatildeo plot boxplot ou barplot e a outra eacute pela funccedilatildeo par() Alguns

argumentos soacute podem ser chamados exclusivamente por uma destas maneiras Por exemplo ylab e xlab modificam o nome (label) dos eixos e soacute podem ser chamadas por

dentro do graacutefico jaacute outras funccedilotildees soacute podem ser chamadas pelo par() como por

exemplo mar que controla o tamanho das margens do graacutefico e mfrow que controla quantos

graacuteficos seratildeo mostrados no mesmo dispositivo

Para que as alteraccedilotildees controladas pelo par() possam surtir efeito elas sempre devem vir

antes do graacutefico Se um novo dispositivo graacutefico natildeo for aberto todas as funccedilotildees jaacute controladas pelo par() continuaratildeo valendo mesmo que o graacutefico mude

Em geral a informaccedilatildeo que vem por uacuteltimo eacute a informaccedilatildeo que o R vai tomar como verdadeira Por exemplo las controla a direccedilatildeo das legendas dos eixos (las= 1 legendas

escritas sempre na horizontal las=2 legendas sempre na vertical) sejam os nuacutemeros da

escala ou o nome do eixo Se o seguinte comando eacute dado

par(las=1)

plot(riqueza~area las=2)

O resultado final seraacute um graacutefico com legendas na vertical Isso a princiacutepio pode parecer sem sentido poreacutem imagine um caso em que haacute vaacuterios graacuteficos no mesmo dispositivo graacutefico e em todos os casos se deseja ter legendas horizontais com exceccedilatildeo de um graacutefico

apenas em que um dos eixos seraacute desenhado verticalmente Satildeo em casos que nem este que se torna necessaacuterio poder dar informaccedilotildees ldquoconflitantesrdquo para o R

Outro caso que eacute importante saber eacute a funccedilatildeo cex Em sua forma geral ela se aplica ao

tamanho de fonte das legendas tiacutetulo pontos entre outros Se o seguinte comando eacute dado

par(cex=2)

plot(riqueza~area cex=2)

O resultado final teraacute legendas com tamanho 2 (default=1) e pontos com tamanho 4 Isto

ocorre pois par(cex=2) tem a funccedilatildeo geral de aumentar todas as fontes e pontos enquanto que no plot(cex=2) tem a funccedilatildeo de aumentar soacute o pontos E quando neste caso

especiacutefico em vez das informaccedilotildees entrarem em conflito como no caso anterior elas se

multiplicam

Exerciacutecio 2 ndash Aprendendo a Editar Graacuteficos

Entre no R e digite

plot

Agora usando as variaacuteveis

riqueza lt- c(151822242530313437394145)

area lt- c(24561030345056607758085)

Mude

O nome do eixo x para ldquoTamanho da Ilha (ha)rdquo

O nome do eixo y para ldquoRiqueza de Espeacuteciesrdquo

O tiacutetulo do graacutefico para ldquoAves das Ilhas Samoardquo

Agora entre no

par

Usando o mesmo graacutefico anterior mude

O tipo de ponto (numero de 0 a 25)

O tamanho dos pontos e legendas

A direccedilatildeo da escala do graacutefico (para ficar tudo na horizontal)

O tipo de fonte das legendas (para ficar tudo como em Times New Roman ndash dica= ldquoserifrdquo)

Apesar das paacuteginas de ajuda do R natildeo serem muito amigaacuteveis no comeccedilo eacute preciso ter calma e aprender a procurar a informaccedilatildeo desejada A paacutegina do par() eacute uma das mais

procuradas por todos que estatildeo fazendo graacuteficos no R e por isso eacute importante que se gaste

um tempo para aprender qual tipo de informaccedilatildeo ela fornece onde estaacute a informaccedilatildeo e como mudar os paracircmetros do R

par()

DICA

No comeccedilo quando ainda natildeo se conhece direito todas as funccedilotildees do par() eacute aconselhaacutevel

que se imprima a paacutegina de ajuda para que se possa visualizar todas os argumentos

Existem dois argumentos do par() muito importantes e que satildeo usadas quase 100 das

vezes Um par(mfrow=c()) controla ldquoquantas figurasrdquo seratildeo desenhadas dentro de um

mesmo dispositivo O vetor contido dentro da funccedilatildeo mfrow=() controla o numero de

graacuteficos que seratildeo desenhados no eixo x (1deg nuacutemero) e no eixo y (2deg nuacutemero)

O outro o par(mar=c()) controla o ldquotamanho das margensrdquo do graacutefico e como a figura

ficaraacute disposta dentro do dispositivo O vetor contido dentro da funccedilatildeo mar=() controla as

posiccedilotildees das margens sendo que o 1deg numero controla a margem da parte de baixo do

graacutefico o 2deg controla a margem do lado esquerdo o 3deg numero controla a parte de cima e o 4deg numero controla o tamanho da margem do lado direito do graacutefico

Exemplos de par(mfrow=c())

par(mfrow=c(21))

plot(riqueza~area)

boxplot(riqueza~areacate)

par(mfrow=c(12))

plot(riqueza~area)

boxplot(riqueza~areacate)

Exemplos de par(mar=c())

par(mfrow=c(21))

par(mar=c(41426))

plot(riqueza~area)

boxplot(riqueza~areacate)

par(mfrow=c(12))

par(mar=c(14482))

plot(riqueza~area)

boxplot(riqueza~areacate)

par(mfrow=c(12))

par(mar=c(8481))

plot(riqueza~area)

par(mar=c(142405))

boxplot(riqueza~areacate)

Diferenccedilas Entre Tipos De Graacutefico

Infelizmente a forma como se muda argumentos do plot() boxplot() e barplot() natildeo

eacute sempre a mesma ou seja comandos que funcionam perfeitamente para o plot() podem

natildeo produzir efeito algum no boxplot() e vice-versa Esta caracteriacutestica de fato atrapalha

um pouco mas assim que se acostuma fica mais faacutecil Haacute duas dicas para resolver este

problema (i) tente sempre jogar os argumentos para o par() pois agraves vezes eles podem natildeo

funcionar se chamadas por dentro do plot() boxplot() etc mas iratildeo funcionar pelo

par() (ii) descubra o nome em inglecircs do paracircmetro que se quer mudar (label tick

legend) e jogue no Google ldquolegend boxplotrdquo Com certeza algueacutem jaacute teve este mesmo

problema e entrando dentro da lista do R (as diversas que existem) ou em aulas

disponibilizadas na internet com certeza se acha uma soluccedilatildeo

Exerciacutecio 3 ndash Mudando diferentes Graacuteficos

Com as variaacuteveis

riqueza lt- c(151822242530313437394145)

area lt- c(24561030345056607758085)

areacate lt- rep(c(pequeno grande) each=6)

Crie

plot(riqueza~area)

E agora

plot(riqueza~area bty=l tcl=03)

Perecebeu o que mudou

Agora tente

boxplot(riqueza~areacate bty=l tcl=03)

O que aconteceu

E agora

par(bty=l)

par(tcl=03)

boxplot(riqueza~areacate)

Viu soacute

Inserindo mais Informaccedilotildees em Graacuteficos

Existem diversas informaccedilotildees que se pode incluir em um graacutefico Pode-se colocar uma letra para mostrar que este eacute o painel ldquoardquo e ao lado eacute o painel rdquobrdquo pode-se colocar asteriscos para

mostrar quais relaccedilotildees satildeo significativas pode-se desenhar flechas outros pontos uma infinidade de coisas Tudo isto pode ser feito mas requer funccedilotildees comandos separados daqueles jaacute passados pelo par() e plot() boxplot() ou barplot() Dentre as vaacuterias funccedilotildees

existentes para se inserir informaccedilotildees em graacuteficos existem sete que satildeo bastante uacuteteis Use

Exerciacutecio 4

Usando as variaacuteveis

riqueza lt- c(151822242530313437394145)

area lt- c(24561030345056607758085)

abundancia lt- rev(riqueza)

Crie graacuteficos inserindo os paracircmetros abaixo

lines()

Para inserir linhas retas ou curvas natildeo-parameacutetricas (como lowess loess gam etc)

plot(riqueza~area)

lines(lowess(area riqueza))

abline()

Para inserir linhas de tendecircncia criadas a partir de um modelo linear Para isso eacute primeiro

necessaacuterio criar o modelo para depois criar a linha

model lt- lm(riqueza~area)

plot(riqueza~area)

abline(model)

Com a funccedilatildeo abline vocecirc pode tambeacutem inserir uma linha reta com intercepto e inclinaccedilatildeo

definidos por vocecirc com os dois primeiros argumentos

plot(riqueza~area)

abline(01)

A funccedilatildeo abline tambeacutem serve para acrescentar linhas verticais e horizontais com os argumentos v e h No coacutedigo abaixo traccedilamos estas linhas passando pelas meacutedias das duas

variaacuteveis do diagrama de dispersatildeo

plot(riqueza~area)

abline(v=mean(area))

abline(h=mean(riqueza))

Vocecirc sabia A reta da regressatildeo linear simples sempre passa pelo ponto que eacute a interseccedilatildeo destas duas linhas

text()

Para inserir texto dentro do graacutefico O texto pode ser uma letra um siacutembolo (muito usado para mostrar diferenciar classes no graacutefico) uma palavra ou ateacute mesmo uma frase

plot(riqueza~area)

text(2040texto)

mtext()

Este comando acrescenta texto nas margens do graacutefico ou da janela graacutefica Seu uso mais

freuquente eacute inserir legendas dos eixos Apesar de ser possiacutevel controlar as legendas por dentro das funccedilotildees plot boxplot e barplot o numero de paracircmetros que se pode mudar

eacute limitado Quando se deseja um controle mais fino dos paracircmetros como posiccedilatildeo alinhamento cor tamanho da fonte etc eacute necessaacuterio usar mtext()

plot(riqueza~area)

mtext(legenda no lado errado side=4 line=09 at=20cex=2

family=serif)

par(new=TRUE)

Para sobrepor um novo graacutefico a um graacutefico jaacute existente Em vez de criar graacuteficos lado-a-lado como em par(mfrow=c()) este argumento iraacute desenhar o novo graacutefico sobre o

graacutefico anterior

plot(riqueza~area)

par(new=TRUE)

plot(abundancia~area)

Mas reparem que aqui seraacute necessaacuterio alguns ajustes para suprimir eixos e legendas Em muitos casos quando se estaacute inserindo informaccedilotildees seraacute necessaacuterio suprimir paracircmetros

axis()

Para se inserir um eixo novo Esta funccedilatildeo eacute bastante usada nos casos em que se deseja ter dois graacutefico dentro de uma mesma figura (ver par(new=TRUE)) ou entatildeo se deseja

controlar muitos dos paracircmetros dos eixos (como em mtext())

plot(riqueza~area)

par(new=TRUE)

plot(abundancia~area axes=FALSE ann=FALSE)

axis(4)

Aqui no caso seraacute necessaacuterio usar axes=F para suprimir a criaccedilatildeo dos eixos do graacutefico

inicial de abundacircncia e ann=F para suprimir a legenda de abundacircncia do lado direito Para

inserir a legenda de abundacircncia do lado direito seraacute necessaacuterio usar mtext()

arrows() rect() polygon()

Para inserir flechas ou barras de erros use arrows() Jaacute para inserir retacircngulos poliacutegonos

e outros formatos use rect() e polygon()

plot(riqueza~area)

rect(20204040)

Salvando Graacuteficos

Apoacutes ter feitos todos os graacuteficos desejados eacute possiacutevel salvaacute-los em vaacuterios formatos como jpeg png postscript pdf Consulte a ajuda do pacote grDevices para a lista completa e

mais informaccedilotildees

Apoacutes chegar ao graacutefico final ajustando todos os paracircmetros desejados vocecirc pode usar a funccedilatildeo do R para criar o arquivo no formato desejado Haacute funccedilotildees para cada formato de arquivo todas elas com o primeiro argumento filename que especifica o nome do arquivo

a salvar Para criar um arquivo jpg por exemplo haacute a funccedilatildeo jpeg

jpeg(filename = Algumnomejpg)

Feito isso o R agora iraacute enviar todos os resultados de comandos graacuteficos para este arquivo que eacute fechado com a funccedilatildeodevoff()

Exemplo

jpeg(filename = Rplotaulajpg width = 480 height = 480

units = px pointsize = 12 quality = 100

bg = white res = NA)

par(mfrow=c(12))

par(mar=c(14482))

plot(riqueza~area)

boxplot(riqueza~areacate)

devoff()

Quatro Fatos Importantes sobre Arquivos de Figuras (e uma dica)

Seu arquivo de figura soacute teraacute os paracircmetros desejados se vocecirc executar todo o coacutedigo apoacutes abrir o arquivo da figura incluindo todos os comandos par()

Seu arquivo de figura soacute seraacute salvo quando vocecirc executar o comando devoff()

Ateacute que isso aconteccedila todos os resultados de comandos graacuteficos continuaratildeo a

ser enviados para este arquivo Por isso se vocecirc criar dois graacuteficos o segundo substituiraacute o primeiro Ao executar o comando devoff() o arquivo seraacute gravado no diretoacuterio de trabalho

Se vocecirc quiser gravaacute-lo em outro lugar teraacute que especificar o caminho completo no

comando de criaccedilatildeo do arquivo no argumento filename

DICA

Para gravar uma sequecircncia de graacuteficos sem precisar dar vaacuterios comandos de abertura de

arquivos use no argumento do nome do arquivo a notaccedilatildeo nome[nuacutemero]dextensatildeo

onde [nuacutemero] normalmente satildeo os nuacutemeros 01 02 ou 03

png(meugrafico02dpng)

Com essa notaccedilatildeo os graacuteficos gerados seratildeo gravados com uma numeraccedilatildeo sequencial que tem [numero] algarismos Por exemplo [nuacutemero] = 01 indica numeraccedilatildeo sequencial de

um algarismo e vocecirc pode gravar ateacute nove graacuteficos (meugrafico1png a meugrafico9png) Se [nuacutemero] = 02 a numeraccedilatildeo sequencial tem dois algarismos portanto vocecirc pode gravar

ateacute 99 figuras (meugrafico01png a meugrafico99png)

Se vocecirc gera mais graacuteficos do que este valor maacuteximo os excedentes sobrepotildeem os

primeiros na sequecircncia Para evitar isso normalmente usamos [nuacutemero] = 03 que

permite gerar ateacute 999 arquivos o que eacute mais do que suficiente na maioria dos casos

O padratildeo das funccedilotildees de arquivos graacuteficos do tipo bitmap no R eacute gerar arquivos com o nome Rplotxxxextensatildeo com numeraccedilatildeo sequencial com 3 algarismos ou seja

bmp(filename = Rplot03dbmp)

jpeg(filename = Rplot03djpg)

png(filename = Rplot03dpng)

tiff(filename = Rplot03dbmp)

Para arquivos do tipo postscript e pdf o padratildeo eacute um pouco diferente consulte a ajuda

Dispositivos Graacuteficos

Para operar bem com arquivos graacuteficos no R eacute preciso entender o conceito de dispositivo

graacutefico (graphical device)

Um dispositivo (device) eacute qualquer unidade de entrada (I=input) ou saiacuteda (O=output) em um computador O teclado eacute um dispositivo de entrada (I) o monitor de viacutedeo de saiacuteda (O)

e o disco riacutegido de ambos (IO)

Em termos bem gerais o R usa o padratildeo de sistemas da famiacutelia UNIX e abre arquivos especiais (device files) para controlar cada dispositivo de saiacuteda graacutefica 1) Na praacutetica

podemos podemos pensar que o R cria uma ldquorotardquo para cada dispositivo e que vocecirc pode ter vaacuterias destas ldquorotasrdquo abertas ao mesmo tempo mas apenas uma ativa por vez

Abrindo e trocando de dispositivos

Quando executamos um comando com resultado graacutefico o padratildeo do R eacute enviar seu

resultado para um dispositivo de tela Se natildeo haacute nenhum aberto este dispositivo de tela seraacute aberto Por exemplo se iniciamos o R e executamos um comando plot

plot(riqueza~area)

uma janela se abriraacute para exibir a figura nele Este eacute um dispositivo graacutefico de tela normalmente do tipo X11 em sistemas UNIX e do tipo windows em sistemas Microsoft

Windows

Eacute possiacutevel tambeacutem abrir mais dispositivos de tela com o comando

gt x11()

que funciona nos dois tipos de sistemas operacionais Ao executar este comando uma nova janela graacutefica em branco se abriraacute na margem superior da qual vocecirc veraacute a indicaccedilatildeo de que agora este eacute o dispositivo ativo

O dispositivo ativo eacute que receberaacute o resultado de todos os comandos graacuteficos Assimvocecirc pode criar um novo graacutefico neste dispositivo ou alterar seus paracircmetros sem afetar o

graacutefico que estaacute na outra janela Quando vocecirc abre um novo dispositivo os paracircmetros satildeo os mantidos por padratildeo no R que vocecirc obteacutem com o comando par() Para mudaacute-los eacute

preciso usar o comando par como explicado nas seccedilotildees anteriores

Para trocar de dispositivo ativo use a funccedilatildeo devset(which=) cujo o argumento which eacute

o nuacutemero do dispositivo que vocecirc quer tornar ativo Por exemplo para voltar agrave janela do dispositivo 2 execute

gt devset(which=2)

Qual o Dispositivo Ativo

Enquanto temos apenas dispositivos de tela abertos eacute faacutecil descobrir qual eacute o ativo pois esta informaccedilatildeo eacute exibida na janela de cada um Mas quando abrimos um ou mais

dispositivos de arquivo como

gt png(figura02dpng)

gt pdf(figura02dpdf)

eacute faacutecil se perder Para que isso natildeo aconteccedila haacute as funccedilotildees devlist para listar todos os

dispositivos abertos e devcur que retorna o dispositivo ativo

gt devlist()

windows windows pngfigura02dpng

pdf

2 3 4

5

gt devcur()

pdf

5

gt devset(3)

windows

3

gt devcur()

windows

3

Vocecirc fecha um dispositivo com o comando devoff(which=n) em que n eacute o nuacutemero do dispositivo Se este argumento eacute omitido o valor padratildeo eacute o dispositivo ativo

gt devlist()

windows windows pngfigura02dpng

pdf

2 3 4

5

gt devcur()

pdf

5

gt devoff()

windows

2

gt devlist()

windows windows pngfigura02dpng

2 3 4

gt devcur()

windows

2

Quando o dispositivo ativo eacute fechado o seguinte na lista de dispositivos torna-se o ativo O uacuteltimo comando acima ilustra isto

Exerciacutecio 5

Crie diferentes graacuteficos em diferentes dispositivos Por fim salve-os em jpeg

Para saber mais como salvar graacuteficos em jpeg use a funccedilatildeo lsquorsquojpegrsquorsquo

Page 2: Tutoriais para criação e edição de gráficos no r

Ambas as formas satildeo corretas mas como a grande maioria das anaacutelises feitas satildeo no

formato y~x em vez de xy acaba ficando mais faacutecil usar y~x

riqueza lt- c(151822242530313437394145)

area lt- c(24561030345056607758085)

areacate lt- rep(c(pequeno grande) each=6)

plot(riqueza~area)

plot(areariqueza) o mesmo que o anterior

boxplot(riqueza~areacate)

barplot(riqueza)

As figuras padratildeo (default) que o R produz natildeo satildeo publicaacuteveis mas trazem toda a

informaccedilatildeo que foi usada para gerar o graacutefico e podem perfeitamente ser usadas para uma interpretaccedilatildeo inicial dos resultados O plot ou scatterplot eacute um graacutefico de dispersatildeo sendo

que cada ponto no plot representa uma das reacuteplicas (eg 12 reacuteplicas 12 pontos) Na sua

forma mais simples as legendas dos eixos vecircm com o nome das variaacuteveis usadas para criar o plot

Quando as variaacuteveis satildeo categoacutericas o graacutefico padratildeo que o R produz eacute o boxplot ou ldquobox

and whiskers plotrdquo (chamado em portuguecircs de desenho esquemaacutetico desenho da caixa ou desenho de caixa e bigode) No boxplot a linha grossa do meio representa a mediana a

caixa representa o 1deg e 3degquartil e os ldquobigodesrdquo podem representar ou os valores maacuteximos e miacutenimos ou 15 vezes o valor dos quartis (aproximadamente 2 desvios padrotildees) eacute desenhado o que for menor Agraves vezes alguns pontos satildeo desenhados individualmente aleacutem

dos bigodes estes satildeo os ldquooutliersrdquo que podem ser suprimidos com o argumento outline=F

O barplot ou graacutefico de barras mostra cada ponto da variaacutevel especificada como uma barra Na sua forma mais simples satildeo apresentados apenas os valores brutos e natildeo haacute

informaccedilatildeo alguma quanto agrave dispersatildeo dos dados No barplot nenhum dos eixos vem com legendas (aliaacutes o eixo x tambeacutem natildeo eacute desenhado)

Exerciacutecio 1 ndash Fazendo os Primeiros Graacuteficos

Construa ldquoplotrdquo boxplot e barplot usando as variaacuteveis do conjunto de dados Conjunto de Dados Dados de Biomassa de Aacutervores de Eucalyptus Saligna para explorar relaccedilotildees entre

dap e ht

ht e tronco

dap e classe

dap e talhao

dap

ht

Note barplot soacute aceita uma variaacutevel

Editando Graacuteficos

Aqui comeccedila a parte mais complicada Natildeo porque eacute difiacutecil mudar a forma como os graacuteficos satildeo feitos mas porque para chegar num resultado final adequado requer um

processo iterativo Em outras palavras se o objetivo eacute mudar o tamanho da fonte seraacute necessaacuterio testar vaacuterios tamanhos ateacute se atingir o ldquotamanho idealrdquo para incluir no manuscrito eou tese

Existem duas maneiras de se mudar paracircmetros no graacutefico uma eacute por dentro do graacutefico ou

seja dentro da funccedilatildeo plot boxplot ou barplot e a outra eacute pela funccedilatildeo par() Alguns

argumentos soacute podem ser chamados exclusivamente por uma destas maneiras Por exemplo ylab e xlab modificam o nome (label) dos eixos e soacute podem ser chamadas por

dentro do graacutefico jaacute outras funccedilotildees soacute podem ser chamadas pelo par() como por

exemplo mar que controla o tamanho das margens do graacutefico e mfrow que controla quantos

graacuteficos seratildeo mostrados no mesmo dispositivo

Para que as alteraccedilotildees controladas pelo par() possam surtir efeito elas sempre devem vir

antes do graacutefico Se um novo dispositivo graacutefico natildeo for aberto todas as funccedilotildees jaacute controladas pelo par() continuaratildeo valendo mesmo que o graacutefico mude

Em geral a informaccedilatildeo que vem por uacuteltimo eacute a informaccedilatildeo que o R vai tomar como verdadeira Por exemplo las controla a direccedilatildeo das legendas dos eixos (las= 1 legendas

escritas sempre na horizontal las=2 legendas sempre na vertical) sejam os nuacutemeros da

escala ou o nome do eixo Se o seguinte comando eacute dado

par(las=1)

plot(riqueza~area las=2)

O resultado final seraacute um graacutefico com legendas na vertical Isso a princiacutepio pode parecer sem sentido poreacutem imagine um caso em que haacute vaacuterios graacuteficos no mesmo dispositivo graacutefico e em todos os casos se deseja ter legendas horizontais com exceccedilatildeo de um graacutefico

apenas em que um dos eixos seraacute desenhado verticalmente Satildeo em casos que nem este que se torna necessaacuterio poder dar informaccedilotildees ldquoconflitantesrdquo para o R

Outro caso que eacute importante saber eacute a funccedilatildeo cex Em sua forma geral ela se aplica ao

tamanho de fonte das legendas tiacutetulo pontos entre outros Se o seguinte comando eacute dado

par(cex=2)

plot(riqueza~area cex=2)

O resultado final teraacute legendas com tamanho 2 (default=1) e pontos com tamanho 4 Isto

ocorre pois par(cex=2) tem a funccedilatildeo geral de aumentar todas as fontes e pontos enquanto que no plot(cex=2) tem a funccedilatildeo de aumentar soacute o pontos E quando neste caso

especiacutefico em vez das informaccedilotildees entrarem em conflito como no caso anterior elas se

multiplicam

Exerciacutecio 2 ndash Aprendendo a Editar Graacuteficos

Entre no R e digite

plot

Agora usando as variaacuteveis

riqueza lt- c(151822242530313437394145)

area lt- c(24561030345056607758085)

Mude

O nome do eixo x para ldquoTamanho da Ilha (ha)rdquo

O nome do eixo y para ldquoRiqueza de Espeacuteciesrdquo

O tiacutetulo do graacutefico para ldquoAves das Ilhas Samoardquo

Agora entre no

par

Usando o mesmo graacutefico anterior mude

O tipo de ponto (numero de 0 a 25)

O tamanho dos pontos e legendas

A direccedilatildeo da escala do graacutefico (para ficar tudo na horizontal)

O tipo de fonte das legendas (para ficar tudo como em Times New Roman ndash dica= ldquoserifrdquo)

Apesar das paacuteginas de ajuda do R natildeo serem muito amigaacuteveis no comeccedilo eacute preciso ter calma e aprender a procurar a informaccedilatildeo desejada A paacutegina do par() eacute uma das mais

procuradas por todos que estatildeo fazendo graacuteficos no R e por isso eacute importante que se gaste

um tempo para aprender qual tipo de informaccedilatildeo ela fornece onde estaacute a informaccedilatildeo e como mudar os paracircmetros do R

par()

DICA

No comeccedilo quando ainda natildeo se conhece direito todas as funccedilotildees do par() eacute aconselhaacutevel

que se imprima a paacutegina de ajuda para que se possa visualizar todas os argumentos

Existem dois argumentos do par() muito importantes e que satildeo usadas quase 100 das

vezes Um par(mfrow=c()) controla ldquoquantas figurasrdquo seratildeo desenhadas dentro de um

mesmo dispositivo O vetor contido dentro da funccedilatildeo mfrow=() controla o numero de

graacuteficos que seratildeo desenhados no eixo x (1deg nuacutemero) e no eixo y (2deg nuacutemero)

O outro o par(mar=c()) controla o ldquotamanho das margensrdquo do graacutefico e como a figura

ficaraacute disposta dentro do dispositivo O vetor contido dentro da funccedilatildeo mar=() controla as

posiccedilotildees das margens sendo que o 1deg numero controla a margem da parte de baixo do

graacutefico o 2deg controla a margem do lado esquerdo o 3deg numero controla a parte de cima e o 4deg numero controla o tamanho da margem do lado direito do graacutefico

Exemplos de par(mfrow=c())

par(mfrow=c(21))

plot(riqueza~area)

boxplot(riqueza~areacate)

par(mfrow=c(12))

plot(riqueza~area)

boxplot(riqueza~areacate)

Exemplos de par(mar=c())

par(mfrow=c(21))

par(mar=c(41426))

plot(riqueza~area)

boxplot(riqueza~areacate)

par(mfrow=c(12))

par(mar=c(14482))

plot(riqueza~area)

boxplot(riqueza~areacate)

par(mfrow=c(12))

par(mar=c(8481))

plot(riqueza~area)

par(mar=c(142405))

boxplot(riqueza~areacate)

Diferenccedilas Entre Tipos De Graacutefico

Infelizmente a forma como se muda argumentos do plot() boxplot() e barplot() natildeo

eacute sempre a mesma ou seja comandos que funcionam perfeitamente para o plot() podem

natildeo produzir efeito algum no boxplot() e vice-versa Esta caracteriacutestica de fato atrapalha

um pouco mas assim que se acostuma fica mais faacutecil Haacute duas dicas para resolver este

problema (i) tente sempre jogar os argumentos para o par() pois agraves vezes eles podem natildeo

funcionar se chamadas por dentro do plot() boxplot() etc mas iratildeo funcionar pelo

par() (ii) descubra o nome em inglecircs do paracircmetro que se quer mudar (label tick

legend) e jogue no Google ldquolegend boxplotrdquo Com certeza algueacutem jaacute teve este mesmo

problema e entrando dentro da lista do R (as diversas que existem) ou em aulas

disponibilizadas na internet com certeza se acha uma soluccedilatildeo

Exerciacutecio 3 ndash Mudando diferentes Graacuteficos

Com as variaacuteveis

riqueza lt- c(151822242530313437394145)

area lt- c(24561030345056607758085)

areacate lt- rep(c(pequeno grande) each=6)

Crie

plot(riqueza~area)

E agora

plot(riqueza~area bty=l tcl=03)

Perecebeu o que mudou

Agora tente

boxplot(riqueza~areacate bty=l tcl=03)

O que aconteceu

E agora

par(bty=l)

par(tcl=03)

boxplot(riqueza~areacate)

Viu soacute

Inserindo mais Informaccedilotildees em Graacuteficos

Existem diversas informaccedilotildees que se pode incluir em um graacutefico Pode-se colocar uma letra para mostrar que este eacute o painel ldquoardquo e ao lado eacute o painel rdquobrdquo pode-se colocar asteriscos para

mostrar quais relaccedilotildees satildeo significativas pode-se desenhar flechas outros pontos uma infinidade de coisas Tudo isto pode ser feito mas requer funccedilotildees comandos separados daqueles jaacute passados pelo par() e plot() boxplot() ou barplot() Dentre as vaacuterias funccedilotildees

existentes para se inserir informaccedilotildees em graacuteficos existem sete que satildeo bastante uacuteteis Use

Exerciacutecio 4

Usando as variaacuteveis

riqueza lt- c(151822242530313437394145)

area lt- c(24561030345056607758085)

abundancia lt- rev(riqueza)

Crie graacuteficos inserindo os paracircmetros abaixo

lines()

Para inserir linhas retas ou curvas natildeo-parameacutetricas (como lowess loess gam etc)

plot(riqueza~area)

lines(lowess(area riqueza))

abline()

Para inserir linhas de tendecircncia criadas a partir de um modelo linear Para isso eacute primeiro

necessaacuterio criar o modelo para depois criar a linha

model lt- lm(riqueza~area)

plot(riqueza~area)

abline(model)

Com a funccedilatildeo abline vocecirc pode tambeacutem inserir uma linha reta com intercepto e inclinaccedilatildeo

definidos por vocecirc com os dois primeiros argumentos

plot(riqueza~area)

abline(01)

A funccedilatildeo abline tambeacutem serve para acrescentar linhas verticais e horizontais com os argumentos v e h No coacutedigo abaixo traccedilamos estas linhas passando pelas meacutedias das duas

variaacuteveis do diagrama de dispersatildeo

plot(riqueza~area)

abline(v=mean(area))

abline(h=mean(riqueza))

Vocecirc sabia A reta da regressatildeo linear simples sempre passa pelo ponto que eacute a interseccedilatildeo destas duas linhas

text()

Para inserir texto dentro do graacutefico O texto pode ser uma letra um siacutembolo (muito usado para mostrar diferenciar classes no graacutefico) uma palavra ou ateacute mesmo uma frase

plot(riqueza~area)

text(2040texto)

mtext()

Este comando acrescenta texto nas margens do graacutefico ou da janela graacutefica Seu uso mais

freuquente eacute inserir legendas dos eixos Apesar de ser possiacutevel controlar as legendas por dentro das funccedilotildees plot boxplot e barplot o numero de paracircmetros que se pode mudar

eacute limitado Quando se deseja um controle mais fino dos paracircmetros como posiccedilatildeo alinhamento cor tamanho da fonte etc eacute necessaacuterio usar mtext()

plot(riqueza~area)

mtext(legenda no lado errado side=4 line=09 at=20cex=2

family=serif)

par(new=TRUE)

Para sobrepor um novo graacutefico a um graacutefico jaacute existente Em vez de criar graacuteficos lado-a-lado como em par(mfrow=c()) este argumento iraacute desenhar o novo graacutefico sobre o

graacutefico anterior

plot(riqueza~area)

par(new=TRUE)

plot(abundancia~area)

Mas reparem que aqui seraacute necessaacuterio alguns ajustes para suprimir eixos e legendas Em muitos casos quando se estaacute inserindo informaccedilotildees seraacute necessaacuterio suprimir paracircmetros

axis()

Para se inserir um eixo novo Esta funccedilatildeo eacute bastante usada nos casos em que se deseja ter dois graacutefico dentro de uma mesma figura (ver par(new=TRUE)) ou entatildeo se deseja

controlar muitos dos paracircmetros dos eixos (como em mtext())

plot(riqueza~area)

par(new=TRUE)

plot(abundancia~area axes=FALSE ann=FALSE)

axis(4)

Aqui no caso seraacute necessaacuterio usar axes=F para suprimir a criaccedilatildeo dos eixos do graacutefico

inicial de abundacircncia e ann=F para suprimir a legenda de abundacircncia do lado direito Para

inserir a legenda de abundacircncia do lado direito seraacute necessaacuterio usar mtext()

arrows() rect() polygon()

Para inserir flechas ou barras de erros use arrows() Jaacute para inserir retacircngulos poliacutegonos

e outros formatos use rect() e polygon()

plot(riqueza~area)

rect(20204040)

Salvando Graacuteficos

Apoacutes ter feitos todos os graacuteficos desejados eacute possiacutevel salvaacute-los em vaacuterios formatos como jpeg png postscript pdf Consulte a ajuda do pacote grDevices para a lista completa e

mais informaccedilotildees

Apoacutes chegar ao graacutefico final ajustando todos os paracircmetros desejados vocecirc pode usar a funccedilatildeo do R para criar o arquivo no formato desejado Haacute funccedilotildees para cada formato de arquivo todas elas com o primeiro argumento filename que especifica o nome do arquivo

a salvar Para criar um arquivo jpg por exemplo haacute a funccedilatildeo jpeg

jpeg(filename = Algumnomejpg)

Feito isso o R agora iraacute enviar todos os resultados de comandos graacuteficos para este arquivo que eacute fechado com a funccedilatildeodevoff()

Exemplo

jpeg(filename = Rplotaulajpg width = 480 height = 480

units = px pointsize = 12 quality = 100

bg = white res = NA)

par(mfrow=c(12))

par(mar=c(14482))

plot(riqueza~area)

boxplot(riqueza~areacate)

devoff()

Quatro Fatos Importantes sobre Arquivos de Figuras (e uma dica)

Seu arquivo de figura soacute teraacute os paracircmetros desejados se vocecirc executar todo o coacutedigo apoacutes abrir o arquivo da figura incluindo todos os comandos par()

Seu arquivo de figura soacute seraacute salvo quando vocecirc executar o comando devoff()

Ateacute que isso aconteccedila todos os resultados de comandos graacuteficos continuaratildeo a

ser enviados para este arquivo Por isso se vocecirc criar dois graacuteficos o segundo substituiraacute o primeiro Ao executar o comando devoff() o arquivo seraacute gravado no diretoacuterio de trabalho

Se vocecirc quiser gravaacute-lo em outro lugar teraacute que especificar o caminho completo no

comando de criaccedilatildeo do arquivo no argumento filename

DICA

Para gravar uma sequecircncia de graacuteficos sem precisar dar vaacuterios comandos de abertura de

arquivos use no argumento do nome do arquivo a notaccedilatildeo nome[nuacutemero]dextensatildeo

onde [nuacutemero] normalmente satildeo os nuacutemeros 01 02 ou 03

png(meugrafico02dpng)

Com essa notaccedilatildeo os graacuteficos gerados seratildeo gravados com uma numeraccedilatildeo sequencial que tem [numero] algarismos Por exemplo [nuacutemero] = 01 indica numeraccedilatildeo sequencial de

um algarismo e vocecirc pode gravar ateacute nove graacuteficos (meugrafico1png a meugrafico9png) Se [nuacutemero] = 02 a numeraccedilatildeo sequencial tem dois algarismos portanto vocecirc pode gravar

ateacute 99 figuras (meugrafico01png a meugrafico99png)

Se vocecirc gera mais graacuteficos do que este valor maacuteximo os excedentes sobrepotildeem os

primeiros na sequecircncia Para evitar isso normalmente usamos [nuacutemero] = 03 que

permite gerar ateacute 999 arquivos o que eacute mais do que suficiente na maioria dos casos

O padratildeo das funccedilotildees de arquivos graacuteficos do tipo bitmap no R eacute gerar arquivos com o nome Rplotxxxextensatildeo com numeraccedilatildeo sequencial com 3 algarismos ou seja

bmp(filename = Rplot03dbmp)

jpeg(filename = Rplot03djpg)

png(filename = Rplot03dpng)

tiff(filename = Rplot03dbmp)

Para arquivos do tipo postscript e pdf o padratildeo eacute um pouco diferente consulte a ajuda

Dispositivos Graacuteficos

Para operar bem com arquivos graacuteficos no R eacute preciso entender o conceito de dispositivo

graacutefico (graphical device)

Um dispositivo (device) eacute qualquer unidade de entrada (I=input) ou saiacuteda (O=output) em um computador O teclado eacute um dispositivo de entrada (I) o monitor de viacutedeo de saiacuteda (O)

e o disco riacutegido de ambos (IO)

Em termos bem gerais o R usa o padratildeo de sistemas da famiacutelia UNIX e abre arquivos especiais (device files) para controlar cada dispositivo de saiacuteda graacutefica 1) Na praacutetica

podemos podemos pensar que o R cria uma ldquorotardquo para cada dispositivo e que vocecirc pode ter vaacuterias destas ldquorotasrdquo abertas ao mesmo tempo mas apenas uma ativa por vez

Abrindo e trocando de dispositivos

Quando executamos um comando com resultado graacutefico o padratildeo do R eacute enviar seu

resultado para um dispositivo de tela Se natildeo haacute nenhum aberto este dispositivo de tela seraacute aberto Por exemplo se iniciamos o R e executamos um comando plot

plot(riqueza~area)

uma janela se abriraacute para exibir a figura nele Este eacute um dispositivo graacutefico de tela normalmente do tipo X11 em sistemas UNIX e do tipo windows em sistemas Microsoft

Windows

Eacute possiacutevel tambeacutem abrir mais dispositivos de tela com o comando

gt x11()

que funciona nos dois tipos de sistemas operacionais Ao executar este comando uma nova janela graacutefica em branco se abriraacute na margem superior da qual vocecirc veraacute a indicaccedilatildeo de que agora este eacute o dispositivo ativo

O dispositivo ativo eacute que receberaacute o resultado de todos os comandos graacuteficos Assimvocecirc pode criar um novo graacutefico neste dispositivo ou alterar seus paracircmetros sem afetar o

graacutefico que estaacute na outra janela Quando vocecirc abre um novo dispositivo os paracircmetros satildeo os mantidos por padratildeo no R que vocecirc obteacutem com o comando par() Para mudaacute-los eacute

preciso usar o comando par como explicado nas seccedilotildees anteriores

Para trocar de dispositivo ativo use a funccedilatildeo devset(which=) cujo o argumento which eacute

o nuacutemero do dispositivo que vocecirc quer tornar ativo Por exemplo para voltar agrave janela do dispositivo 2 execute

gt devset(which=2)

Qual o Dispositivo Ativo

Enquanto temos apenas dispositivos de tela abertos eacute faacutecil descobrir qual eacute o ativo pois esta informaccedilatildeo eacute exibida na janela de cada um Mas quando abrimos um ou mais

dispositivos de arquivo como

gt png(figura02dpng)

gt pdf(figura02dpdf)

eacute faacutecil se perder Para que isso natildeo aconteccedila haacute as funccedilotildees devlist para listar todos os

dispositivos abertos e devcur que retorna o dispositivo ativo

gt devlist()

windows windows pngfigura02dpng

pdf

2 3 4

5

gt devcur()

pdf

5

gt devset(3)

windows

3

gt devcur()

windows

3

Vocecirc fecha um dispositivo com o comando devoff(which=n) em que n eacute o nuacutemero do dispositivo Se este argumento eacute omitido o valor padratildeo eacute o dispositivo ativo

gt devlist()

windows windows pngfigura02dpng

pdf

2 3 4

5

gt devcur()

pdf

5

gt devoff()

windows

2

gt devlist()

windows windows pngfigura02dpng

2 3 4

gt devcur()

windows

2

Quando o dispositivo ativo eacute fechado o seguinte na lista de dispositivos torna-se o ativo O uacuteltimo comando acima ilustra isto

Exerciacutecio 5

Crie diferentes graacuteficos em diferentes dispositivos Por fim salve-os em jpeg

Para saber mais como salvar graacuteficos em jpeg use a funccedilatildeo lsquorsquojpegrsquorsquo

Page 3: Tutoriais para criação e edição de gráficos no r

Editando Graacuteficos

Aqui comeccedila a parte mais complicada Natildeo porque eacute difiacutecil mudar a forma como os graacuteficos satildeo feitos mas porque para chegar num resultado final adequado requer um

processo iterativo Em outras palavras se o objetivo eacute mudar o tamanho da fonte seraacute necessaacuterio testar vaacuterios tamanhos ateacute se atingir o ldquotamanho idealrdquo para incluir no manuscrito eou tese

Existem duas maneiras de se mudar paracircmetros no graacutefico uma eacute por dentro do graacutefico ou

seja dentro da funccedilatildeo plot boxplot ou barplot e a outra eacute pela funccedilatildeo par() Alguns

argumentos soacute podem ser chamados exclusivamente por uma destas maneiras Por exemplo ylab e xlab modificam o nome (label) dos eixos e soacute podem ser chamadas por

dentro do graacutefico jaacute outras funccedilotildees soacute podem ser chamadas pelo par() como por

exemplo mar que controla o tamanho das margens do graacutefico e mfrow que controla quantos

graacuteficos seratildeo mostrados no mesmo dispositivo

Para que as alteraccedilotildees controladas pelo par() possam surtir efeito elas sempre devem vir

antes do graacutefico Se um novo dispositivo graacutefico natildeo for aberto todas as funccedilotildees jaacute controladas pelo par() continuaratildeo valendo mesmo que o graacutefico mude

Em geral a informaccedilatildeo que vem por uacuteltimo eacute a informaccedilatildeo que o R vai tomar como verdadeira Por exemplo las controla a direccedilatildeo das legendas dos eixos (las= 1 legendas

escritas sempre na horizontal las=2 legendas sempre na vertical) sejam os nuacutemeros da

escala ou o nome do eixo Se o seguinte comando eacute dado

par(las=1)

plot(riqueza~area las=2)

O resultado final seraacute um graacutefico com legendas na vertical Isso a princiacutepio pode parecer sem sentido poreacutem imagine um caso em que haacute vaacuterios graacuteficos no mesmo dispositivo graacutefico e em todos os casos se deseja ter legendas horizontais com exceccedilatildeo de um graacutefico

apenas em que um dos eixos seraacute desenhado verticalmente Satildeo em casos que nem este que se torna necessaacuterio poder dar informaccedilotildees ldquoconflitantesrdquo para o R

Outro caso que eacute importante saber eacute a funccedilatildeo cex Em sua forma geral ela se aplica ao

tamanho de fonte das legendas tiacutetulo pontos entre outros Se o seguinte comando eacute dado

par(cex=2)

plot(riqueza~area cex=2)

O resultado final teraacute legendas com tamanho 2 (default=1) e pontos com tamanho 4 Isto

ocorre pois par(cex=2) tem a funccedilatildeo geral de aumentar todas as fontes e pontos enquanto que no plot(cex=2) tem a funccedilatildeo de aumentar soacute o pontos E quando neste caso

especiacutefico em vez das informaccedilotildees entrarem em conflito como no caso anterior elas se

multiplicam

Exerciacutecio 2 ndash Aprendendo a Editar Graacuteficos

Entre no R e digite

plot

Agora usando as variaacuteveis

riqueza lt- c(151822242530313437394145)

area lt- c(24561030345056607758085)

Mude

O nome do eixo x para ldquoTamanho da Ilha (ha)rdquo

O nome do eixo y para ldquoRiqueza de Espeacuteciesrdquo

O tiacutetulo do graacutefico para ldquoAves das Ilhas Samoardquo

Agora entre no

par

Usando o mesmo graacutefico anterior mude

O tipo de ponto (numero de 0 a 25)

O tamanho dos pontos e legendas

A direccedilatildeo da escala do graacutefico (para ficar tudo na horizontal)

O tipo de fonte das legendas (para ficar tudo como em Times New Roman ndash dica= ldquoserifrdquo)

Apesar das paacuteginas de ajuda do R natildeo serem muito amigaacuteveis no comeccedilo eacute preciso ter calma e aprender a procurar a informaccedilatildeo desejada A paacutegina do par() eacute uma das mais

procuradas por todos que estatildeo fazendo graacuteficos no R e por isso eacute importante que se gaste

um tempo para aprender qual tipo de informaccedilatildeo ela fornece onde estaacute a informaccedilatildeo e como mudar os paracircmetros do R

par()

DICA

No comeccedilo quando ainda natildeo se conhece direito todas as funccedilotildees do par() eacute aconselhaacutevel

que se imprima a paacutegina de ajuda para que se possa visualizar todas os argumentos

Existem dois argumentos do par() muito importantes e que satildeo usadas quase 100 das

vezes Um par(mfrow=c()) controla ldquoquantas figurasrdquo seratildeo desenhadas dentro de um

mesmo dispositivo O vetor contido dentro da funccedilatildeo mfrow=() controla o numero de

graacuteficos que seratildeo desenhados no eixo x (1deg nuacutemero) e no eixo y (2deg nuacutemero)

O outro o par(mar=c()) controla o ldquotamanho das margensrdquo do graacutefico e como a figura

ficaraacute disposta dentro do dispositivo O vetor contido dentro da funccedilatildeo mar=() controla as

posiccedilotildees das margens sendo que o 1deg numero controla a margem da parte de baixo do

graacutefico o 2deg controla a margem do lado esquerdo o 3deg numero controla a parte de cima e o 4deg numero controla o tamanho da margem do lado direito do graacutefico

Exemplos de par(mfrow=c())

par(mfrow=c(21))

plot(riqueza~area)

boxplot(riqueza~areacate)

par(mfrow=c(12))

plot(riqueza~area)

boxplot(riqueza~areacate)

Exemplos de par(mar=c())

par(mfrow=c(21))

par(mar=c(41426))

plot(riqueza~area)

boxplot(riqueza~areacate)

par(mfrow=c(12))

par(mar=c(14482))

plot(riqueza~area)

boxplot(riqueza~areacate)

par(mfrow=c(12))

par(mar=c(8481))

plot(riqueza~area)

par(mar=c(142405))

boxplot(riqueza~areacate)

Diferenccedilas Entre Tipos De Graacutefico

Infelizmente a forma como se muda argumentos do plot() boxplot() e barplot() natildeo

eacute sempre a mesma ou seja comandos que funcionam perfeitamente para o plot() podem

natildeo produzir efeito algum no boxplot() e vice-versa Esta caracteriacutestica de fato atrapalha

um pouco mas assim que se acostuma fica mais faacutecil Haacute duas dicas para resolver este

problema (i) tente sempre jogar os argumentos para o par() pois agraves vezes eles podem natildeo

funcionar se chamadas por dentro do plot() boxplot() etc mas iratildeo funcionar pelo

par() (ii) descubra o nome em inglecircs do paracircmetro que se quer mudar (label tick

legend) e jogue no Google ldquolegend boxplotrdquo Com certeza algueacutem jaacute teve este mesmo

problema e entrando dentro da lista do R (as diversas que existem) ou em aulas

disponibilizadas na internet com certeza se acha uma soluccedilatildeo

Exerciacutecio 3 ndash Mudando diferentes Graacuteficos

Com as variaacuteveis

riqueza lt- c(151822242530313437394145)

area lt- c(24561030345056607758085)

areacate lt- rep(c(pequeno grande) each=6)

Crie

plot(riqueza~area)

E agora

plot(riqueza~area bty=l tcl=03)

Perecebeu o que mudou

Agora tente

boxplot(riqueza~areacate bty=l tcl=03)

O que aconteceu

E agora

par(bty=l)

par(tcl=03)

boxplot(riqueza~areacate)

Viu soacute

Inserindo mais Informaccedilotildees em Graacuteficos

Existem diversas informaccedilotildees que se pode incluir em um graacutefico Pode-se colocar uma letra para mostrar que este eacute o painel ldquoardquo e ao lado eacute o painel rdquobrdquo pode-se colocar asteriscos para

mostrar quais relaccedilotildees satildeo significativas pode-se desenhar flechas outros pontos uma infinidade de coisas Tudo isto pode ser feito mas requer funccedilotildees comandos separados daqueles jaacute passados pelo par() e plot() boxplot() ou barplot() Dentre as vaacuterias funccedilotildees

existentes para se inserir informaccedilotildees em graacuteficos existem sete que satildeo bastante uacuteteis Use

Exerciacutecio 4

Usando as variaacuteveis

riqueza lt- c(151822242530313437394145)

area lt- c(24561030345056607758085)

abundancia lt- rev(riqueza)

Crie graacuteficos inserindo os paracircmetros abaixo

lines()

Para inserir linhas retas ou curvas natildeo-parameacutetricas (como lowess loess gam etc)

plot(riqueza~area)

lines(lowess(area riqueza))

abline()

Para inserir linhas de tendecircncia criadas a partir de um modelo linear Para isso eacute primeiro

necessaacuterio criar o modelo para depois criar a linha

model lt- lm(riqueza~area)

plot(riqueza~area)

abline(model)

Com a funccedilatildeo abline vocecirc pode tambeacutem inserir uma linha reta com intercepto e inclinaccedilatildeo

definidos por vocecirc com os dois primeiros argumentos

plot(riqueza~area)

abline(01)

A funccedilatildeo abline tambeacutem serve para acrescentar linhas verticais e horizontais com os argumentos v e h No coacutedigo abaixo traccedilamos estas linhas passando pelas meacutedias das duas

variaacuteveis do diagrama de dispersatildeo

plot(riqueza~area)

abline(v=mean(area))

abline(h=mean(riqueza))

Vocecirc sabia A reta da regressatildeo linear simples sempre passa pelo ponto que eacute a interseccedilatildeo destas duas linhas

text()

Para inserir texto dentro do graacutefico O texto pode ser uma letra um siacutembolo (muito usado para mostrar diferenciar classes no graacutefico) uma palavra ou ateacute mesmo uma frase

plot(riqueza~area)

text(2040texto)

mtext()

Este comando acrescenta texto nas margens do graacutefico ou da janela graacutefica Seu uso mais

freuquente eacute inserir legendas dos eixos Apesar de ser possiacutevel controlar as legendas por dentro das funccedilotildees plot boxplot e barplot o numero de paracircmetros que se pode mudar

eacute limitado Quando se deseja um controle mais fino dos paracircmetros como posiccedilatildeo alinhamento cor tamanho da fonte etc eacute necessaacuterio usar mtext()

plot(riqueza~area)

mtext(legenda no lado errado side=4 line=09 at=20cex=2

family=serif)

par(new=TRUE)

Para sobrepor um novo graacutefico a um graacutefico jaacute existente Em vez de criar graacuteficos lado-a-lado como em par(mfrow=c()) este argumento iraacute desenhar o novo graacutefico sobre o

graacutefico anterior

plot(riqueza~area)

par(new=TRUE)

plot(abundancia~area)

Mas reparem que aqui seraacute necessaacuterio alguns ajustes para suprimir eixos e legendas Em muitos casos quando se estaacute inserindo informaccedilotildees seraacute necessaacuterio suprimir paracircmetros

axis()

Para se inserir um eixo novo Esta funccedilatildeo eacute bastante usada nos casos em que se deseja ter dois graacutefico dentro de uma mesma figura (ver par(new=TRUE)) ou entatildeo se deseja

controlar muitos dos paracircmetros dos eixos (como em mtext())

plot(riqueza~area)

par(new=TRUE)

plot(abundancia~area axes=FALSE ann=FALSE)

axis(4)

Aqui no caso seraacute necessaacuterio usar axes=F para suprimir a criaccedilatildeo dos eixos do graacutefico

inicial de abundacircncia e ann=F para suprimir a legenda de abundacircncia do lado direito Para

inserir a legenda de abundacircncia do lado direito seraacute necessaacuterio usar mtext()

arrows() rect() polygon()

Para inserir flechas ou barras de erros use arrows() Jaacute para inserir retacircngulos poliacutegonos

e outros formatos use rect() e polygon()

plot(riqueza~area)

rect(20204040)

Salvando Graacuteficos

Apoacutes ter feitos todos os graacuteficos desejados eacute possiacutevel salvaacute-los em vaacuterios formatos como jpeg png postscript pdf Consulte a ajuda do pacote grDevices para a lista completa e

mais informaccedilotildees

Apoacutes chegar ao graacutefico final ajustando todos os paracircmetros desejados vocecirc pode usar a funccedilatildeo do R para criar o arquivo no formato desejado Haacute funccedilotildees para cada formato de arquivo todas elas com o primeiro argumento filename que especifica o nome do arquivo

a salvar Para criar um arquivo jpg por exemplo haacute a funccedilatildeo jpeg

jpeg(filename = Algumnomejpg)

Feito isso o R agora iraacute enviar todos os resultados de comandos graacuteficos para este arquivo que eacute fechado com a funccedilatildeodevoff()

Exemplo

jpeg(filename = Rplotaulajpg width = 480 height = 480

units = px pointsize = 12 quality = 100

bg = white res = NA)

par(mfrow=c(12))

par(mar=c(14482))

plot(riqueza~area)

boxplot(riqueza~areacate)

devoff()

Quatro Fatos Importantes sobre Arquivos de Figuras (e uma dica)

Seu arquivo de figura soacute teraacute os paracircmetros desejados se vocecirc executar todo o coacutedigo apoacutes abrir o arquivo da figura incluindo todos os comandos par()

Seu arquivo de figura soacute seraacute salvo quando vocecirc executar o comando devoff()

Ateacute que isso aconteccedila todos os resultados de comandos graacuteficos continuaratildeo a

ser enviados para este arquivo Por isso se vocecirc criar dois graacuteficos o segundo substituiraacute o primeiro Ao executar o comando devoff() o arquivo seraacute gravado no diretoacuterio de trabalho

Se vocecirc quiser gravaacute-lo em outro lugar teraacute que especificar o caminho completo no

comando de criaccedilatildeo do arquivo no argumento filename

DICA

Para gravar uma sequecircncia de graacuteficos sem precisar dar vaacuterios comandos de abertura de

arquivos use no argumento do nome do arquivo a notaccedilatildeo nome[nuacutemero]dextensatildeo

onde [nuacutemero] normalmente satildeo os nuacutemeros 01 02 ou 03

png(meugrafico02dpng)

Com essa notaccedilatildeo os graacuteficos gerados seratildeo gravados com uma numeraccedilatildeo sequencial que tem [numero] algarismos Por exemplo [nuacutemero] = 01 indica numeraccedilatildeo sequencial de

um algarismo e vocecirc pode gravar ateacute nove graacuteficos (meugrafico1png a meugrafico9png) Se [nuacutemero] = 02 a numeraccedilatildeo sequencial tem dois algarismos portanto vocecirc pode gravar

ateacute 99 figuras (meugrafico01png a meugrafico99png)

Se vocecirc gera mais graacuteficos do que este valor maacuteximo os excedentes sobrepotildeem os

primeiros na sequecircncia Para evitar isso normalmente usamos [nuacutemero] = 03 que

permite gerar ateacute 999 arquivos o que eacute mais do que suficiente na maioria dos casos

O padratildeo das funccedilotildees de arquivos graacuteficos do tipo bitmap no R eacute gerar arquivos com o nome Rplotxxxextensatildeo com numeraccedilatildeo sequencial com 3 algarismos ou seja

bmp(filename = Rplot03dbmp)

jpeg(filename = Rplot03djpg)

png(filename = Rplot03dpng)

tiff(filename = Rplot03dbmp)

Para arquivos do tipo postscript e pdf o padratildeo eacute um pouco diferente consulte a ajuda

Dispositivos Graacuteficos

Para operar bem com arquivos graacuteficos no R eacute preciso entender o conceito de dispositivo

graacutefico (graphical device)

Um dispositivo (device) eacute qualquer unidade de entrada (I=input) ou saiacuteda (O=output) em um computador O teclado eacute um dispositivo de entrada (I) o monitor de viacutedeo de saiacuteda (O)

e o disco riacutegido de ambos (IO)

Em termos bem gerais o R usa o padratildeo de sistemas da famiacutelia UNIX e abre arquivos especiais (device files) para controlar cada dispositivo de saiacuteda graacutefica 1) Na praacutetica

podemos podemos pensar que o R cria uma ldquorotardquo para cada dispositivo e que vocecirc pode ter vaacuterias destas ldquorotasrdquo abertas ao mesmo tempo mas apenas uma ativa por vez

Abrindo e trocando de dispositivos

Quando executamos um comando com resultado graacutefico o padratildeo do R eacute enviar seu

resultado para um dispositivo de tela Se natildeo haacute nenhum aberto este dispositivo de tela seraacute aberto Por exemplo se iniciamos o R e executamos um comando plot

plot(riqueza~area)

uma janela se abriraacute para exibir a figura nele Este eacute um dispositivo graacutefico de tela normalmente do tipo X11 em sistemas UNIX e do tipo windows em sistemas Microsoft

Windows

Eacute possiacutevel tambeacutem abrir mais dispositivos de tela com o comando

gt x11()

que funciona nos dois tipos de sistemas operacionais Ao executar este comando uma nova janela graacutefica em branco se abriraacute na margem superior da qual vocecirc veraacute a indicaccedilatildeo de que agora este eacute o dispositivo ativo

O dispositivo ativo eacute que receberaacute o resultado de todos os comandos graacuteficos Assimvocecirc pode criar um novo graacutefico neste dispositivo ou alterar seus paracircmetros sem afetar o

graacutefico que estaacute na outra janela Quando vocecirc abre um novo dispositivo os paracircmetros satildeo os mantidos por padratildeo no R que vocecirc obteacutem com o comando par() Para mudaacute-los eacute

preciso usar o comando par como explicado nas seccedilotildees anteriores

Para trocar de dispositivo ativo use a funccedilatildeo devset(which=) cujo o argumento which eacute

o nuacutemero do dispositivo que vocecirc quer tornar ativo Por exemplo para voltar agrave janela do dispositivo 2 execute

gt devset(which=2)

Qual o Dispositivo Ativo

Enquanto temos apenas dispositivos de tela abertos eacute faacutecil descobrir qual eacute o ativo pois esta informaccedilatildeo eacute exibida na janela de cada um Mas quando abrimos um ou mais

dispositivos de arquivo como

gt png(figura02dpng)

gt pdf(figura02dpdf)

eacute faacutecil se perder Para que isso natildeo aconteccedila haacute as funccedilotildees devlist para listar todos os

dispositivos abertos e devcur que retorna o dispositivo ativo

gt devlist()

windows windows pngfigura02dpng

pdf

2 3 4

5

gt devcur()

pdf

5

gt devset(3)

windows

3

gt devcur()

windows

3

Vocecirc fecha um dispositivo com o comando devoff(which=n) em que n eacute o nuacutemero do dispositivo Se este argumento eacute omitido o valor padratildeo eacute o dispositivo ativo

gt devlist()

windows windows pngfigura02dpng

pdf

2 3 4

5

gt devcur()

pdf

5

gt devoff()

windows

2

gt devlist()

windows windows pngfigura02dpng

2 3 4

gt devcur()

windows

2

Quando o dispositivo ativo eacute fechado o seguinte na lista de dispositivos torna-se o ativo O uacuteltimo comando acima ilustra isto

Exerciacutecio 5

Crie diferentes graacuteficos em diferentes dispositivos Por fim salve-os em jpeg

Para saber mais como salvar graacuteficos em jpeg use a funccedilatildeo lsquorsquojpegrsquorsquo

Page 4: Tutoriais para criação e edição de gráficos no r

especiacutefico em vez das informaccedilotildees entrarem em conflito como no caso anterior elas se

multiplicam

Exerciacutecio 2 ndash Aprendendo a Editar Graacuteficos

Entre no R e digite

plot

Agora usando as variaacuteveis

riqueza lt- c(151822242530313437394145)

area lt- c(24561030345056607758085)

Mude

O nome do eixo x para ldquoTamanho da Ilha (ha)rdquo

O nome do eixo y para ldquoRiqueza de Espeacuteciesrdquo

O tiacutetulo do graacutefico para ldquoAves das Ilhas Samoardquo

Agora entre no

par

Usando o mesmo graacutefico anterior mude

O tipo de ponto (numero de 0 a 25)

O tamanho dos pontos e legendas

A direccedilatildeo da escala do graacutefico (para ficar tudo na horizontal)

O tipo de fonte das legendas (para ficar tudo como em Times New Roman ndash dica= ldquoserifrdquo)

Apesar das paacuteginas de ajuda do R natildeo serem muito amigaacuteveis no comeccedilo eacute preciso ter calma e aprender a procurar a informaccedilatildeo desejada A paacutegina do par() eacute uma das mais

procuradas por todos que estatildeo fazendo graacuteficos no R e por isso eacute importante que se gaste

um tempo para aprender qual tipo de informaccedilatildeo ela fornece onde estaacute a informaccedilatildeo e como mudar os paracircmetros do R

par()

DICA

No comeccedilo quando ainda natildeo se conhece direito todas as funccedilotildees do par() eacute aconselhaacutevel

que se imprima a paacutegina de ajuda para que se possa visualizar todas os argumentos

Existem dois argumentos do par() muito importantes e que satildeo usadas quase 100 das

vezes Um par(mfrow=c()) controla ldquoquantas figurasrdquo seratildeo desenhadas dentro de um

mesmo dispositivo O vetor contido dentro da funccedilatildeo mfrow=() controla o numero de

graacuteficos que seratildeo desenhados no eixo x (1deg nuacutemero) e no eixo y (2deg nuacutemero)

O outro o par(mar=c()) controla o ldquotamanho das margensrdquo do graacutefico e como a figura

ficaraacute disposta dentro do dispositivo O vetor contido dentro da funccedilatildeo mar=() controla as

posiccedilotildees das margens sendo que o 1deg numero controla a margem da parte de baixo do

graacutefico o 2deg controla a margem do lado esquerdo o 3deg numero controla a parte de cima e o 4deg numero controla o tamanho da margem do lado direito do graacutefico

Exemplos de par(mfrow=c())

par(mfrow=c(21))

plot(riqueza~area)

boxplot(riqueza~areacate)

par(mfrow=c(12))

plot(riqueza~area)

boxplot(riqueza~areacate)

Exemplos de par(mar=c())

par(mfrow=c(21))

par(mar=c(41426))

plot(riqueza~area)

boxplot(riqueza~areacate)

par(mfrow=c(12))

par(mar=c(14482))

plot(riqueza~area)

boxplot(riqueza~areacate)

par(mfrow=c(12))

par(mar=c(8481))

plot(riqueza~area)

par(mar=c(142405))

boxplot(riqueza~areacate)

Diferenccedilas Entre Tipos De Graacutefico

Infelizmente a forma como se muda argumentos do plot() boxplot() e barplot() natildeo

eacute sempre a mesma ou seja comandos que funcionam perfeitamente para o plot() podem

natildeo produzir efeito algum no boxplot() e vice-versa Esta caracteriacutestica de fato atrapalha

um pouco mas assim que se acostuma fica mais faacutecil Haacute duas dicas para resolver este

problema (i) tente sempre jogar os argumentos para o par() pois agraves vezes eles podem natildeo

funcionar se chamadas por dentro do plot() boxplot() etc mas iratildeo funcionar pelo

par() (ii) descubra o nome em inglecircs do paracircmetro que se quer mudar (label tick

legend) e jogue no Google ldquolegend boxplotrdquo Com certeza algueacutem jaacute teve este mesmo

problema e entrando dentro da lista do R (as diversas que existem) ou em aulas

disponibilizadas na internet com certeza se acha uma soluccedilatildeo

Exerciacutecio 3 ndash Mudando diferentes Graacuteficos

Com as variaacuteveis

riqueza lt- c(151822242530313437394145)

area lt- c(24561030345056607758085)

areacate lt- rep(c(pequeno grande) each=6)

Crie

plot(riqueza~area)

E agora

plot(riqueza~area bty=l tcl=03)

Perecebeu o que mudou

Agora tente

boxplot(riqueza~areacate bty=l tcl=03)

O que aconteceu

E agora

par(bty=l)

par(tcl=03)

boxplot(riqueza~areacate)

Viu soacute

Inserindo mais Informaccedilotildees em Graacuteficos

Existem diversas informaccedilotildees que se pode incluir em um graacutefico Pode-se colocar uma letra para mostrar que este eacute o painel ldquoardquo e ao lado eacute o painel rdquobrdquo pode-se colocar asteriscos para

mostrar quais relaccedilotildees satildeo significativas pode-se desenhar flechas outros pontos uma infinidade de coisas Tudo isto pode ser feito mas requer funccedilotildees comandos separados daqueles jaacute passados pelo par() e plot() boxplot() ou barplot() Dentre as vaacuterias funccedilotildees

existentes para se inserir informaccedilotildees em graacuteficos existem sete que satildeo bastante uacuteteis Use

Exerciacutecio 4

Usando as variaacuteveis

riqueza lt- c(151822242530313437394145)

area lt- c(24561030345056607758085)

abundancia lt- rev(riqueza)

Crie graacuteficos inserindo os paracircmetros abaixo

lines()

Para inserir linhas retas ou curvas natildeo-parameacutetricas (como lowess loess gam etc)

plot(riqueza~area)

lines(lowess(area riqueza))

abline()

Para inserir linhas de tendecircncia criadas a partir de um modelo linear Para isso eacute primeiro

necessaacuterio criar o modelo para depois criar a linha

model lt- lm(riqueza~area)

plot(riqueza~area)

abline(model)

Com a funccedilatildeo abline vocecirc pode tambeacutem inserir uma linha reta com intercepto e inclinaccedilatildeo

definidos por vocecirc com os dois primeiros argumentos

plot(riqueza~area)

abline(01)

A funccedilatildeo abline tambeacutem serve para acrescentar linhas verticais e horizontais com os argumentos v e h No coacutedigo abaixo traccedilamos estas linhas passando pelas meacutedias das duas

variaacuteveis do diagrama de dispersatildeo

plot(riqueza~area)

abline(v=mean(area))

abline(h=mean(riqueza))

Vocecirc sabia A reta da regressatildeo linear simples sempre passa pelo ponto que eacute a interseccedilatildeo destas duas linhas

text()

Para inserir texto dentro do graacutefico O texto pode ser uma letra um siacutembolo (muito usado para mostrar diferenciar classes no graacutefico) uma palavra ou ateacute mesmo uma frase

plot(riqueza~area)

text(2040texto)

mtext()

Este comando acrescenta texto nas margens do graacutefico ou da janela graacutefica Seu uso mais

freuquente eacute inserir legendas dos eixos Apesar de ser possiacutevel controlar as legendas por dentro das funccedilotildees plot boxplot e barplot o numero de paracircmetros que se pode mudar

eacute limitado Quando se deseja um controle mais fino dos paracircmetros como posiccedilatildeo alinhamento cor tamanho da fonte etc eacute necessaacuterio usar mtext()

plot(riqueza~area)

mtext(legenda no lado errado side=4 line=09 at=20cex=2

family=serif)

par(new=TRUE)

Para sobrepor um novo graacutefico a um graacutefico jaacute existente Em vez de criar graacuteficos lado-a-lado como em par(mfrow=c()) este argumento iraacute desenhar o novo graacutefico sobre o

graacutefico anterior

plot(riqueza~area)

par(new=TRUE)

plot(abundancia~area)

Mas reparem que aqui seraacute necessaacuterio alguns ajustes para suprimir eixos e legendas Em muitos casos quando se estaacute inserindo informaccedilotildees seraacute necessaacuterio suprimir paracircmetros

axis()

Para se inserir um eixo novo Esta funccedilatildeo eacute bastante usada nos casos em que se deseja ter dois graacutefico dentro de uma mesma figura (ver par(new=TRUE)) ou entatildeo se deseja

controlar muitos dos paracircmetros dos eixos (como em mtext())

plot(riqueza~area)

par(new=TRUE)

plot(abundancia~area axes=FALSE ann=FALSE)

axis(4)

Aqui no caso seraacute necessaacuterio usar axes=F para suprimir a criaccedilatildeo dos eixos do graacutefico

inicial de abundacircncia e ann=F para suprimir a legenda de abundacircncia do lado direito Para

inserir a legenda de abundacircncia do lado direito seraacute necessaacuterio usar mtext()

arrows() rect() polygon()

Para inserir flechas ou barras de erros use arrows() Jaacute para inserir retacircngulos poliacutegonos

e outros formatos use rect() e polygon()

plot(riqueza~area)

rect(20204040)

Salvando Graacuteficos

Apoacutes ter feitos todos os graacuteficos desejados eacute possiacutevel salvaacute-los em vaacuterios formatos como jpeg png postscript pdf Consulte a ajuda do pacote grDevices para a lista completa e

mais informaccedilotildees

Apoacutes chegar ao graacutefico final ajustando todos os paracircmetros desejados vocecirc pode usar a funccedilatildeo do R para criar o arquivo no formato desejado Haacute funccedilotildees para cada formato de arquivo todas elas com o primeiro argumento filename que especifica o nome do arquivo

a salvar Para criar um arquivo jpg por exemplo haacute a funccedilatildeo jpeg

jpeg(filename = Algumnomejpg)

Feito isso o R agora iraacute enviar todos os resultados de comandos graacuteficos para este arquivo que eacute fechado com a funccedilatildeodevoff()

Exemplo

jpeg(filename = Rplotaulajpg width = 480 height = 480

units = px pointsize = 12 quality = 100

bg = white res = NA)

par(mfrow=c(12))

par(mar=c(14482))

plot(riqueza~area)

boxplot(riqueza~areacate)

devoff()

Quatro Fatos Importantes sobre Arquivos de Figuras (e uma dica)

Seu arquivo de figura soacute teraacute os paracircmetros desejados se vocecirc executar todo o coacutedigo apoacutes abrir o arquivo da figura incluindo todos os comandos par()

Seu arquivo de figura soacute seraacute salvo quando vocecirc executar o comando devoff()

Ateacute que isso aconteccedila todos os resultados de comandos graacuteficos continuaratildeo a

ser enviados para este arquivo Por isso se vocecirc criar dois graacuteficos o segundo substituiraacute o primeiro Ao executar o comando devoff() o arquivo seraacute gravado no diretoacuterio de trabalho

Se vocecirc quiser gravaacute-lo em outro lugar teraacute que especificar o caminho completo no

comando de criaccedilatildeo do arquivo no argumento filename

DICA

Para gravar uma sequecircncia de graacuteficos sem precisar dar vaacuterios comandos de abertura de

arquivos use no argumento do nome do arquivo a notaccedilatildeo nome[nuacutemero]dextensatildeo

onde [nuacutemero] normalmente satildeo os nuacutemeros 01 02 ou 03

png(meugrafico02dpng)

Com essa notaccedilatildeo os graacuteficos gerados seratildeo gravados com uma numeraccedilatildeo sequencial que tem [numero] algarismos Por exemplo [nuacutemero] = 01 indica numeraccedilatildeo sequencial de

um algarismo e vocecirc pode gravar ateacute nove graacuteficos (meugrafico1png a meugrafico9png) Se [nuacutemero] = 02 a numeraccedilatildeo sequencial tem dois algarismos portanto vocecirc pode gravar

ateacute 99 figuras (meugrafico01png a meugrafico99png)

Se vocecirc gera mais graacuteficos do que este valor maacuteximo os excedentes sobrepotildeem os

primeiros na sequecircncia Para evitar isso normalmente usamos [nuacutemero] = 03 que

permite gerar ateacute 999 arquivos o que eacute mais do que suficiente na maioria dos casos

O padratildeo das funccedilotildees de arquivos graacuteficos do tipo bitmap no R eacute gerar arquivos com o nome Rplotxxxextensatildeo com numeraccedilatildeo sequencial com 3 algarismos ou seja

bmp(filename = Rplot03dbmp)

jpeg(filename = Rplot03djpg)

png(filename = Rplot03dpng)

tiff(filename = Rplot03dbmp)

Para arquivos do tipo postscript e pdf o padratildeo eacute um pouco diferente consulte a ajuda

Dispositivos Graacuteficos

Para operar bem com arquivos graacuteficos no R eacute preciso entender o conceito de dispositivo

graacutefico (graphical device)

Um dispositivo (device) eacute qualquer unidade de entrada (I=input) ou saiacuteda (O=output) em um computador O teclado eacute um dispositivo de entrada (I) o monitor de viacutedeo de saiacuteda (O)

e o disco riacutegido de ambos (IO)

Em termos bem gerais o R usa o padratildeo de sistemas da famiacutelia UNIX e abre arquivos especiais (device files) para controlar cada dispositivo de saiacuteda graacutefica 1) Na praacutetica

podemos podemos pensar que o R cria uma ldquorotardquo para cada dispositivo e que vocecirc pode ter vaacuterias destas ldquorotasrdquo abertas ao mesmo tempo mas apenas uma ativa por vez

Abrindo e trocando de dispositivos

Quando executamos um comando com resultado graacutefico o padratildeo do R eacute enviar seu

resultado para um dispositivo de tela Se natildeo haacute nenhum aberto este dispositivo de tela seraacute aberto Por exemplo se iniciamos o R e executamos um comando plot

plot(riqueza~area)

uma janela se abriraacute para exibir a figura nele Este eacute um dispositivo graacutefico de tela normalmente do tipo X11 em sistemas UNIX e do tipo windows em sistemas Microsoft

Windows

Eacute possiacutevel tambeacutem abrir mais dispositivos de tela com o comando

gt x11()

que funciona nos dois tipos de sistemas operacionais Ao executar este comando uma nova janela graacutefica em branco se abriraacute na margem superior da qual vocecirc veraacute a indicaccedilatildeo de que agora este eacute o dispositivo ativo

O dispositivo ativo eacute que receberaacute o resultado de todos os comandos graacuteficos Assimvocecirc pode criar um novo graacutefico neste dispositivo ou alterar seus paracircmetros sem afetar o

graacutefico que estaacute na outra janela Quando vocecirc abre um novo dispositivo os paracircmetros satildeo os mantidos por padratildeo no R que vocecirc obteacutem com o comando par() Para mudaacute-los eacute

preciso usar o comando par como explicado nas seccedilotildees anteriores

Para trocar de dispositivo ativo use a funccedilatildeo devset(which=) cujo o argumento which eacute

o nuacutemero do dispositivo que vocecirc quer tornar ativo Por exemplo para voltar agrave janela do dispositivo 2 execute

gt devset(which=2)

Qual o Dispositivo Ativo

Enquanto temos apenas dispositivos de tela abertos eacute faacutecil descobrir qual eacute o ativo pois esta informaccedilatildeo eacute exibida na janela de cada um Mas quando abrimos um ou mais

dispositivos de arquivo como

gt png(figura02dpng)

gt pdf(figura02dpdf)

eacute faacutecil se perder Para que isso natildeo aconteccedila haacute as funccedilotildees devlist para listar todos os

dispositivos abertos e devcur que retorna o dispositivo ativo

gt devlist()

windows windows pngfigura02dpng

pdf

2 3 4

5

gt devcur()

pdf

5

gt devset(3)

windows

3

gt devcur()

windows

3

Vocecirc fecha um dispositivo com o comando devoff(which=n) em que n eacute o nuacutemero do dispositivo Se este argumento eacute omitido o valor padratildeo eacute o dispositivo ativo

gt devlist()

windows windows pngfigura02dpng

pdf

2 3 4

5

gt devcur()

pdf

5

gt devoff()

windows

2

gt devlist()

windows windows pngfigura02dpng

2 3 4

gt devcur()

windows

2

Quando o dispositivo ativo eacute fechado o seguinte na lista de dispositivos torna-se o ativo O uacuteltimo comando acima ilustra isto

Exerciacutecio 5

Crie diferentes graacuteficos em diferentes dispositivos Por fim salve-os em jpeg

Para saber mais como salvar graacuteficos em jpeg use a funccedilatildeo lsquorsquojpegrsquorsquo

Page 5: Tutoriais para criação e edição de gráficos no r

No comeccedilo quando ainda natildeo se conhece direito todas as funccedilotildees do par() eacute aconselhaacutevel

que se imprima a paacutegina de ajuda para que se possa visualizar todas os argumentos

Existem dois argumentos do par() muito importantes e que satildeo usadas quase 100 das

vezes Um par(mfrow=c()) controla ldquoquantas figurasrdquo seratildeo desenhadas dentro de um

mesmo dispositivo O vetor contido dentro da funccedilatildeo mfrow=() controla o numero de

graacuteficos que seratildeo desenhados no eixo x (1deg nuacutemero) e no eixo y (2deg nuacutemero)

O outro o par(mar=c()) controla o ldquotamanho das margensrdquo do graacutefico e como a figura

ficaraacute disposta dentro do dispositivo O vetor contido dentro da funccedilatildeo mar=() controla as

posiccedilotildees das margens sendo que o 1deg numero controla a margem da parte de baixo do

graacutefico o 2deg controla a margem do lado esquerdo o 3deg numero controla a parte de cima e o 4deg numero controla o tamanho da margem do lado direito do graacutefico

Exemplos de par(mfrow=c())

par(mfrow=c(21))

plot(riqueza~area)

boxplot(riqueza~areacate)

par(mfrow=c(12))

plot(riqueza~area)

boxplot(riqueza~areacate)

Exemplos de par(mar=c())

par(mfrow=c(21))

par(mar=c(41426))

plot(riqueza~area)

boxplot(riqueza~areacate)

par(mfrow=c(12))

par(mar=c(14482))

plot(riqueza~area)

boxplot(riqueza~areacate)

par(mfrow=c(12))

par(mar=c(8481))

plot(riqueza~area)

par(mar=c(142405))

boxplot(riqueza~areacate)

Diferenccedilas Entre Tipos De Graacutefico

Infelizmente a forma como se muda argumentos do plot() boxplot() e barplot() natildeo

eacute sempre a mesma ou seja comandos que funcionam perfeitamente para o plot() podem

natildeo produzir efeito algum no boxplot() e vice-versa Esta caracteriacutestica de fato atrapalha

um pouco mas assim que se acostuma fica mais faacutecil Haacute duas dicas para resolver este

problema (i) tente sempre jogar os argumentos para o par() pois agraves vezes eles podem natildeo

funcionar se chamadas por dentro do plot() boxplot() etc mas iratildeo funcionar pelo

par() (ii) descubra o nome em inglecircs do paracircmetro que se quer mudar (label tick

legend) e jogue no Google ldquolegend boxplotrdquo Com certeza algueacutem jaacute teve este mesmo

problema e entrando dentro da lista do R (as diversas que existem) ou em aulas

disponibilizadas na internet com certeza se acha uma soluccedilatildeo

Exerciacutecio 3 ndash Mudando diferentes Graacuteficos

Com as variaacuteveis

riqueza lt- c(151822242530313437394145)

area lt- c(24561030345056607758085)

areacate lt- rep(c(pequeno grande) each=6)

Crie

plot(riqueza~area)

E agora

plot(riqueza~area bty=l tcl=03)

Perecebeu o que mudou

Agora tente

boxplot(riqueza~areacate bty=l tcl=03)

O que aconteceu

E agora

par(bty=l)

par(tcl=03)

boxplot(riqueza~areacate)

Viu soacute

Inserindo mais Informaccedilotildees em Graacuteficos

Existem diversas informaccedilotildees que se pode incluir em um graacutefico Pode-se colocar uma letra para mostrar que este eacute o painel ldquoardquo e ao lado eacute o painel rdquobrdquo pode-se colocar asteriscos para

mostrar quais relaccedilotildees satildeo significativas pode-se desenhar flechas outros pontos uma infinidade de coisas Tudo isto pode ser feito mas requer funccedilotildees comandos separados daqueles jaacute passados pelo par() e plot() boxplot() ou barplot() Dentre as vaacuterias funccedilotildees

existentes para se inserir informaccedilotildees em graacuteficos existem sete que satildeo bastante uacuteteis Use

Exerciacutecio 4

Usando as variaacuteveis

riqueza lt- c(151822242530313437394145)

area lt- c(24561030345056607758085)

abundancia lt- rev(riqueza)

Crie graacuteficos inserindo os paracircmetros abaixo

lines()

Para inserir linhas retas ou curvas natildeo-parameacutetricas (como lowess loess gam etc)

plot(riqueza~area)

lines(lowess(area riqueza))

abline()

Para inserir linhas de tendecircncia criadas a partir de um modelo linear Para isso eacute primeiro

necessaacuterio criar o modelo para depois criar a linha

model lt- lm(riqueza~area)

plot(riqueza~area)

abline(model)

Com a funccedilatildeo abline vocecirc pode tambeacutem inserir uma linha reta com intercepto e inclinaccedilatildeo

definidos por vocecirc com os dois primeiros argumentos

plot(riqueza~area)

abline(01)

A funccedilatildeo abline tambeacutem serve para acrescentar linhas verticais e horizontais com os argumentos v e h No coacutedigo abaixo traccedilamos estas linhas passando pelas meacutedias das duas

variaacuteveis do diagrama de dispersatildeo

plot(riqueza~area)

abline(v=mean(area))

abline(h=mean(riqueza))

Vocecirc sabia A reta da regressatildeo linear simples sempre passa pelo ponto que eacute a interseccedilatildeo destas duas linhas

text()

Para inserir texto dentro do graacutefico O texto pode ser uma letra um siacutembolo (muito usado para mostrar diferenciar classes no graacutefico) uma palavra ou ateacute mesmo uma frase

plot(riqueza~area)

text(2040texto)

mtext()

Este comando acrescenta texto nas margens do graacutefico ou da janela graacutefica Seu uso mais

freuquente eacute inserir legendas dos eixos Apesar de ser possiacutevel controlar as legendas por dentro das funccedilotildees plot boxplot e barplot o numero de paracircmetros que se pode mudar

eacute limitado Quando se deseja um controle mais fino dos paracircmetros como posiccedilatildeo alinhamento cor tamanho da fonte etc eacute necessaacuterio usar mtext()

plot(riqueza~area)

mtext(legenda no lado errado side=4 line=09 at=20cex=2

family=serif)

par(new=TRUE)

Para sobrepor um novo graacutefico a um graacutefico jaacute existente Em vez de criar graacuteficos lado-a-lado como em par(mfrow=c()) este argumento iraacute desenhar o novo graacutefico sobre o

graacutefico anterior

plot(riqueza~area)

par(new=TRUE)

plot(abundancia~area)

Mas reparem que aqui seraacute necessaacuterio alguns ajustes para suprimir eixos e legendas Em muitos casos quando se estaacute inserindo informaccedilotildees seraacute necessaacuterio suprimir paracircmetros

axis()

Para se inserir um eixo novo Esta funccedilatildeo eacute bastante usada nos casos em que se deseja ter dois graacutefico dentro de uma mesma figura (ver par(new=TRUE)) ou entatildeo se deseja

controlar muitos dos paracircmetros dos eixos (como em mtext())

plot(riqueza~area)

par(new=TRUE)

plot(abundancia~area axes=FALSE ann=FALSE)

axis(4)

Aqui no caso seraacute necessaacuterio usar axes=F para suprimir a criaccedilatildeo dos eixos do graacutefico

inicial de abundacircncia e ann=F para suprimir a legenda de abundacircncia do lado direito Para

inserir a legenda de abundacircncia do lado direito seraacute necessaacuterio usar mtext()

arrows() rect() polygon()

Para inserir flechas ou barras de erros use arrows() Jaacute para inserir retacircngulos poliacutegonos

e outros formatos use rect() e polygon()

plot(riqueza~area)

rect(20204040)

Salvando Graacuteficos

Apoacutes ter feitos todos os graacuteficos desejados eacute possiacutevel salvaacute-los em vaacuterios formatos como jpeg png postscript pdf Consulte a ajuda do pacote grDevices para a lista completa e

mais informaccedilotildees

Apoacutes chegar ao graacutefico final ajustando todos os paracircmetros desejados vocecirc pode usar a funccedilatildeo do R para criar o arquivo no formato desejado Haacute funccedilotildees para cada formato de arquivo todas elas com o primeiro argumento filename que especifica o nome do arquivo

a salvar Para criar um arquivo jpg por exemplo haacute a funccedilatildeo jpeg

jpeg(filename = Algumnomejpg)

Feito isso o R agora iraacute enviar todos os resultados de comandos graacuteficos para este arquivo que eacute fechado com a funccedilatildeodevoff()

Exemplo

jpeg(filename = Rplotaulajpg width = 480 height = 480

units = px pointsize = 12 quality = 100

bg = white res = NA)

par(mfrow=c(12))

par(mar=c(14482))

plot(riqueza~area)

boxplot(riqueza~areacate)

devoff()

Quatro Fatos Importantes sobre Arquivos de Figuras (e uma dica)

Seu arquivo de figura soacute teraacute os paracircmetros desejados se vocecirc executar todo o coacutedigo apoacutes abrir o arquivo da figura incluindo todos os comandos par()

Seu arquivo de figura soacute seraacute salvo quando vocecirc executar o comando devoff()

Ateacute que isso aconteccedila todos os resultados de comandos graacuteficos continuaratildeo a

ser enviados para este arquivo Por isso se vocecirc criar dois graacuteficos o segundo substituiraacute o primeiro Ao executar o comando devoff() o arquivo seraacute gravado no diretoacuterio de trabalho

Se vocecirc quiser gravaacute-lo em outro lugar teraacute que especificar o caminho completo no

comando de criaccedilatildeo do arquivo no argumento filename

DICA

Para gravar uma sequecircncia de graacuteficos sem precisar dar vaacuterios comandos de abertura de

arquivos use no argumento do nome do arquivo a notaccedilatildeo nome[nuacutemero]dextensatildeo

onde [nuacutemero] normalmente satildeo os nuacutemeros 01 02 ou 03

png(meugrafico02dpng)

Com essa notaccedilatildeo os graacuteficos gerados seratildeo gravados com uma numeraccedilatildeo sequencial que tem [numero] algarismos Por exemplo [nuacutemero] = 01 indica numeraccedilatildeo sequencial de

um algarismo e vocecirc pode gravar ateacute nove graacuteficos (meugrafico1png a meugrafico9png) Se [nuacutemero] = 02 a numeraccedilatildeo sequencial tem dois algarismos portanto vocecirc pode gravar

ateacute 99 figuras (meugrafico01png a meugrafico99png)

Se vocecirc gera mais graacuteficos do que este valor maacuteximo os excedentes sobrepotildeem os

primeiros na sequecircncia Para evitar isso normalmente usamos [nuacutemero] = 03 que

permite gerar ateacute 999 arquivos o que eacute mais do que suficiente na maioria dos casos

O padratildeo das funccedilotildees de arquivos graacuteficos do tipo bitmap no R eacute gerar arquivos com o nome Rplotxxxextensatildeo com numeraccedilatildeo sequencial com 3 algarismos ou seja

bmp(filename = Rplot03dbmp)

jpeg(filename = Rplot03djpg)

png(filename = Rplot03dpng)

tiff(filename = Rplot03dbmp)

Para arquivos do tipo postscript e pdf o padratildeo eacute um pouco diferente consulte a ajuda

Dispositivos Graacuteficos

Para operar bem com arquivos graacuteficos no R eacute preciso entender o conceito de dispositivo

graacutefico (graphical device)

Um dispositivo (device) eacute qualquer unidade de entrada (I=input) ou saiacuteda (O=output) em um computador O teclado eacute um dispositivo de entrada (I) o monitor de viacutedeo de saiacuteda (O)

e o disco riacutegido de ambos (IO)

Em termos bem gerais o R usa o padratildeo de sistemas da famiacutelia UNIX e abre arquivos especiais (device files) para controlar cada dispositivo de saiacuteda graacutefica 1) Na praacutetica

podemos podemos pensar que o R cria uma ldquorotardquo para cada dispositivo e que vocecirc pode ter vaacuterias destas ldquorotasrdquo abertas ao mesmo tempo mas apenas uma ativa por vez

Abrindo e trocando de dispositivos

Quando executamos um comando com resultado graacutefico o padratildeo do R eacute enviar seu

resultado para um dispositivo de tela Se natildeo haacute nenhum aberto este dispositivo de tela seraacute aberto Por exemplo se iniciamos o R e executamos um comando plot

plot(riqueza~area)

uma janela se abriraacute para exibir a figura nele Este eacute um dispositivo graacutefico de tela normalmente do tipo X11 em sistemas UNIX e do tipo windows em sistemas Microsoft

Windows

Eacute possiacutevel tambeacutem abrir mais dispositivos de tela com o comando

gt x11()

que funciona nos dois tipos de sistemas operacionais Ao executar este comando uma nova janela graacutefica em branco se abriraacute na margem superior da qual vocecirc veraacute a indicaccedilatildeo de que agora este eacute o dispositivo ativo

O dispositivo ativo eacute que receberaacute o resultado de todos os comandos graacuteficos Assimvocecirc pode criar um novo graacutefico neste dispositivo ou alterar seus paracircmetros sem afetar o

graacutefico que estaacute na outra janela Quando vocecirc abre um novo dispositivo os paracircmetros satildeo os mantidos por padratildeo no R que vocecirc obteacutem com o comando par() Para mudaacute-los eacute

preciso usar o comando par como explicado nas seccedilotildees anteriores

Para trocar de dispositivo ativo use a funccedilatildeo devset(which=) cujo o argumento which eacute

o nuacutemero do dispositivo que vocecirc quer tornar ativo Por exemplo para voltar agrave janela do dispositivo 2 execute

gt devset(which=2)

Qual o Dispositivo Ativo

Enquanto temos apenas dispositivos de tela abertos eacute faacutecil descobrir qual eacute o ativo pois esta informaccedilatildeo eacute exibida na janela de cada um Mas quando abrimos um ou mais

dispositivos de arquivo como

gt png(figura02dpng)

gt pdf(figura02dpdf)

eacute faacutecil se perder Para que isso natildeo aconteccedila haacute as funccedilotildees devlist para listar todos os

dispositivos abertos e devcur que retorna o dispositivo ativo

gt devlist()

windows windows pngfigura02dpng

pdf

2 3 4

5

gt devcur()

pdf

5

gt devset(3)

windows

3

gt devcur()

windows

3

Vocecirc fecha um dispositivo com o comando devoff(which=n) em que n eacute o nuacutemero do dispositivo Se este argumento eacute omitido o valor padratildeo eacute o dispositivo ativo

gt devlist()

windows windows pngfigura02dpng

pdf

2 3 4

5

gt devcur()

pdf

5

gt devoff()

windows

2

gt devlist()

windows windows pngfigura02dpng

2 3 4

gt devcur()

windows

2

Quando o dispositivo ativo eacute fechado o seguinte na lista de dispositivos torna-se o ativo O uacuteltimo comando acima ilustra isto

Exerciacutecio 5

Crie diferentes graacuteficos em diferentes dispositivos Por fim salve-os em jpeg

Para saber mais como salvar graacuteficos em jpeg use a funccedilatildeo lsquorsquojpegrsquorsquo

Page 6: Tutoriais para criação e edição de gráficos no r

problema (i) tente sempre jogar os argumentos para o par() pois agraves vezes eles podem natildeo

funcionar se chamadas por dentro do plot() boxplot() etc mas iratildeo funcionar pelo

par() (ii) descubra o nome em inglecircs do paracircmetro que se quer mudar (label tick

legend) e jogue no Google ldquolegend boxplotrdquo Com certeza algueacutem jaacute teve este mesmo

problema e entrando dentro da lista do R (as diversas que existem) ou em aulas

disponibilizadas na internet com certeza se acha uma soluccedilatildeo

Exerciacutecio 3 ndash Mudando diferentes Graacuteficos

Com as variaacuteveis

riqueza lt- c(151822242530313437394145)

area lt- c(24561030345056607758085)

areacate lt- rep(c(pequeno grande) each=6)

Crie

plot(riqueza~area)

E agora

plot(riqueza~area bty=l tcl=03)

Perecebeu o que mudou

Agora tente

boxplot(riqueza~areacate bty=l tcl=03)

O que aconteceu

E agora

par(bty=l)

par(tcl=03)

boxplot(riqueza~areacate)

Viu soacute

Inserindo mais Informaccedilotildees em Graacuteficos

Existem diversas informaccedilotildees que se pode incluir em um graacutefico Pode-se colocar uma letra para mostrar que este eacute o painel ldquoardquo e ao lado eacute o painel rdquobrdquo pode-se colocar asteriscos para

mostrar quais relaccedilotildees satildeo significativas pode-se desenhar flechas outros pontos uma infinidade de coisas Tudo isto pode ser feito mas requer funccedilotildees comandos separados daqueles jaacute passados pelo par() e plot() boxplot() ou barplot() Dentre as vaacuterias funccedilotildees

existentes para se inserir informaccedilotildees em graacuteficos existem sete que satildeo bastante uacuteteis Use

Exerciacutecio 4

Usando as variaacuteveis

riqueza lt- c(151822242530313437394145)

area lt- c(24561030345056607758085)

abundancia lt- rev(riqueza)

Crie graacuteficos inserindo os paracircmetros abaixo

lines()

Para inserir linhas retas ou curvas natildeo-parameacutetricas (como lowess loess gam etc)

plot(riqueza~area)

lines(lowess(area riqueza))

abline()

Para inserir linhas de tendecircncia criadas a partir de um modelo linear Para isso eacute primeiro

necessaacuterio criar o modelo para depois criar a linha

model lt- lm(riqueza~area)

plot(riqueza~area)

abline(model)

Com a funccedilatildeo abline vocecirc pode tambeacutem inserir uma linha reta com intercepto e inclinaccedilatildeo

definidos por vocecirc com os dois primeiros argumentos

plot(riqueza~area)

abline(01)

A funccedilatildeo abline tambeacutem serve para acrescentar linhas verticais e horizontais com os argumentos v e h No coacutedigo abaixo traccedilamos estas linhas passando pelas meacutedias das duas

variaacuteveis do diagrama de dispersatildeo

plot(riqueza~area)

abline(v=mean(area))

abline(h=mean(riqueza))

Vocecirc sabia A reta da regressatildeo linear simples sempre passa pelo ponto que eacute a interseccedilatildeo destas duas linhas

text()

Para inserir texto dentro do graacutefico O texto pode ser uma letra um siacutembolo (muito usado para mostrar diferenciar classes no graacutefico) uma palavra ou ateacute mesmo uma frase

plot(riqueza~area)

text(2040texto)

mtext()

Este comando acrescenta texto nas margens do graacutefico ou da janela graacutefica Seu uso mais

freuquente eacute inserir legendas dos eixos Apesar de ser possiacutevel controlar as legendas por dentro das funccedilotildees plot boxplot e barplot o numero de paracircmetros que se pode mudar

eacute limitado Quando se deseja um controle mais fino dos paracircmetros como posiccedilatildeo alinhamento cor tamanho da fonte etc eacute necessaacuterio usar mtext()

plot(riqueza~area)

mtext(legenda no lado errado side=4 line=09 at=20cex=2

family=serif)

par(new=TRUE)

Para sobrepor um novo graacutefico a um graacutefico jaacute existente Em vez de criar graacuteficos lado-a-lado como em par(mfrow=c()) este argumento iraacute desenhar o novo graacutefico sobre o

graacutefico anterior

plot(riqueza~area)

par(new=TRUE)

plot(abundancia~area)

Mas reparem que aqui seraacute necessaacuterio alguns ajustes para suprimir eixos e legendas Em muitos casos quando se estaacute inserindo informaccedilotildees seraacute necessaacuterio suprimir paracircmetros

axis()

Para se inserir um eixo novo Esta funccedilatildeo eacute bastante usada nos casos em que se deseja ter dois graacutefico dentro de uma mesma figura (ver par(new=TRUE)) ou entatildeo se deseja

controlar muitos dos paracircmetros dos eixos (como em mtext())

plot(riqueza~area)

par(new=TRUE)

plot(abundancia~area axes=FALSE ann=FALSE)

axis(4)

Aqui no caso seraacute necessaacuterio usar axes=F para suprimir a criaccedilatildeo dos eixos do graacutefico

inicial de abundacircncia e ann=F para suprimir a legenda de abundacircncia do lado direito Para

inserir a legenda de abundacircncia do lado direito seraacute necessaacuterio usar mtext()

arrows() rect() polygon()

Para inserir flechas ou barras de erros use arrows() Jaacute para inserir retacircngulos poliacutegonos

e outros formatos use rect() e polygon()

plot(riqueza~area)

rect(20204040)

Salvando Graacuteficos

Apoacutes ter feitos todos os graacuteficos desejados eacute possiacutevel salvaacute-los em vaacuterios formatos como jpeg png postscript pdf Consulte a ajuda do pacote grDevices para a lista completa e

mais informaccedilotildees

Apoacutes chegar ao graacutefico final ajustando todos os paracircmetros desejados vocecirc pode usar a funccedilatildeo do R para criar o arquivo no formato desejado Haacute funccedilotildees para cada formato de arquivo todas elas com o primeiro argumento filename que especifica o nome do arquivo

a salvar Para criar um arquivo jpg por exemplo haacute a funccedilatildeo jpeg

jpeg(filename = Algumnomejpg)

Feito isso o R agora iraacute enviar todos os resultados de comandos graacuteficos para este arquivo que eacute fechado com a funccedilatildeodevoff()

Exemplo

jpeg(filename = Rplotaulajpg width = 480 height = 480

units = px pointsize = 12 quality = 100

bg = white res = NA)

par(mfrow=c(12))

par(mar=c(14482))

plot(riqueza~area)

boxplot(riqueza~areacate)

devoff()

Quatro Fatos Importantes sobre Arquivos de Figuras (e uma dica)

Seu arquivo de figura soacute teraacute os paracircmetros desejados se vocecirc executar todo o coacutedigo apoacutes abrir o arquivo da figura incluindo todos os comandos par()

Seu arquivo de figura soacute seraacute salvo quando vocecirc executar o comando devoff()

Ateacute que isso aconteccedila todos os resultados de comandos graacuteficos continuaratildeo a

ser enviados para este arquivo Por isso se vocecirc criar dois graacuteficos o segundo substituiraacute o primeiro Ao executar o comando devoff() o arquivo seraacute gravado no diretoacuterio de trabalho

Se vocecirc quiser gravaacute-lo em outro lugar teraacute que especificar o caminho completo no

comando de criaccedilatildeo do arquivo no argumento filename

DICA

Para gravar uma sequecircncia de graacuteficos sem precisar dar vaacuterios comandos de abertura de

arquivos use no argumento do nome do arquivo a notaccedilatildeo nome[nuacutemero]dextensatildeo

onde [nuacutemero] normalmente satildeo os nuacutemeros 01 02 ou 03

png(meugrafico02dpng)

Com essa notaccedilatildeo os graacuteficos gerados seratildeo gravados com uma numeraccedilatildeo sequencial que tem [numero] algarismos Por exemplo [nuacutemero] = 01 indica numeraccedilatildeo sequencial de

um algarismo e vocecirc pode gravar ateacute nove graacuteficos (meugrafico1png a meugrafico9png) Se [nuacutemero] = 02 a numeraccedilatildeo sequencial tem dois algarismos portanto vocecirc pode gravar

ateacute 99 figuras (meugrafico01png a meugrafico99png)

Se vocecirc gera mais graacuteficos do que este valor maacuteximo os excedentes sobrepotildeem os

primeiros na sequecircncia Para evitar isso normalmente usamos [nuacutemero] = 03 que

permite gerar ateacute 999 arquivos o que eacute mais do que suficiente na maioria dos casos

O padratildeo das funccedilotildees de arquivos graacuteficos do tipo bitmap no R eacute gerar arquivos com o nome Rplotxxxextensatildeo com numeraccedilatildeo sequencial com 3 algarismos ou seja

bmp(filename = Rplot03dbmp)

jpeg(filename = Rplot03djpg)

png(filename = Rplot03dpng)

tiff(filename = Rplot03dbmp)

Para arquivos do tipo postscript e pdf o padratildeo eacute um pouco diferente consulte a ajuda

Dispositivos Graacuteficos

Para operar bem com arquivos graacuteficos no R eacute preciso entender o conceito de dispositivo

graacutefico (graphical device)

Um dispositivo (device) eacute qualquer unidade de entrada (I=input) ou saiacuteda (O=output) em um computador O teclado eacute um dispositivo de entrada (I) o monitor de viacutedeo de saiacuteda (O)

e o disco riacutegido de ambos (IO)

Em termos bem gerais o R usa o padratildeo de sistemas da famiacutelia UNIX e abre arquivos especiais (device files) para controlar cada dispositivo de saiacuteda graacutefica 1) Na praacutetica

podemos podemos pensar que o R cria uma ldquorotardquo para cada dispositivo e que vocecirc pode ter vaacuterias destas ldquorotasrdquo abertas ao mesmo tempo mas apenas uma ativa por vez

Abrindo e trocando de dispositivos

Quando executamos um comando com resultado graacutefico o padratildeo do R eacute enviar seu

resultado para um dispositivo de tela Se natildeo haacute nenhum aberto este dispositivo de tela seraacute aberto Por exemplo se iniciamos o R e executamos um comando plot

plot(riqueza~area)

uma janela se abriraacute para exibir a figura nele Este eacute um dispositivo graacutefico de tela normalmente do tipo X11 em sistemas UNIX e do tipo windows em sistemas Microsoft

Windows

Eacute possiacutevel tambeacutem abrir mais dispositivos de tela com o comando

gt x11()

que funciona nos dois tipos de sistemas operacionais Ao executar este comando uma nova janela graacutefica em branco se abriraacute na margem superior da qual vocecirc veraacute a indicaccedilatildeo de que agora este eacute o dispositivo ativo

O dispositivo ativo eacute que receberaacute o resultado de todos os comandos graacuteficos Assimvocecirc pode criar um novo graacutefico neste dispositivo ou alterar seus paracircmetros sem afetar o

graacutefico que estaacute na outra janela Quando vocecirc abre um novo dispositivo os paracircmetros satildeo os mantidos por padratildeo no R que vocecirc obteacutem com o comando par() Para mudaacute-los eacute

preciso usar o comando par como explicado nas seccedilotildees anteriores

Para trocar de dispositivo ativo use a funccedilatildeo devset(which=) cujo o argumento which eacute

o nuacutemero do dispositivo que vocecirc quer tornar ativo Por exemplo para voltar agrave janela do dispositivo 2 execute

gt devset(which=2)

Qual o Dispositivo Ativo

Enquanto temos apenas dispositivos de tela abertos eacute faacutecil descobrir qual eacute o ativo pois esta informaccedilatildeo eacute exibida na janela de cada um Mas quando abrimos um ou mais

dispositivos de arquivo como

gt png(figura02dpng)

gt pdf(figura02dpdf)

eacute faacutecil se perder Para que isso natildeo aconteccedila haacute as funccedilotildees devlist para listar todos os

dispositivos abertos e devcur que retorna o dispositivo ativo

gt devlist()

windows windows pngfigura02dpng

pdf

2 3 4

5

gt devcur()

pdf

5

gt devset(3)

windows

3

gt devcur()

windows

3

Vocecirc fecha um dispositivo com o comando devoff(which=n) em que n eacute o nuacutemero do dispositivo Se este argumento eacute omitido o valor padratildeo eacute o dispositivo ativo

gt devlist()

windows windows pngfigura02dpng

pdf

2 3 4

5

gt devcur()

pdf

5

gt devoff()

windows

2

gt devlist()

windows windows pngfigura02dpng

2 3 4

gt devcur()

windows

2

Quando o dispositivo ativo eacute fechado o seguinte na lista de dispositivos torna-se o ativo O uacuteltimo comando acima ilustra isto

Exerciacutecio 5

Crie diferentes graacuteficos em diferentes dispositivos Por fim salve-os em jpeg

Para saber mais como salvar graacuteficos em jpeg use a funccedilatildeo lsquorsquojpegrsquorsquo

Page 7: Tutoriais para criação e edição de gráficos no r

Exerciacutecio 4

Usando as variaacuteveis

riqueza lt- c(151822242530313437394145)

area lt- c(24561030345056607758085)

abundancia lt- rev(riqueza)

Crie graacuteficos inserindo os paracircmetros abaixo

lines()

Para inserir linhas retas ou curvas natildeo-parameacutetricas (como lowess loess gam etc)

plot(riqueza~area)

lines(lowess(area riqueza))

abline()

Para inserir linhas de tendecircncia criadas a partir de um modelo linear Para isso eacute primeiro

necessaacuterio criar o modelo para depois criar a linha

model lt- lm(riqueza~area)

plot(riqueza~area)

abline(model)

Com a funccedilatildeo abline vocecirc pode tambeacutem inserir uma linha reta com intercepto e inclinaccedilatildeo

definidos por vocecirc com os dois primeiros argumentos

plot(riqueza~area)

abline(01)

A funccedilatildeo abline tambeacutem serve para acrescentar linhas verticais e horizontais com os argumentos v e h No coacutedigo abaixo traccedilamos estas linhas passando pelas meacutedias das duas

variaacuteveis do diagrama de dispersatildeo

plot(riqueza~area)

abline(v=mean(area))

abline(h=mean(riqueza))

Vocecirc sabia A reta da regressatildeo linear simples sempre passa pelo ponto que eacute a interseccedilatildeo destas duas linhas

text()

Para inserir texto dentro do graacutefico O texto pode ser uma letra um siacutembolo (muito usado para mostrar diferenciar classes no graacutefico) uma palavra ou ateacute mesmo uma frase

plot(riqueza~area)

text(2040texto)

mtext()

Este comando acrescenta texto nas margens do graacutefico ou da janela graacutefica Seu uso mais

freuquente eacute inserir legendas dos eixos Apesar de ser possiacutevel controlar as legendas por dentro das funccedilotildees plot boxplot e barplot o numero de paracircmetros que se pode mudar

eacute limitado Quando se deseja um controle mais fino dos paracircmetros como posiccedilatildeo alinhamento cor tamanho da fonte etc eacute necessaacuterio usar mtext()

plot(riqueza~area)

mtext(legenda no lado errado side=4 line=09 at=20cex=2

family=serif)

par(new=TRUE)

Para sobrepor um novo graacutefico a um graacutefico jaacute existente Em vez de criar graacuteficos lado-a-lado como em par(mfrow=c()) este argumento iraacute desenhar o novo graacutefico sobre o

graacutefico anterior

plot(riqueza~area)

par(new=TRUE)

plot(abundancia~area)

Mas reparem que aqui seraacute necessaacuterio alguns ajustes para suprimir eixos e legendas Em muitos casos quando se estaacute inserindo informaccedilotildees seraacute necessaacuterio suprimir paracircmetros

axis()

Para se inserir um eixo novo Esta funccedilatildeo eacute bastante usada nos casos em que se deseja ter dois graacutefico dentro de uma mesma figura (ver par(new=TRUE)) ou entatildeo se deseja

controlar muitos dos paracircmetros dos eixos (como em mtext())

plot(riqueza~area)

par(new=TRUE)

plot(abundancia~area axes=FALSE ann=FALSE)

axis(4)

Aqui no caso seraacute necessaacuterio usar axes=F para suprimir a criaccedilatildeo dos eixos do graacutefico

inicial de abundacircncia e ann=F para suprimir a legenda de abundacircncia do lado direito Para

inserir a legenda de abundacircncia do lado direito seraacute necessaacuterio usar mtext()

arrows() rect() polygon()

Para inserir flechas ou barras de erros use arrows() Jaacute para inserir retacircngulos poliacutegonos

e outros formatos use rect() e polygon()

plot(riqueza~area)

rect(20204040)

Salvando Graacuteficos

Apoacutes ter feitos todos os graacuteficos desejados eacute possiacutevel salvaacute-los em vaacuterios formatos como jpeg png postscript pdf Consulte a ajuda do pacote grDevices para a lista completa e

mais informaccedilotildees

Apoacutes chegar ao graacutefico final ajustando todos os paracircmetros desejados vocecirc pode usar a funccedilatildeo do R para criar o arquivo no formato desejado Haacute funccedilotildees para cada formato de arquivo todas elas com o primeiro argumento filename que especifica o nome do arquivo

a salvar Para criar um arquivo jpg por exemplo haacute a funccedilatildeo jpeg

jpeg(filename = Algumnomejpg)

Feito isso o R agora iraacute enviar todos os resultados de comandos graacuteficos para este arquivo que eacute fechado com a funccedilatildeodevoff()

Exemplo

jpeg(filename = Rplotaulajpg width = 480 height = 480

units = px pointsize = 12 quality = 100

bg = white res = NA)

par(mfrow=c(12))

par(mar=c(14482))

plot(riqueza~area)

boxplot(riqueza~areacate)

devoff()

Quatro Fatos Importantes sobre Arquivos de Figuras (e uma dica)

Seu arquivo de figura soacute teraacute os paracircmetros desejados se vocecirc executar todo o coacutedigo apoacutes abrir o arquivo da figura incluindo todos os comandos par()

Seu arquivo de figura soacute seraacute salvo quando vocecirc executar o comando devoff()

Ateacute que isso aconteccedila todos os resultados de comandos graacuteficos continuaratildeo a

ser enviados para este arquivo Por isso se vocecirc criar dois graacuteficos o segundo substituiraacute o primeiro Ao executar o comando devoff() o arquivo seraacute gravado no diretoacuterio de trabalho

Se vocecirc quiser gravaacute-lo em outro lugar teraacute que especificar o caminho completo no

comando de criaccedilatildeo do arquivo no argumento filename

DICA

Para gravar uma sequecircncia de graacuteficos sem precisar dar vaacuterios comandos de abertura de

arquivos use no argumento do nome do arquivo a notaccedilatildeo nome[nuacutemero]dextensatildeo

onde [nuacutemero] normalmente satildeo os nuacutemeros 01 02 ou 03

png(meugrafico02dpng)

Com essa notaccedilatildeo os graacuteficos gerados seratildeo gravados com uma numeraccedilatildeo sequencial que tem [numero] algarismos Por exemplo [nuacutemero] = 01 indica numeraccedilatildeo sequencial de

um algarismo e vocecirc pode gravar ateacute nove graacuteficos (meugrafico1png a meugrafico9png) Se [nuacutemero] = 02 a numeraccedilatildeo sequencial tem dois algarismos portanto vocecirc pode gravar

ateacute 99 figuras (meugrafico01png a meugrafico99png)

Se vocecirc gera mais graacuteficos do que este valor maacuteximo os excedentes sobrepotildeem os

primeiros na sequecircncia Para evitar isso normalmente usamos [nuacutemero] = 03 que

permite gerar ateacute 999 arquivos o que eacute mais do que suficiente na maioria dos casos

O padratildeo das funccedilotildees de arquivos graacuteficos do tipo bitmap no R eacute gerar arquivos com o nome Rplotxxxextensatildeo com numeraccedilatildeo sequencial com 3 algarismos ou seja

bmp(filename = Rplot03dbmp)

jpeg(filename = Rplot03djpg)

png(filename = Rplot03dpng)

tiff(filename = Rplot03dbmp)

Para arquivos do tipo postscript e pdf o padratildeo eacute um pouco diferente consulte a ajuda

Dispositivos Graacuteficos

Para operar bem com arquivos graacuteficos no R eacute preciso entender o conceito de dispositivo

graacutefico (graphical device)

Um dispositivo (device) eacute qualquer unidade de entrada (I=input) ou saiacuteda (O=output) em um computador O teclado eacute um dispositivo de entrada (I) o monitor de viacutedeo de saiacuteda (O)

e o disco riacutegido de ambos (IO)

Em termos bem gerais o R usa o padratildeo de sistemas da famiacutelia UNIX e abre arquivos especiais (device files) para controlar cada dispositivo de saiacuteda graacutefica 1) Na praacutetica

podemos podemos pensar que o R cria uma ldquorotardquo para cada dispositivo e que vocecirc pode ter vaacuterias destas ldquorotasrdquo abertas ao mesmo tempo mas apenas uma ativa por vez

Abrindo e trocando de dispositivos

Quando executamos um comando com resultado graacutefico o padratildeo do R eacute enviar seu

resultado para um dispositivo de tela Se natildeo haacute nenhum aberto este dispositivo de tela seraacute aberto Por exemplo se iniciamos o R e executamos um comando plot

plot(riqueza~area)

uma janela se abriraacute para exibir a figura nele Este eacute um dispositivo graacutefico de tela normalmente do tipo X11 em sistemas UNIX e do tipo windows em sistemas Microsoft

Windows

Eacute possiacutevel tambeacutem abrir mais dispositivos de tela com o comando

gt x11()

que funciona nos dois tipos de sistemas operacionais Ao executar este comando uma nova janela graacutefica em branco se abriraacute na margem superior da qual vocecirc veraacute a indicaccedilatildeo de que agora este eacute o dispositivo ativo

O dispositivo ativo eacute que receberaacute o resultado de todos os comandos graacuteficos Assimvocecirc pode criar um novo graacutefico neste dispositivo ou alterar seus paracircmetros sem afetar o

graacutefico que estaacute na outra janela Quando vocecirc abre um novo dispositivo os paracircmetros satildeo os mantidos por padratildeo no R que vocecirc obteacutem com o comando par() Para mudaacute-los eacute

preciso usar o comando par como explicado nas seccedilotildees anteriores

Para trocar de dispositivo ativo use a funccedilatildeo devset(which=) cujo o argumento which eacute

o nuacutemero do dispositivo que vocecirc quer tornar ativo Por exemplo para voltar agrave janela do dispositivo 2 execute

gt devset(which=2)

Qual o Dispositivo Ativo

Enquanto temos apenas dispositivos de tela abertos eacute faacutecil descobrir qual eacute o ativo pois esta informaccedilatildeo eacute exibida na janela de cada um Mas quando abrimos um ou mais

dispositivos de arquivo como

gt png(figura02dpng)

gt pdf(figura02dpdf)

eacute faacutecil se perder Para que isso natildeo aconteccedila haacute as funccedilotildees devlist para listar todos os

dispositivos abertos e devcur que retorna o dispositivo ativo

gt devlist()

windows windows pngfigura02dpng

pdf

2 3 4

5

gt devcur()

pdf

5

gt devset(3)

windows

3

gt devcur()

windows

3

Vocecirc fecha um dispositivo com o comando devoff(which=n) em que n eacute o nuacutemero do dispositivo Se este argumento eacute omitido o valor padratildeo eacute o dispositivo ativo

gt devlist()

windows windows pngfigura02dpng

pdf

2 3 4

5

gt devcur()

pdf

5

gt devoff()

windows

2

gt devlist()

windows windows pngfigura02dpng

2 3 4

gt devcur()

windows

2

Quando o dispositivo ativo eacute fechado o seguinte na lista de dispositivos torna-se o ativo O uacuteltimo comando acima ilustra isto

Exerciacutecio 5

Crie diferentes graacuteficos em diferentes dispositivos Por fim salve-os em jpeg

Para saber mais como salvar graacuteficos em jpeg use a funccedilatildeo lsquorsquojpegrsquorsquo

Page 8: Tutoriais para criação e edição de gráficos no r

text(2040texto)

mtext()

Este comando acrescenta texto nas margens do graacutefico ou da janela graacutefica Seu uso mais

freuquente eacute inserir legendas dos eixos Apesar de ser possiacutevel controlar as legendas por dentro das funccedilotildees plot boxplot e barplot o numero de paracircmetros que se pode mudar

eacute limitado Quando se deseja um controle mais fino dos paracircmetros como posiccedilatildeo alinhamento cor tamanho da fonte etc eacute necessaacuterio usar mtext()

plot(riqueza~area)

mtext(legenda no lado errado side=4 line=09 at=20cex=2

family=serif)

par(new=TRUE)

Para sobrepor um novo graacutefico a um graacutefico jaacute existente Em vez de criar graacuteficos lado-a-lado como em par(mfrow=c()) este argumento iraacute desenhar o novo graacutefico sobre o

graacutefico anterior

plot(riqueza~area)

par(new=TRUE)

plot(abundancia~area)

Mas reparem que aqui seraacute necessaacuterio alguns ajustes para suprimir eixos e legendas Em muitos casos quando se estaacute inserindo informaccedilotildees seraacute necessaacuterio suprimir paracircmetros

axis()

Para se inserir um eixo novo Esta funccedilatildeo eacute bastante usada nos casos em que se deseja ter dois graacutefico dentro de uma mesma figura (ver par(new=TRUE)) ou entatildeo se deseja

controlar muitos dos paracircmetros dos eixos (como em mtext())

plot(riqueza~area)

par(new=TRUE)

plot(abundancia~area axes=FALSE ann=FALSE)

axis(4)

Aqui no caso seraacute necessaacuterio usar axes=F para suprimir a criaccedilatildeo dos eixos do graacutefico

inicial de abundacircncia e ann=F para suprimir a legenda de abundacircncia do lado direito Para

inserir a legenda de abundacircncia do lado direito seraacute necessaacuterio usar mtext()

arrows() rect() polygon()

Para inserir flechas ou barras de erros use arrows() Jaacute para inserir retacircngulos poliacutegonos

e outros formatos use rect() e polygon()

plot(riqueza~area)

rect(20204040)

Salvando Graacuteficos

Apoacutes ter feitos todos os graacuteficos desejados eacute possiacutevel salvaacute-los em vaacuterios formatos como jpeg png postscript pdf Consulte a ajuda do pacote grDevices para a lista completa e

mais informaccedilotildees

Apoacutes chegar ao graacutefico final ajustando todos os paracircmetros desejados vocecirc pode usar a funccedilatildeo do R para criar o arquivo no formato desejado Haacute funccedilotildees para cada formato de arquivo todas elas com o primeiro argumento filename que especifica o nome do arquivo

a salvar Para criar um arquivo jpg por exemplo haacute a funccedilatildeo jpeg

jpeg(filename = Algumnomejpg)

Feito isso o R agora iraacute enviar todos os resultados de comandos graacuteficos para este arquivo que eacute fechado com a funccedilatildeodevoff()

Exemplo

jpeg(filename = Rplotaulajpg width = 480 height = 480

units = px pointsize = 12 quality = 100

bg = white res = NA)

par(mfrow=c(12))

par(mar=c(14482))

plot(riqueza~area)

boxplot(riqueza~areacate)

devoff()

Quatro Fatos Importantes sobre Arquivos de Figuras (e uma dica)

Seu arquivo de figura soacute teraacute os paracircmetros desejados se vocecirc executar todo o coacutedigo apoacutes abrir o arquivo da figura incluindo todos os comandos par()

Seu arquivo de figura soacute seraacute salvo quando vocecirc executar o comando devoff()

Ateacute que isso aconteccedila todos os resultados de comandos graacuteficos continuaratildeo a

ser enviados para este arquivo Por isso se vocecirc criar dois graacuteficos o segundo substituiraacute o primeiro Ao executar o comando devoff() o arquivo seraacute gravado no diretoacuterio de trabalho

Se vocecirc quiser gravaacute-lo em outro lugar teraacute que especificar o caminho completo no

comando de criaccedilatildeo do arquivo no argumento filename

DICA

Para gravar uma sequecircncia de graacuteficos sem precisar dar vaacuterios comandos de abertura de

arquivos use no argumento do nome do arquivo a notaccedilatildeo nome[nuacutemero]dextensatildeo

onde [nuacutemero] normalmente satildeo os nuacutemeros 01 02 ou 03

png(meugrafico02dpng)

Com essa notaccedilatildeo os graacuteficos gerados seratildeo gravados com uma numeraccedilatildeo sequencial que tem [numero] algarismos Por exemplo [nuacutemero] = 01 indica numeraccedilatildeo sequencial de

um algarismo e vocecirc pode gravar ateacute nove graacuteficos (meugrafico1png a meugrafico9png) Se [nuacutemero] = 02 a numeraccedilatildeo sequencial tem dois algarismos portanto vocecirc pode gravar

ateacute 99 figuras (meugrafico01png a meugrafico99png)

Se vocecirc gera mais graacuteficos do que este valor maacuteximo os excedentes sobrepotildeem os

primeiros na sequecircncia Para evitar isso normalmente usamos [nuacutemero] = 03 que

permite gerar ateacute 999 arquivos o que eacute mais do que suficiente na maioria dos casos

O padratildeo das funccedilotildees de arquivos graacuteficos do tipo bitmap no R eacute gerar arquivos com o nome Rplotxxxextensatildeo com numeraccedilatildeo sequencial com 3 algarismos ou seja

bmp(filename = Rplot03dbmp)

jpeg(filename = Rplot03djpg)

png(filename = Rplot03dpng)

tiff(filename = Rplot03dbmp)

Para arquivos do tipo postscript e pdf o padratildeo eacute um pouco diferente consulte a ajuda

Dispositivos Graacuteficos

Para operar bem com arquivos graacuteficos no R eacute preciso entender o conceito de dispositivo

graacutefico (graphical device)

Um dispositivo (device) eacute qualquer unidade de entrada (I=input) ou saiacuteda (O=output) em um computador O teclado eacute um dispositivo de entrada (I) o monitor de viacutedeo de saiacuteda (O)

e o disco riacutegido de ambos (IO)

Em termos bem gerais o R usa o padratildeo de sistemas da famiacutelia UNIX e abre arquivos especiais (device files) para controlar cada dispositivo de saiacuteda graacutefica 1) Na praacutetica

podemos podemos pensar que o R cria uma ldquorotardquo para cada dispositivo e que vocecirc pode ter vaacuterias destas ldquorotasrdquo abertas ao mesmo tempo mas apenas uma ativa por vez

Abrindo e trocando de dispositivos

Quando executamos um comando com resultado graacutefico o padratildeo do R eacute enviar seu

resultado para um dispositivo de tela Se natildeo haacute nenhum aberto este dispositivo de tela seraacute aberto Por exemplo se iniciamos o R e executamos um comando plot

plot(riqueza~area)

uma janela se abriraacute para exibir a figura nele Este eacute um dispositivo graacutefico de tela normalmente do tipo X11 em sistemas UNIX e do tipo windows em sistemas Microsoft

Windows

Eacute possiacutevel tambeacutem abrir mais dispositivos de tela com o comando

gt x11()

que funciona nos dois tipos de sistemas operacionais Ao executar este comando uma nova janela graacutefica em branco se abriraacute na margem superior da qual vocecirc veraacute a indicaccedilatildeo de que agora este eacute o dispositivo ativo

O dispositivo ativo eacute que receberaacute o resultado de todos os comandos graacuteficos Assimvocecirc pode criar um novo graacutefico neste dispositivo ou alterar seus paracircmetros sem afetar o

graacutefico que estaacute na outra janela Quando vocecirc abre um novo dispositivo os paracircmetros satildeo os mantidos por padratildeo no R que vocecirc obteacutem com o comando par() Para mudaacute-los eacute

preciso usar o comando par como explicado nas seccedilotildees anteriores

Para trocar de dispositivo ativo use a funccedilatildeo devset(which=) cujo o argumento which eacute

o nuacutemero do dispositivo que vocecirc quer tornar ativo Por exemplo para voltar agrave janela do dispositivo 2 execute

gt devset(which=2)

Qual o Dispositivo Ativo

Enquanto temos apenas dispositivos de tela abertos eacute faacutecil descobrir qual eacute o ativo pois esta informaccedilatildeo eacute exibida na janela de cada um Mas quando abrimos um ou mais

dispositivos de arquivo como

gt png(figura02dpng)

gt pdf(figura02dpdf)

eacute faacutecil se perder Para que isso natildeo aconteccedila haacute as funccedilotildees devlist para listar todos os

dispositivos abertos e devcur que retorna o dispositivo ativo

gt devlist()

windows windows pngfigura02dpng

pdf

2 3 4

5

gt devcur()

pdf

5

gt devset(3)

windows

3

gt devcur()

windows

3

Vocecirc fecha um dispositivo com o comando devoff(which=n) em que n eacute o nuacutemero do dispositivo Se este argumento eacute omitido o valor padratildeo eacute o dispositivo ativo

gt devlist()

windows windows pngfigura02dpng

pdf

2 3 4

5

gt devcur()

pdf

5

gt devoff()

windows

2

gt devlist()

windows windows pngfigura02dpng

2 3 4

gt devcur()

windows

2

Quando o dispositivo ativo eacute fechado o seguinte na lista de dispositivos torna-se o ativo O uacuteltimo comando acima ilustra isto

Exerciacutecio 5

Crie diferentes graacuteficos em diferentes dispositivos Por fim salve-os em jpeg

Para saber mais como salvar graacuteficos em jpeg use a funccedilatildeo lsquorsquojpegrsquorsquo

Page 9: Tutoriais para criação e edição de gráficos no r

Salvando Graacuteficos

Apoacutes ter feitos todos os graacuteficos desejados eacute possiacutevel salvaacute-los em vaacuterios formatos como jpeg png postscript pdf Consulte a ajuda do pacote grDevices para a lista completa e

mais informaccedilotildees

Apoacutes chegar ao graacutefico final ajustando todos os paracircmetros desejados vocecirc pode usar a funccedilatildeo do R para criar o arquivo no formato desejado Haacute funccedilotildees para cada formato de arquivo todas elas com o primeiro argumento filename que especifica o nome do arquivo

a salvar Para criar um arquivo jpg por exemplo haacute a funccedilatildeo jpeg

jpeg(filename = Algumnomejpg)

Feito isso o R agora iraacute enviar todos os resultados de comandos graacuteficos para este arquivo que eacute fechado com a funccedilatildeodevoff()

Exemplo

jpeg(filename = Rplotaulajpg width = 480 height = 480

units = px pointsize = 12 quality = 100

bg = white res = NA)

par(mfrow=c(12))

par(mar=c(14482))

plot(riqueza~area)

boxplot(riqueza~areacate)

devoff()

Quatro Fatos Importantes sobre Arquivos de Figuras (e uma dica)

Seu arquivo de figura soacute teraacute os paracircmetros desejados se vocecirc executar todo o coacutedigo apoacutes abrir o arquivo da figura incluindo todos os comandos par()

Seu arquivo de figura soacute seraacute salvo quando vocecirc executar o comando devoff()

Ateacute que isso aconteccedila todos os resultados de comandos graacuteficos continuaratildeo a

ser enviados para este arquivo Por isso se vocecirc criar dois graacuteficos o segundo substituiraacute o primeiro Ao executar o comando devoff() o arquivo seraacute gravado no diretoacuterio de trabalho

Se vocecirc quiser gravaacute-lo em outro lugar teraacute que especificar o caminho completo no

comando de criaccedilatildeo do arquivo no argumento filename

DICA

Para gravar uma sequecircncia de graacuteficos sem precisar dar vaacuterios comandos de abertura de

arquivos use no argumento do nome do arquivo a notaccedilatildeo nome[nuacutemero]dextensatildeo

onde [nuacutemero] normalmente satildeo os nuacutemeros 01 02 ou 03

png(meugrafico02dpng)

Com essa notaccedilatildeo os graacuteficos gerados seratildeo gravados com uma numeraccedilatildeo sequencial que tem [numero] algarismos Por exemplo [nuacutemero] = 01 indica numeraccedilatildeo sequencial de

um algarismo e vocecirc pode gravar ateacute nove graacuteficos (meugrafico1png a meugrafico9png) Se [nuacutemero] = 02 a numeraccedilatildeo sequencial tem dois algarismos portanto vocecirc pode gravar

ateacute 99 figuras (meugrafico01png a meugrafico99png)

Se vocecirc gera mais graacuteficos do que este valor maacuteximo os excedentes sobrepotildeem os

primeiros na sequecircncia Para evitar isso normalmente usamos [nuacutemero] = 03 que

permite gerar ateacute 999 arquivos o que eacute mais do que suficiente na maioria dos casos

O padratildeo das funccedilotildees de arquivos graacuteficos do tipo bitmap no R eacute gerar arquivos com o nome Rplotxxxextensatildeo com numeraccedilatildeo sequencial com 3 algarismos ou seja

bmp(filename = Rplot03dbmp)

jpeg(filename = Rplot03djpg)

png(filename = Rplot03dpng)

tiff(filename = Rplot03dbmp)

Para arquivos do tipo postscript e pdf o padratildeo eacute um pouco diferente consulte a ajuda

Dispositivos Graacuteficos

Para operar bem com arquivos graacuteficos no R eacute preciso entender o conceito de dispositivo

graacutefico (graphical device)

Um dispositivo (device) eacute qualquer unidade de entrada (I=input) ou saiacuteda (O=output) em um computador O teclado eacute um dispositivo de entrada (I) o monitor de viacutedeo de saiacuteda (O)

e o disco riacutegido de ambos (IO)

Em termos bem gerais o R usa o padratildeo de sistemas da famiacutelia UNIX e abre arquivos especiais (device files) para controlar cada dispositivo de saiacuteda graacutefica 1) Na praacutetica

podemos podemos pensar que o R cria uma ldquorotardquo para cada dispositivo e que vocecirc pode ter vaacuterias destas ldquorotasrdquo abertas ao mesmo tempo mas apenas uma ativa por vez

Abrindo e trocando de dispositivos

Quando executamos um comando com resultado graacutefico o padratildeo do R eacute enviar seu

resultado para um dispositivo de tela Se natildeo haacute nenhum aberto este dispositivo de tela seraacute aberto Por exemplo se iniciamos o R e executamos um comando plot

plot(riqueza~area)

uma janela se abriraacute para exibir a figura nele Este eacute um dispositivo graacutefico de tela normalmente do tipo X11 em sistemas UNIX e do tipo windows em sistemas Microsoft

Windows

Eacute possiacutevel tambeacutem abrir mais dispositivos de tela com o comando

gt x11()

que funciona nos dois tipos de sistemas operacionais Ao executar este comando uma nova janela graacutefica em branco se abriraacute na margem superior da qual vocecirc veraacute a indicaccedilatildeo de que agora este eacute o dispositivo ativo

O dispositivo ativo eacute que receberaacute o resultado de todos os comandos graacuteficos Assimvocecirc pode criar um novo graacutefico neste dispositivo ou alterar seus paracircmetros sem afetar o

graacutefico que estaacute na outra janela Quando vocecirc abre um novo dispositivo os paracircmetros satildeo os mantidos por padratildeo no R que vocecirc obteacutem com o comando par() Para mudaacute-los eacute

preciso usar o comando par como explicado nas seccedilotildees anteriores

Para trocar de dispositivo ativo use a funccedilatildeo devset(which=) cujo o argumento which eacute

o nuacutemero do dispositivo que vocecirc quer tornar ativo Por exemplo para voltar agrave janela do dispositivo 2 execute

gt devset(which=2)

Qual o Dispositivo Ativo

Enquanto temos apenas dispositivos de tela abertos eacute faacutecil descobrir qual eacute o ativo pois esta informaccedilatildeo eacute exibida na janela de cada um Mas quando abrimos um ou mais

dispositivos de arquivo como

gt png(figura02dpng)

gt pdf(figura02dpdf)

eacute faacutecil se perder Para que isso natildeo aconteccedila haacute as funccedilotildees devlist para listar todos os

dispositivos abertos e devcur que retorna o dispositivo ativo

gt devlist()

windows windows pngfigura02dpng

pdf

2 3 4

5

gt devcur()

pdf

5

gt devset(3)

windows

3

gt devcur()

windows

3

Vocecirc fecha um dispositivo com o comando devoff(which=n) em que n eacute o nuacutemero do dispositivo Se este argumento eacute omitido o valor padratildeo eacute o dispositivo ativo

gt devlist()

windows windows pngfigura02dpng

pdf

2 3 4

5

gt devcur()

pdf

5

gt devoff()

windows

2

gt devlist()

windows windows pngfigura02dpng

2 3 4

gt devcur()

windows

2

Quando o dispositivo ativo eacute fechado o seguinte na lista de dispositivos torna-se o ativo O uacuteltimo comando acima ilustra isto

Exerciacutecio 5

Crie diferentes graacuteficos em diferentes dispositivos Por fim salve-os em jpeg

Para saber mais como salvar graacuteficos em jpeg use a funccedilatildeo lsquorsquojpegrsquorsquo

Page 10: Tutoriais para criação e edição de gráficos no r

Com essa notaccedilatildeo os graacuteficos gerados seratildeo gravados com uma numeraccedilatildeo sequencial que tem [numero] algarismos Por exemplo [nuacutemero] = 01 indica numeraccedilatildeo sequencial de

um algarismo e vocecirc pode gravar ateacute nove graacuteficos (meugrafico1png a meugrafico9png) Se [nuacutemero] = 02 a numeraccedilatildeo sequencial tem dois algarismos portanto vocecirc pode gravar

ateacute 99 figuras (meugrafico01png a meugrafico99png)

Se vocecirc gera mais graacuteficos do que este valor maacuteximo os excedentes sobrepotildeem os

primeiros na sequecircncia Para evitar isso normalmente usamos [nuacutemero] = 03 que

permite gerar ateacute 999 arquivos o que eacute mais do que suficiente na maioria dos casos

O padratildeo das funccedilotildees de arquivos graacuteficos do tipo bitmap no R eacute gerar arquivos com o nome Rplotxxxextensatildeo com numeraccedilatildeo sequencial com 3 algarismos ou seja

bmp(filename = Rplot03dbmp)

jpeg(filename = Rplot03djpg)

png(filename = Rplot03dpng)

tiff(filename = Rplot03dbmp)

Para arquivos do tipo postscript e pdf o padratildeo eacute um pouco diferente consulte a ajuda

Dispositivos Graacuteficos

Para operar bem com arquivos graacuteficos no R eacute preciso entender o conceito de dispositivo

graacutefico (graphical device)

Um dispositivo (device) eacute qualquer unidade de entrada (I=input) ou saiacuteda (O=output) em um computador O teclado eacute um dispositivo de entrada (I) o monitor de viacutedeo de saiacuteda (O)

e o disco riacutegido de ambos (IO)

Em termos bem gerais o R usa o padratildeo de sistemas da famiacutelia UNIX e abre arquivos especiais (device files) para controlar cada dispositivo de saiacuteda graacutefica 1) Na praacutetica

podemos podemos pensar que o R cria uma ldquorotardquo para cada dispositivo e que vocecirc pode ter vaacuterias destas ldquorotasrdquo abertas ao mesmo tempo mas apenas uma ativa por vez

Abrindo e trocando de dispositivos

Quando executamos um comando com resultado graacutefico o padratildeo do R eacute enviar seu

resultado para um dispositivo de tela Se natildeo haacute nenhum aberto este dispositivo de tela seraacute aberto Por exemplo se iniciamos o R e executamos um comando plot

plot(riqueza~area)

uma janela se abriraacute para exibir a figura nele Este eacute um dispositivo graacutefico de tela normalmente do tipo X11 em sistemas UNIX e do tipo windows em sistemas Microsoft

Windows

Eacute possiacutevel tambeacutem abrir mais dispositivos de tela com o comando

gt x11()

que funciona nos dois tipos de sistemas operacionais Ao executar este comando uma nova janela graacutefica em branco se abriraacute na margem superior da qual vocecirc veraacute a indicaccedilatildeo de que agora este eacute o dispositivo ativo

O dispositivo ativo eacute que receberaacute o resultado de todos os comandos graacuteficos Assimvocecirc pode criar um novo graacutefico neste dispositivo ou alterar seus paracircmetros sem afetar o

graacutefico que estaacute na outra janela Quando vocecirc abre um novo dispositivo os paracircmetros satildeo os mantidos por padratildeo no R que vocecirc obteacutem com o comando par() Para mudaacute-los eacute

preciso usar o comando par como explicado nas seccedilotildees anteriores

Para trocar de dispositivo ativo use a funccedilatildeo devset(which=) cujo o argumento which eacute

o nuacutemero do dispositivo que vocecirc quer tornar ativo Por exemplo para voltar agrave janela do dispositivo 2 execute

gt devset(which=2)

Qual o Dispositivo Ativo

Enquanto temos apenas dispositivos de tela abertos eacute faacutecil descobrir qual eacute o ativo pois esta informaccedilatildeo eacute exibida na janela de cada um Mas quando abrimos um ou mais

dispositivos de arquivo como

gt png(figura02dpng)

gt pdf(figura02dpdf)

eacute faacutecil se perder Para que isso natildeo aconteccedila haacute as funccedilotildees devlist para listar todos os

dispositivos abertos e devcur que retorna o dispositivo ativo

gt devlist()

windows windows pngfigura02dpng

pdf

2 3 4

5

gt devcur()

pdf

5

gt devset(3)

windows

3

gt devcur()

windows

3

Vocecirc fecha um dispositivo com o comando devoff(which=n) em que n eacute o nuacutemero do dispositivo Se este argumento eacute omitido o valor padratildeo eacute o dispositivo ativo

gt devlist()

windows windows pngfigura02dpng

pdf

2 3 4

5

gt devcur()

pdf

5

gt devoff()

windows

2

gt devlist()

windows windows pngfigura02dpng

2 3 4

gt devcur()

windows

2

Quando o dispositivo ativo eacute fechado o seguinte na lista de dispositivos torna-se o ativo O uacuteltimo comando acima ilustra isto

Exerciacutecio 5

Crie diferentes graacuteficos em diferentes dispositivos Por fim salve-os em jpeg

Para saber mais como salvar graacuteficos em jpeg use a funccedilatildeo lsquorsquojpegrsquorsquo

Page 11: Tutoriais para criação e edição de gráficos no r

gt x11()

que funciona nos dois tipos de sistemas operacionais Ao executar este comando uma nova janela graacutefica em branco se abriraacute na margem superior da qual vocecirc veraacute a indicaccedilatildeo de que agora este eacute o dispositivo ativo

O dispositivo ativo eacute que receberaacute o resultado de todos os comandos graacuteficos Assimvocecirc pode criar um novo graacutefico neste dispositivo ou alterar seus paracircmetros sem afetar o

graacutefico que estaacute na outra janela Quando vocecirc abre um novo dispositivo os paracircmetros satildeo os mantidos por padratildeo no R que vocecirc obteacutem com o comando par() Para mudaacute-los eacute

preciso usar o comando par como explicado nas seccedilotildees anteriores

Para trocar de dispositivo ativo use a funccedilatildeo devset(which=) cujo o argumento which eacute

o nuacutemero do dispositivo que vocecirc quer tornar ativo Por exemplo para voltar agrave janela do dispositivo 2 execute

gt devset(which=2)

Qual o Dispositivo Ativo

Enquanto temos apenas dispositivos de tela abertos eacute faacutecil descobrir qual eacute o ativo pois esta informaccedilatildeo eacute exibida na janela de cada um Mas quando abrimos um ou mais

dispositivos de arquivo como

gt png(figura02dpng)

gt pdf(figura02dpdf)

eacute faacutecil se perder Para que isso natildeo aconteccedila haacute as funccedilotildees devlist para listar todos os

dispositivos abertos e devcur que retorna o dispositivo ativo

gt devlist()

windows windows pngfigura02dpng

pdf

2 3 4

5

gt devcur()

pdf

5

gt devset(3)

windows

3

gt devcur()

windows

3

Vocecirc fecha um dispositivo com o comando devoff(which=n) em que n eacute o nuacutemero do dispositivo Se este argumento eacute omitido o valor padratildeo eacute o dispositivo ativo

gt devlist()

windows windows pngfigura02dpng

pdf

2 3 4

5

gt devcur()

pdf

5

gt devoff()

windows

2

gt devlist()

windows windows pngfigura02dpng

2 3 4

gt devcur()

windows

2

Quando o dispositivo ativo eacute fechado o seguinte na lista de dispositivos torna-se o ativo O uacuteltimo comando acima ilustra isto

Exerciacutecio 5

Crie diferentes graacuteficos em diferentes dispositivos Por fim salve-os em jpeg

Para saber mais como salvar graacuteficos em jpeg use a funccedilatildeo lsquorsquojpegrsquorsquo

Page 12: Tutoriais para criação e edição de gráficos no r

windows windows pngfigura02dpng

pdf

2 3 4

5

gt devcur()

pdf

5

gt devset(3)

windows

3

gt devcur()

windows

3

Vocecirc fecha um dispositivo com o comando devoff(which=n) em que n eacute o nuacutemero do dispositivo Se este argumento eacute omitido o valor padratildeo eacute o dispositivo ativo

gt devlist()

windows windows pngfigura02dpng

pdf

2 3 4

5

gt devcur()

pdf

5

gt devoff()

windows

2

gt devlist()

windows windows pngfigura02dpng

2 3 4

gt devcur()

windows

2

Quando o dispositivo ativo eacute fechado o seguinte na lista de dispositivos torna-se o ativo O uacuteltimo comando acima ilustra isto

Exerciacutecio 5

Crie diferentes graacuteficos em diferentes dispositivos Por fim salve-os em jpeg

Para saber mais como salvar graacuteficos em jpeg use a funccedilatildeo lsquorsquojpegrsquorsquo