tutoriais para criação e edição de gráficos no r
TRANSCRIPT
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
2 3 4
5
gt devcur()
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
2 3 4
5
gt devcur()
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
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
2 3 4
5
gt devcur()
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
2 3 4
5
gt devcur()
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
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
2 3 4
5
gt devcur()
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
2 3 4
5
gt devcur()
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
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
2 3 4
5
gt devcur()
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
2 3 4
5
gt devcur()
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
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
2 3 4
5
gt devcur()
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
2 3 4
5
gt devcur()
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
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
2 3 4
5
gt devcur()
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
2 3 4
5
gt devcur()
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
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
2 3 4
5
gt devcur()
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
2 3 4
5
gt devcur()
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
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
2 3 4
5
gt devcur()
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
2 3 4
5
gt devcur()
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
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
2 3 4
5
gt devcur()
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
2 3 4
5
gt devcur()
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
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
2 3 4
5
gt devcur()
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
2 3 4
5
gt devcur()
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
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
2 3 4
5
gt devcur()
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
2 3 4
5
gt devcur()
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
windows windows pngfigura02dpng
2 3 4
5
gt devcur()
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
2 3 4
5
gt devcur()
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