Escolar Documentos
Profissional Documentos
Cultura Documentos
Criando Grficos
Fazer grficos rapidamente no R fcil. Basta dizer qual tipo de grfico se deseja e quais so as variveis. H duas maneiras de se especificar as variveis Cartesiana plot(x,y) Formula plot(y~x) Ambas as formas so corretas, mas como a grande maioria das anlises feitas so no formato y~x, em vez de x,y, acaba ficando mais fcil usar y~x.
riqueza <- c(15,18,22,24,25,30,31,34,37,39,41,45) area <- c(2,4.5,6,10,30,34,50,56,60,77.5,80,85) area.cate <- rep(c("pequeno", "grande"), each=6) plot(riqueza~area) plot(area,riqueza) # o mesmo que o anterior boxplot(riqueza~area.cate) barplot(riqueza)
As figuras padro (default) que o R produz no so publicveis, mas trazem toda a informao que foi usada para gerar o grfico e podem perfeitamente ser usadas para uma interpretao inicial dos resultados. O plot ou scatterplot um grfico de disperso, sendo que cada ponto no plot representa uma das rplicas (e.g. 12 rplicas, 12 pontos). Na sua forma mais simples, as legendas dos eixos vm com o nome das variveis usadas para criar o plot.
Editando Grficos
Aqui comea a parte mais complicada. No porque difcil mudar a forma como os grficos so feitos, mas porque para chegar num resultado final adequado requer um processo iterativo. Em outras palavras, se o objetivo mudar o tamanho da fonte, ser necessrio testar vrios tamanhos at se atingir o tamanho ideal para incluir no manuscrito e/ou tese. Existem duas maneiras de se mudar parmetros no grfico; uma por dentro do grfico, ou seja, dentro da funo plot, boxplot, ou barplot, e a outra pela funo par(). Alguns argumentos s podem ser chamados exclusivamente por uma destas maneiras. Por exemplo ylab e xlab modificam o nome (label) dos eixos e s podem ser chamadas por dentro do grfico, j outras funes s podem ser chamadas pelo par(), como por exemplo, mar que controla o tamanho das margens do grfico e mfrow que controla quantos grficos sero mostrados no mesmo dispositivo. Para que as alteraes controladas pelo par() possam surtir efeito, elas sempre devem vir antes do grfico. Se um novo dispositivo grfico no for aberto, todas as funes j controladas pelo par() continuaro valendo, mesmo que o grfico mude.
O resultado final ser um grfico com legendas na vertical. Isso a princpio pode parecer sem sentido, porm imagine um caso em que h vrios grficos no mesmo dispositivo grfico e em todos os casos se deseja ter legendas horizontais, com exceo de um grfico apenas em que um dos eixos ser desenhado verticalmente. So em casos que nem este que se torna necessrio poder dar informaes conflitantes para o R. Outro caso que importante saber a funo cex. Em sua forma geral, ela se aplica ao tamanho de fonte das legendas, ttulo, pontos, entre outros. Se o seguinte comando dado:
par(cex=2) plot(riqueza~area, cex=2)
O resultado final ter legendas com tamanho 2 (default=1) e pontos com tamanho 4. Isto ocorre pois par(cex=2) tem a funo geral de aumentar todas as fontes e pontos, enquanto que no plot(cex=2) tem a funo de aumentar s o pontos. E quando neste caso especfico, em vez das informaes entrarem em conflito, como no caso anterior, elas se multiplicam. Exerccio 2 Aprendendo a Editar Grficos Entre no R e digite: ?plot Agora, usando as variveis:
riqueza <- c(15,18,22,24,25,30,31,34,37,39,41,45) area <- c(2,4.5,6,10,30,34,50,56,60,77.5,80,85)
Mude: O nome do eixo x para Tamanho da Ilha (ha) O nome do eixo y para Riqueza de Espcies
Exemplos de par(mar=c())
par(mfrow=c(2,1)) par(mar=c(4,14,2,6)) plot(riqueza~area) boxplot(riqueza~area.cate)
E agora:
plot(riqueza~area, bty="l", tcl=0.3)
Viu s?
Para inserir linhas retas ou curvas no-paramtricas (como lowess, loess, gam, etc).
plot(riqueza~area)
abline()
Para inserir linhas de tendncia criadas a partir de um modelo linear. Para isso primeiro necessrio criar o modelo, para depois criar a linha.
model <- lm(riqueza~area) plot(riqueza~area) abline(model)
Com a funo abline voc pode tambm inserir uma linha reta com intercepto e inclinao definidos por voc, com os dois primeiros argumentos:
plot(riqueza~area) abline(15,0.4)
A funo abline tambm serve para acrescentar linhas verticais e horizontais, com os argumentos v e h. No cdigo abaixo traamos estas linhas passando pelas mdias das duas variveis do diagrama de disperso:
plot(riqueza~area) abline(v=mean(area)) abline(h=mean(riqueza))
Voc sabia? A reta da regresso linear simples sempre passa pelo ponto que a interseo destas duas linhas.
text()
Para inserir texto dentro do grfico. O texto pode ser uma letra, um smbolo (muito usado para mostrar diferenciar classes no grfico), uma palavra ou at mesmo uma frase.
plot(riqueza~area) text(20,40,"texto")
mtext()
Este comando acrescenta texto nas margens do grfico ou da janela grfica. Seu uso mais frequente inserir legendas dos eixos. Apesar de ser possvel controlar as legendas por dentro das funes plot, boxplot e barplot, o numero de parmetros que se pode mudar limitado. Quando se deseja um controle mais fino dos parmetros, como posio, alinhamento, cor, tamanho da fonte, etc, necessrio usar mtext().
plot(riqueza~area) mtext("legenda no lado errado", side=4, line=0.9, at=20,cex=2, family="serif")
par(new=TRUE)
Para sobrepor um novo grfico a um grfico j existente. Em vez de criar grficos lado-alado, como em par(mfrow=c()), este argumento ir desenhar o novo grfico sobre o grfico anterior.
plot(riqueza~area) par(new=TRUE) plot(abundancia~area)
Mas reparem que aqui ser necessrio alguns ajustes para suprimir eixos e legendas. Em muitos casos quando se est inserindo informaes ser necessrio suprimir parmetros.
axis()
Para se inserir um eixo novo. Esta funo bastante usada nos casos em que se deseja ter dois grfico dentro de uma mesma figura (ver par(new=TRUE)), ou ento se deseja controlar muitos dos parmetros dos eixos (como em mtext()).
plot(riqueza~area) par(new=TRUE) plot(abundancia~area, axes=FALSE, ann=FALSE, pch=16) axis(4)
Aqui no caso ser necessrio usar axes=F para suprimir a criao dos eixos do grfico inicial de abundncia e ann=F para suprimir a legenda de abundncia do lado direito. Para para diferenciar os pontos entre os dois plots usar pch=16, ou qualquer outro nmero. Para inserir a legenda de abundncia do lado direito ser necessrio usar mtext(), mas da ser necessrio mudar outros parmetros como distncia da margem.
arrows(), rect(), polygon()
Para inserir flechas ou barras de erros use arrows(). J para inserir retngulos, polgonos e outros formatos use rect() e polygon().
plot(riqueza~area) rect(20,20,40,40)
Salvando Grficos
Aps ter feitos todos os grficos desejados, possvel salv-los em vrios formatos, como jpeg, png, postscript, pdf. Consulte a ajuda do pacote grDevices para a lista completa e mais informaes. Aps chegar ao grfico final, ajustando todos os parmetros desejados, voc pode usar a funo do R para criar o arquivo no formato desejado. H funes 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, h a funo jpeg:
jpeg(filename = "Algumnome.jpg")
Feito isso, o R agora ir enviar todos os resultados de comandos grficos para este arquivo, que fechado com a funo dev.off(). Exemplo
jpeg(filename = "Rplotaula.jpg", width = 480, height = 480, units = "px", pointsize = 12, quality = 100, bg = "white", res = NA, restoreConsole = TRUE)
Com essa notao os grficos gerados sero gravados com uma numerao sequencial, que tem [numero] algarismos. Por exemplo [nmero] = 01 indica numerao sequencial de um algarismo, e voc pode gravar at nove grficos (meugrafico1.png a meugrafico9.png). Se [nmero] = 02 a numerao sequencial tem dois algarismos, portanto voc pode gravar at 99 figuras (meugrafico01.png a meugrafico99.png). Se voc gera mais grficos do que este valor mximo, os excedentes sobrepem os primeiros, na sequncia. Para evitar isso, normalmente usamos [nmero] = 03, que permite gerar at 999 arquivos, o que mais do que suficiente na maioria dos casos. O padro das funes de arquivos grficos do tipo bitmap no R gerar arquivos com o nome Rplotxxx.extenso, com numerao sequencial com 3 algarismos, ou seja:
bmp(filename = "Rplot%03d.bmp") jpeg(filename = "Rplot%03d.jpg") png(filename = "Rplot%03d.png") tiff(filename = "Rplot%03d.bmp")
Para arquivos do tipo postscript e pdf o padro um pouco diferente, consulte a ajuda.
Dispositivos Grficos
uma janela se abrir para exibir a figura nele. Este um dispositivo grfico de tela, normalmente do tipo X11 em sistemas UNIX, e do tipo windows em sistemas Microsoft Windows. possvel tambm abrir mais dispositivos de tela, com o comando:
> x11()
que funciona nos dois tipos de sistemas operacionais. Ao executar este comando, uma nova janela grfica em branco se abrir, na margem superior da qual voc ver a indicao de que agora este o dispositivo ativo:
Qual o Dispositivo Ativo? Enquanto temos apenas dispositivos de tela abertos, fcil descobrir qual o ativo, pois esta informao exibida na janela de cada um. Mas quando abrimos um ou mais dispositivos de arquivo, como:
> png("figura%02d.png") > pdf("figura%02d.pdf")
fcil se perder. Para que isso no acontea h as funes dev.list, para listar todos os dispositivos abertos, e dev.cur, que retorna o dispositivo ativo:
> dev.list() windows pdf 2 5 > dev.cur() pdf 5 > dev.set(3) windows 3 > dev.cur() windows 3 windows png:figura%02d.png 3 4
Voc fecha um dispositivo com o comando dev.off(which=n), em que n o nmero do dispositivo. Se este argumento omitido, o valor padro o dispositivo ativo:
> dev.list() windows pdf 2 5 > dev.cur() pdf 5 > dev.off() windows png:figura%02d.png 3 4
windows png:figura%02d.png 3 4
Quando o dispositivo ativo fechado, o seguinte na lista de dispositivos torna-se o ativo. O ltimo comando acima ilustra isto. Exerccio 5 Crie diferentes grficos em diferentes dispositivos. Por fim salve-os em jpeg. Para saber mais como salvar grficos em jpeg use a funo ?jpeg.