Ferramentas do usuário

Ferramentas do site


03_apostila:05a-graficos

Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

Próxima revisão
Revisão anterior
03_apostila:05a-graficos [2020/08/12 06:04]
127.0.0.1 edição externa
03_apostila:05a-graficos [2023/08/22 18:04] (atual)
Linha 1: Linha 1:
 <WRAP tabs> <WRAP tabs>
-  * [[bie5782:02_tutoriais:​tutorial5:​start|Tutorial]] +  * [[02_tutoriais:​tutorial5:​start|Tutorial]] 
-  * [[bie5782:01_curso_atual:​exercicios5| Exercícios]] +  * [[01_curso_atual:​exercicios5| Exercícios]] 
-  * [[bie5782:03_apostila:​05a-graficos| Apostila]] ​  +  * [[03_apostila:​05a-graficos| Apostila]] ​
-  * [[bie5782:​03_apostila:​10-graficos02| Apostila-Avançado]]  ​+
 </​WRAP>​ </​WRAP>​
 ====== 5a. Criação e Edição de Gráficos no R====== ====== 5a. Criação e Edição de Gráficos no R======
Linha 12: Linha 11:
  
 ===Custo Benefício de Fazer Gráficos no R=== ===Custo Benefício de Fazer Gráficos no R===
-Nesta apostila você aprenderá a editar os gráficos e adequá-los para dissertações,​ teses ou revistas científicas. Editar gráficos no R não é fácil, demora tempo (pode demorar horas para fazer apenas uma figura) e é muitas ​vezes frustrante, pois cada passo requer uma série de ajustes. Porém, o R permite mudar quase todos os parâmetros dentro de um gráfico, uma liberdade que (quase) nenhum outro pacote estatístico possui. E lembre-se, bons gráficos dizem mais que apenas o conjunto de dados a ser apresentado. Bons gráficos mostram vários resultados em um pequeno espaço de papel, são facilmente interpretáveis e podem aumentar suas chances de ter trabalhos aceitos em boas revistas científicas. Por isso, é muito importante investir bastante tempo em fazer figuras bonitas e bem explicativas. ​  ​+Nesta apostila você aprenderá a editar os gráficos e adequá-los para dissertações,​ teses ou revistas científicas. Editar gráficos no R não é fácil, demora tempo (pode demorar horas para fazer apenas uma figura) e em muitas ​casos é um exercício ​frustrante, pois cada passo requer uma série de ajustes. Porém, o R permite mudar quase todos os parâmetros dentro de um gráfico, uma liberdade que (quase) nenhum outro pacote estatístico possui. E lembre-se, bons gráficos dizem mais que apenas o conjunto de dados a ser apresentado. Bons gráficos mostram vários resultados em um pequeno espaço de papel, são facilmente interpretáveis e podem aumentar suas chances de ter trabalhos aceitos em boas revistas científicas. Por isso, é muito importante investir bastante tempo em fazer figuras bonitas e bem explicativas. ​ 
  
  
Linha 31: Linha 30:
  
  
-<​code>​+<​code ​rsplus>
  
 riqueza <- c(15,​18,​22,​24,​25,​30,​31,​34,​37,​39,​41,​45) riqueza <- c(15,​18,​22,​24,​25,​30,​31,​34,​37,​39,​41,​45)
Linha 37: Linha 36:
 area.cate <- rep(c("​pequeno",​ "​grande"​),​ each=6) area.cate <- rep(c("​pequeno",​ "​grande"​),​ each=6)
  
-plot(riqueza~area) +plot(riqueza ~ area) 
-plot(area,​riqueza) # o mesmo que o anterior +plot(area, riqueza) # o mesmo que o anterior 
-boxplot(riqueza~area.cate)+boxplot(riqueza ~ area.cate, col = "​white"​)
 barplot(riqueza) barplot(riqueza)
  
 </​code>​ </​code>​
  
-{{:bie5782:​03_apostila:​plot1a.jpg|plot}} +{{:​03_apostila:​plot1a.jpg|plot}} 
-{{:bie5782:​03_apostila:​plot2a.jpg|boxplot}} +{{:​03_apostila:​plot2a.jpg|boxplot}} 
-{{:bie5782:​03_apostila:​plot3a.jpg|barplot}}+{{:​03_apostila:​plot3a.jpg|barplot}}
  
  
-As figuras padrão (''​default''​) que o R produz não são publicáveis,​ mas trazem toda a informação que foi usada para gerar o gráfico e podem perfeitamente ser usadas para uma interpretação inicial dos resultados. O ''​plot''​ ou scatterplot é um gráfico de dispersão, sendo que cada ponto no ''​plot''​ representa uma das réplicas (e.g. 12 réplicas, 12 pontos). ​ Na sua forma mais simples, as legendas dos eixos vêm com o nome das variáveis usadas para criar o plot.+As figuras padrão (''​default''​) que o R produz não são publicáveis,​ mas trazem toda a informação que foi usada para gerar o gráfico e podem perfeitamente ser usadas para uma interpretação inicial dos resultados. O ''​plot''​ ou scatterplot é um gráfico de dispersão, sendo que cada ponto no ''​plot''​ representa uma das réplicas (e.g. 12 réplicas, 12 pontos). Na sua forma mais simples, as legendas dos eixos vêm com o nome das variáveis usadas para criar o plot.
  
  
-Quando as variáveis são categóricas,​ o gráfico padrão que o R produz é o boxplot ou “box and whiskers plot” (chamado em português de desenho esquemático,​ desenho da caixa, ou desenho de caixa e bigode). No boxplot, a linha grossa do meio representa a mediana, a caixa representa o 1° e 3°quartil, e os "​bigodes"​ podem representar ou os valores máximos e mínimos, ou 1.5 vezes o valor dos quartis (aproximadamente 2 desvios padrões); é desenhado o que for menor. ​ Às vezes, alguns pontos são desenhados individualmente além dos bigodes, estes são os "​outliers",​ que podem ser suprimidos com o argumento ''​outline=F''​. ​+Quando as variáveis são categóricas,​ o gráfico padrão que o R produz é o boxplot ou “box and whiskers plot” (chamado em português de desenho esquemático,​ desenho da caixa, ou desenho de caixa e bigode). No boxplot, a linha grossa do meio representa a mediana, a caixa representa o 1° e 3°quartil, e os "​bigodes"​ podem representar ou os valores máximos e mínimos, ou 1.5 vezes o valor dos quartis (aproximadamente 2 desvios padrões); é desenhado o que for menor. Às vezes, alguns pontos são desenhados individualmente além dos bigodes, estes são os "​outliers",​ que podem ser suprimidos com o argumento ''​outline=F''​. ​
  
  
-O barplot, ou gráfico de barras, mostra cada ponto da variável especificada como uma barra. Na sua forma mais simples, são apresentados apenas os valores brutos e não há informação alguma quanto à dispersão dos dados. ​ No barplot nenhum dos eixos vem com legendas (aliás, o eixo x também não é desenhado). ​+O barplot, ou gráfico de barras, mostra cada ponto da variável especificada como uma barra. Na sua forma mais simples, são apresentados apenas os valores brutos e não há informação alguma quanto à dispersão dos dados. No barplot nenhum dos eixos vem com legendas (aliás, o eixo x também não é desenhado). ​
  
 <box center red 70% | **Exercício 1 – Fazendo os Primeiros Gráficos** > <box center red 70% | **Exercício 1 – Fazendo os Primeiros Gráficos** >
    
 Construa “plot”, boxplot e barplot usando as variáveis do conjunto de dados [[:​dados:​dados-esaligna| Conjunto de Dados: Dados de Biomassa de Árvores de Eucalyptus Saligna]], para explorar relações entre: Construa “plot”, boxplot e barplot usando as variáveis do conjunto de dados [[:​dados:​dados-esaligna| Conjunto de Dados: Dados de Biomassa de Árvores de Eucalyptus Saligna]], para explorar relações entre:
-  dap e ht  +  dap e ht 
   ht e tronco   ht e tronco
   dap e classe   dap e classe
Linha 75: Linha 74:
 Aqui começa a parte mais complicada. Não porque é difícil mudar a forma como os gráficos são 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á necessário testar vários tamanhos até se atingir o "​tamanho ideal" para incluir no manuscrito e/ou tese. Aqui começa a parte mais complicada. Não porque é difícil mudar a forma como os gráficos são 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á necessário testar vários tamanhos até se atingir o "​tamanho ideal" para incluir no manuscrito e/ou tese.
  
-Existem duas maneiras de se mudar parâmetros no gráfico; uma é por dentro do gráfico, ou seja, dentro da função ''​plot,​ boxplot'',​ ou ''​barplot'',​ e a outra é pela função ''​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 gráfico, já outras funções só podem ser chamadas pelo ''​par()'',​ como por exemplo, ''​mar''​ que controla o tamanho das margens do gráfico e ''​mfrow''​ que controla quantos gráficos serão mostrados no mesmo dispositivo.+Existem duas maneiras de se mudar parâmetros no gráfico; uma é por dentro do gráfico, ou seja, dentro da função ''​plot''​''​boxplot'',​ ou ''​barplot'',​ e a outra é pela função ''​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 gráfico, já outras funções só podem ser chamadas pelo ''​par()'',​ como por exemplo, ''​mar''​ que controla o tamanho das margens do gráfico e ''​mfrow''​ que controla quantos gráficos serão mostrados no mesmo dispositivo.
  
 Para que as alterações controladas pelo ''​par()''​ possam surtir efeito, elas sempre devem vir antes do gráfico. Se um novo dispositivo gráfico não for aberto, todas as funções já controladas pelo ''​par()''​ continuarão valendo, mesmo que o gráfico mude.  Para que as alterações controladas pelo ''​par()''​ possam surtir efeito, elas sempre devem vir antes do gráfico. Se um novo dispositivo gráfico não for aberto, todas as funções já controladas pelo ''​par()''​ continuarão valendo, mesmo que o gráfico mude. 
Linha 83: Linha 82:
  
  
-<​code>​+<​code ​rsplus>
  
  ​par(las=1)  ​par(las=1)
Linha 90: Linha 89:
 </​code>​ </​code>​
  
-{{:bie5782:​03_apostila:​plot4a.jpg|}}+{{:​03_apostila:​plot4a.jpg|}}
  
 O resultado final será um gráfico com legendas na vertical. Isso a princípio pode parecer sem sentido, porém imagine um caso em que há vários gráficos no mesmo dispositivo gráfico e em todos os casos se deseja ter legendas horizontais,​ com exceção de um gráfico apenas em que um dos eixos será desenhado verticalmente. São em casos que nem este que se torna necessário poder dar informações “conflitantes” para o R.  O resultado final será um gráfico com legendas na vertical. Isso a princípio pode parecer sem sentido, porém imagine um caso em que há vários gráficos no mesmo dispositivo gráfico e em todos os casos se deseja ter legendas horizontais,​ com exceção de um gráfico apenas em que um dos eixos será desenhado verticalmente. São em casos que nem este que se torna necessário poder dar informações “conflitantes” para o R. 
Linha 97: Linha 96:
 Outro caso que é importante saber é a função ''​cex''​. Em sua forma geral, ela se aplica ao tamanho de fonte das legendas, título, pontos, entre outros. Se o seguinte comando é dado: Outro caso que é importante saber é a função ''​cex''​. Em sua forma geral, ela se aplica ao tamanho de fonte das legendas, título, pontos, entre outros. Se o seguinte comando é dado:
  
-<​code>​+<​code ​rsplus>
  
 par(cex=2) par(cex=2)
Linha 105: Linha 104:
 </​code>​ </​code>​
  
-{{:bie5782:​03_apostila:​plot5a.jpg|}}+{{:​03_apostila:​plot5a.jpg|}}
  
 O resultado final terá legendas com tamanho 2 (default=1) e pontos com tamanho 4. Isto ocorre pois ''​par(cex=2)''​ tem a função geral de aumentar todas as fontes e pontos, enquanto que no ''​plot(cex=2)''​ tem a função de aumentar só o pontos. E quando neste caso específico,​ em vez das informações entrarem em conflito, como no caso anterior, elas se multiplicam. O resultado final terá legendas com tamanho 2 (default=1) e pontos com tamanho 4. Isto ocorre pois ''​par(cex=2)''​ tem a função geral de aumentar todas as fontes e pontos, enquanto que no ''​plot(cex=2)''​ tem a função de aumentar só o pontos. E quando neste caso específico,​ em vez das informações entrarem em conflito, como no caso anterior, elas se multiplicam.
Linha 171: Linha 170:
   boxplot(riqueza~area.cate)   boxplot(riqueza~area.cate)
  
-{{:bie5782:​03_apostila:​plot6c.jpeg|}}+{{:​03_apostila:​plot6c.jpeg|}}
  
   par(mfrow=c(1,​2))   par(mfrow=c(1,​2))
Linha 177: Linha 176:
   boxplot(riqueza~area.cate)   boxplot(riqueza~area.cate)
  
-{{:bie5782:​03_apostila:​plot7a.jpeg|}}+{{:​03_apostila:​plot7a.jpeg|}}
  
 **Exemplos de ''​par(mar=c())''​** **Exemplos de ''​par(mar=c())''​**
Linha 186: Linha 185:
   boxplot(riqueza~area.cate)   boxplot(riqueza~area.cate)
  
-{{:bie5782:​03_apostila:​plot8a.jpeg|}}+{{:​03_apostila:​plot8a.jpeg|}}
  
   par(mfrow=c(1,​2))   par(mfrow=c(1,​2))
Linha 193: Linha 192:
   boxplot(riqueza~area.cate)   boxplot(riqueza~area.cate)
  
-{{:bie5782:​03_apostila:​plot9a.jpeg|}}+{{:​03_apostila:​plot9a.jpeg|}}
  
   par(mfrow=c(1,​2))   par(mfrow=c(1,​2))
Linha 201: Linha 200:
   boxplot(riqueza~area.cate)   boxplot(riqueza~area.cate)
  
-{{:bie5782:​03_apostila:​plot10a.jpeg|}}+{{:​03_apostila:​plot10a.jpeg|}}
  
 =====Diferenças Entre Tipos De Gráfico===== =====Diferenças Entre Tipos De Gráfico=====
  
-Infelizmente,​ a forma como se muda argumentos do ''​plot(),​ boxplot()''​ e ''​barplot()''​ não é sempre a mesma, ou seja, comandos que funcionam perfeitamente para o ''​plot()''​ podem não produzir efeito algum no ''​boxplot()'',​ e vice-versa. +Infelizmente,​ a forma como se muda argumentos do ''​plot()''​''​boxplot()''​ e ''​barplot()''​ não é sempre a mesma, ou seja, comandos que funcionam perfeitamente para o ''​plot()''​ podem não produzir efeito algum no ''​boxplot()'',​ e vice-versa. 
-Esta característica,​ de fato, atrapalha um pouco, mas assim que se acostuma fica mais fácil. Há duas dicas para resolver este problema: (i) tente sempre jogar os argumentos para o ''​par()''​ pois às vezes eles podem não funcionar se chamadas por dentro do ''​plot(),​ boxplot()'',​ etc, mas irão funcionar pelo ''​par()'';​ (ii) descubra o nome em inglês do parâmetro que se quer mudar (''​label,​ tick, legend''​) e jogue no Google "​legend boxplot"​. Com certeza, alguém já 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 solução. ​+Esta característica,​ de fato, atrapalha um pouco, mas assim que se acostuma fica mais fácil. Há duas dicas para resolver este problema: (i) tente sempre jogar os argumentos para o ''​par()''​ pois às vezes eles podem não funcionar se chamadas por dentro do ''​plot()''​''​boxplot()'',​ etc, mas irão funcionar pelo ''​par()'';​ (ii) descubra o nome em inglês do parâmetro que se quer mudar (''​label''​''​tick''​''​legend''​) e jogue no Google "​legend boxplot"​. Com certeza, alguém já 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 solução. ​
  
 <box center red 80%| **Exercício 3 – Mudando diferentes Gráficos** > <box center red 80%| **Exercício 3 – Mudando diferentes Gráficos** >
Linha 213: Linha 212:
   riqueza <- c(15,​18,​22,​24,​25,​30,​31,​34,​37,​39,​41,​45)   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 <- c(2,​4.5,​6,​10,​30,​34,​50,​56,​60,​77.5,​80,​85)
-  area.cate <- rep(c(pequenogrande), each=6)+  area.cate <- rep(c("pequeno""grande"), each=6)
  
 Crie: Crie:
Linha 221: Linha 220:
    ​plot(riqueza~area,​ bty="​l",​ tcl=0.3)    ​plot(riqueza~area,​ bty="​l",​ tcl=0.3)
  
-Perecebeu ​o que mudou?+Percebeu ​o que mudou?
  
 Agora tente: Agora tente:
  
-  boxplot(riqueza~area.cate,​ bty=l, tcl=0.3)+  boxplot(riqueza~area.cate,​ bty="l", tcl=0.3)
  
 O que aconteceu? O que aconteceu?
Linha 231: Linha 230:
 E agora? E agora?
  
-  par(bty=l)+  par(bty="l")
   par(tcl=0.3)   par(tcl=0.3)
   boxplot(riqueza~area.cate)   boxplot(riqueza~area.cate)
Linha 241: Linha 240:
 =====Inserindo mais Informações em Gráficos===== =====Inserindo mais Informações em Gráficos=====
  
-Existem diversas informações que se pode incluir em um gráfico. Pode-se colocar uma letra para mostrar que este é o painel “a” e ao lado é o painel ”b”; pode-se colocar asteriscos para mostrar quais relações são significativas;​ pode-se desenhar flechas, outros pontos, uma infinidade de coisas. Tudo isto pode ser feito, mas requer funções comandos separados daqueles já passados pelo par() plot(), boxplot() ou barplot().+Existem diversas informações que podemos ​incluir em um gráfico. Pode-se colocar uma letra para mostrar que este é o painel “a” e ao lado é o painel ”b”; pode-se colocar asteriscos para mostrar quais relações são significativas;​ pode-se desenhar flechas, outros pontos, uma infinidade de coisas. Tudo isto pode ser feito, mas requer funções comandos separados daqueles já passados pelo ''​par()'',​ ''​plot()''​''​boxplot()'' ​ou ''​barplot()''​.
 Dentre as várias funções existentes para se inserir informações em gráficos, existem sete que são bastante úteis. Use: Dentre as várias funções existentes para se inserir informações em gráficos, existem sete que são bastante úteis. Use:
  
Linha 256: Linha 255:
 </​box>​ </​box>​
 == lines() == == lines() ==
-Para inserir linhas retas ou curvas não-paramétricas (como ''​lowess'',​ ''​loess'', ​ +Para inserir linhas retas ou curvas não-paramétricas (como ''​lowess'',​ ''​loess'',​ ''​gam'',​ etc). 
-''​gam'',​ etc). +<​code ​rsplus>
-<​code>​+
  ​plot(riqueza~area)  ​plot(riqueza~area)
  ​lines(lowess(area,​ riqueza))  ​lines(lowess(area,​ riqueza))
 </​code>​ </​code>​
  
-{{:bie5782:​03_apostila:​plot11.jpeg|}}+{{:​03_apostila:​plot11.jpeg|}}
  
 == abline() == == abline() ==
 Para inserir linhas de tendência criadas a partir de um modelo linear. ​ Para inserir linhas de tendência criadas a partir de um modelo linear. ​
 Para isso é primeiro necessário criar o modelo, para depois criar a linha. Para isso é primeiro necessário criar o modelo, para depois criar a linha.
-<​code>​ +<​code ​rsplus
-model <-  lm(riqueza~area)+model <- lm(riqueza~area)
 plot(riqueza~area) plot(riqueza~area)
 abline(model) abline(model)
 </​code>​ </​code>​
  
-{{:bie5782:​03_apostila:​plot12.jpeg|}}+{{:​03_apostila:​plot12.jpeg|}}
  
 Com a função ''​abline''​ você pode também inserir uma linha reta com intercepto e inclinação definidos por você, com os dois primeiros argumentos: Com a função ''​abline''​ você pode também inserir uma linha reta com intercepto e inclinação definidos por você, com os dois primeiros argumentos:
-<​code>​+<​code ​rsplus>
 plot(riqueza~area) plot(riqueza~area)
 abline(15,​0.4) abline(15,​0.4)
 </​code>​ </​code>​
  
-{{:bie5782:​03_apostila:​plot13.jpeg|}}+{{:​03_apostila:​plot13.jpeg|}}
  
 A função ''​abline''​ também serve para acrescentar linhas verticais e horizontais,​ com os argumentos ''​v''​ e ''​h''​. No código abaixo traçamos estas linhas passando pelas médias das duas variáveis do diagrama de dispersão: A função ''​abline''​ também serve para acrescentar linhas verticais e horizontais,​ com os argumentos ''​v''​ e ''​h''​. No código abaixo traçamos estas linhas passando pelas médias das duas variáveis do diagrama de dispersão:
-<​code>​+<​code ​rsplus>
 plot(riqueza~area) plot(riqueza~area)
 abline(v=mean(area)) abline(v=mean(area))
Linha 291: Linha 289:
 </​code>​ </​code>​
  
-{{:bie5782:​03_apostila:​plot14.jpeg|}}+{{:​03_apostila:​plot14.jpeg|}}
  
 **Você sabia?** A reta da regressão linear simples sempre passa pelo ponto que é a interseção destas duas linhas. ​ **Você sabia?** A reta da regressão linear simples sempre passa pelo ponto que é a interseção destas duas linhas. ​
Linha 299: Linha 297:
 um símbolo (muito usado para mostrar diferenciar classes no gráfico), uma palavra ou até mesmo uma frase. um símbolo (muito usado para mostrar diferenciar classes no gráfico), uma palavra ou até mesmo uma frase.
  
-<​code>​+<​code ​rsplus>
 plot(riqueza~area) plot(riqueza~area)
 text(20,​40,"​texto"​) text(20,​40,"​texto"​)
 </​code>​ </​code>​
  
-{{:bie5782:​03_apostila:​plot15.jpeg|}}+{{:​03_apostila:​plot15.jpeg|}}
  
 == mtext() == == mtext() ==
-Este comando acrescenta texto nas margens do gráfico ou da janela gráfica. Seu uso mais freuquente ​é inserir legendas dos eixos. Apesar de ser possível controlar+Este comando acrescenta texto nas margens do gráfico ou da janela gráfica. Seu uso mais frequente ​é inserir legendas dos eixos. Apesar de ser possível controlar
 as legendas por dentro das funções ''​plot'',​ ''​boxplot''​ e ''​barplot'',​ o  as legendas por dentro das funções ''​plot'',​ ''​boxplot''​ e ''​barplot'',​ o 
-numero ​de parâmetros que se pode mudar é limitado. Quando se deseja+número ​de parâmetros que se pode mudar é limitado. Quando se deseja
 um controle mais fino dos parâmetros,​ como posição, alinhamento,​ cor, tamanho da fonte, um controle mais fino dos parâmetros,​ como posição, alinhamento,​ cor, tamanho da fonte,
 etc, é necessário usar ''​mtext()''​. etc, é necessário usar ''​mtext()''​.
-<​code>​+<​code ​rsplus>
 plot(riqueza~area) plot(riqueza~area)
 mtext("​legenda no lado errado",​ side=4, line=0.9, at=20,​cex=2,​ family="​serif"​) mtext("​legenda no lado errado",​ side=4, line=0.9, at=20,​cex=2,​ family="​serif"​)
 </​code>​ </​code>​
  
-{{:bie5782:​03_apostila:​plot16.jpeg|}}+{{:​03_apostila:​plot16.jpeg|}}
  
 == par(new=TRUE) == == par(new=TRUE) ==
Linha 325: Linha 323:
 anterior. ​ anterior. ​
  
-<​code>​+<​code ​rsplus>
 plot(riqueza~area) plot(riqueza~area)
-par(new=TRUE)+par(new = TRUE)
 plot(abundancia~area) plot(abundancia~area)
 </​code>​ </​code>​
  
-{{:bie5782:​03_apostila:​plot17.jpeg|}}+{{:​03_apostila:​plot17.jpeg|}}
  
 Mas reparem que aqui será necessário alguns ajustes para suprimir ​ Mas reparem que aqui será necessário alguns ajustes para suprimir ​
Linha 340: Linha 338:
 Para se inserir um eixo novo. Esta função é bastante usada nos casos em que se deseja ter dois gráfico dentro de uma mesma figura (ver ''​par(new=TRUE)''​), ​ Para se inserir um eixo novo. Esta função é bastante usada nos casos em que se deseja ter dois gráfico dentro de uma mesma figura (ver ''​par(new=TRUE)''​), ​
 ou então se deseja controlar muitos dos parâmetros dos eixos (como em ''​mtext()''​). ou então se deseja controlar muitos dos parâmetros dos eixos (como em ''​mtext()''​).
-<​code>​+<​code ​rsplus>
 plot(riqueza~area) plot(riqueza~area)
 par(new=TRUE) par(new=TRUE)
Linha 347: Linha 345:
 </​code>​ </​code>​
  
-{{:bie5782:​03_apostila:​plot18.jpeg|}}+{{:​03_apostila:​plot18.jpeg|}}
  
 Aqui no caso será necessário usar ''​axes=F''​ para suprimir a criação dos  Aqui no caso será necessário usar ''​axes=F''​ para suprimir a criação dos 
Linha 361: Linha 359:
 inserir retângulos,​ polígonos e outros formatos use ''​rect()''​ e ''​polygon()''​. inserir retângulos,​ polígonos e outros formatos use ''​rect()''​ e ''​polygon()''​.
  
-<​code>​+<​code ​rsplus>
 plot(riqueza~area) plot(riqueza~area)
 rect(20,​20,​40,​40) rect(20,​20,​40,​40)
 </​code>​ </​code>​
  
-{{:bie5782:​03_apostila:​plot19.jpeg|}}+{{:​03_apostila:​plot19.jpeg|}} 
 + 
 +Você também pode usar ''​arrows()''​ para, por exemplo, dar destaque a uma observação no seu gráfico: 
 +<code rsplus>​ 
 +arrows(80, 31, 55, 31) 
 +</​code>​
  
 =====Salvando Gráficos===== =====Salvando Gráficos=====
Linha 372: Linha 375:
 Após ter feitos todos os gráficos desejados, é possível salvá-los em vários formatos, como [[http://​en.wikipedia.org/​wiki/​JPEG|jpeg]],​ [[http://​en.wikipedia.org/​wiki/​Portable_Network_Graphics|png]],​ [[http://​en.wikipedia.org/​wiki/​PostScript|postscript]],​ [[http://​en.wikipedia.org/​wiki/​Portable_Document_Format|pdf]]. Consulte a ajuda do pacote [[http://​finzi.psych.upenn.edu/​R/​library/​grDevices/​html/​00Index.html|grDevices]] para a lista completa e mais informações. Após ter feitos todos os gráficos desejados, é possível salvá-los em vários formatos, como [[http://​en.wikipedia.org/​wiki/​JPEG|jpeg]],​ [[http://​en.wikipedia.org/​wiki/​Portable_Network_Graphics|png]],​ [[http://​en.wikipedia.org/​wiki/​PostScript|postscript]],​ [[http://​en.wikipedia.org/​wiki/​Portable_Document_Format|pdf]]. Consulte a ajuda do pacote [[http://​finzi.psych.upenn.edu/​R/​library/​grDevices/​html/​00Index.html|grDevices]] para a lista completa e mais informações.
  
-Após chegar ao gráfico final, ajustando ​todos os parâmetros desejados, você pode usar a função ​do R para criar o arquivo no formato desejado. Há funções 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 função ''​jpeg'':​ +Após ajustar ​todos os parâmetros desejados, você pode usar funções ​do R para salvar a imagem como um arquivo no formato desejado. Há funções para cada formato de arquivo, todas elas com o primeiro argumento ''​filename'',​ que especifica o nome do arquivo a ser salvo. Para criar um arquivo //jpg//, por exemplo, há a função ''​jpeg'':​ 
-<​code>​+<​code ​rsplus>
   jpeg(filename = "​Algumnome.jpg"​)   jpeg(filename = "​Algumnome.jpg"​)
 </​code>​ </​code>​
  
-Feito isso, o R agora irá enviar todos os resultados de comandos gráficos para este arquivo, que é fechado com a função ''​dev.off()''​. ​+Feito isso, o R agora irá enviar todos os resultados de comandos gráficos para este arquivo ​no diretório de trabalho, que é fechado com a função ''​dev.off()''​. ​
  
 **Exemplo** **Exemplo**
  
-<​code>​+<​code ​rsplus>
 jpeg(filename = "​Rplotaula.jpg",​ width = 480, height = 480,  jpeg(filename = "​Rplotaula.jpg",​ width = 480, height = 480, 
      units = "​px",​ pointsize = 12, quality = 100,      units = "​px",​ pointsize = 12, quality = 100,
-     bg = "​white", ​ res = NA, restoreConsole = TRUE)+     bg = "​white",​ res = NA, restoreConsole = TRUE)
  
 par(mfrow=c(1,​2)) par(mfrow=c(1,​2))
Linha 404: Linha 407:
  
 Para gravar uma sequência de gráficos sem precisar dar vários comandos de abertura de arquivos, use no argumento do nome do arquivo a notação ''​nome%[número]d.extensão'',​ onde [número] normalmente são os números 01, 02 ou 03: Para gravar uma sequência de gráficos sem precisar dar vários comandos de abertura de arquivos, use no argumento do nome do arquivo a notação ''​nome%[número]d.extensão'',​ onde [número] normalmente são os números 01, 02 ou 03:
-<​code>​+<​code ​rsplus>
 png("​meugrafico%02d.png"​) png("​meugrafico%02d.png"​)
 </​code>​ </​code>​
-Com essa notação os gráficos gerados serão gravados com uma numeração sequencial, que tem ''​[numero]''​ algarismos. Por exemplo ''​[número] = 01''​ indica numeração sequencial de um algarismo, e você pode gravar até nove gráficos (//​meugrafico1.png//​ a //​meugrafico9.png//​). ​ Se ''​[número] = 02''​ a numeração sequencial tem dois algarismos, portanto você pode gravar até 99 figuras (//​meugrafico01.png//​ a //​meugrafico99.png//​). ​+Com essa notação os gráficos gerados serão gravados com uma numeração sequencial, que tem ''​[numero]''​ algarismos. Por exemplo ''​[número] = 01''​ indica numeração sequencial de um algarismo, e você pode gravar até nove gráficos (//​meugrafico1.png//​ a //​meugrafico9.png//​). Se ''​[número] = 02''​ a numeração sequencial tem dois algarismos, portanto você pode gravar até 99 figuras (//​meugrafico01.png//​ a //​meugrafico99.png//​). ​
  
 Se você gera mais gráficos do que este valor máximo, os excedentes sobrepõem os primeiros, na sequência. Para evitar isso, normalmente usamos ''​[número] = 03'',​ que permite gerar até 999 arquivos, o que é mais do que suficiente na maioria dos casos. Se você gera mais gráficos do que este valor máximo, os excedentes sobrepõem os primeiros, na sequência. Para evitar isso, normalmente usamos ''​[número] = 03'',​ que permite gerar até 999 arquivos, o que é mais do que suficiente na maioria dos casos.
  
-O padrão das funções de arquivos gráficos do tipo [[http://​en.wikipedia.org/​wiki/​Bitmap#​Device-independent_bitmaps_and_BMP_file_format|bitmap]] no R é gerar arquivos com o nome //​Rplotxxx.extensão//,​ com  numeração sequencial com 3 algarismos, ou seja: +O padrão das funções de arquivos gráficos do tipo [[http://​en.wikipedia.org/​wiki/​Bitmap#​Device-independent_bitmaps_and_BMP_file_format|bitmap]] no R é gerar arquivos com o nome //​Rplotxxx.extensão//,​ com numeração sequencial com 3 algarismos, ou seja: 
-<​code>​+<​code ​rsplus>
 bmp(filename = "​Rplot%03d.bmp"​) bmp(filename = "​Rplot%03d.bmp"​)
 jpeg(filename = "​Rplot%03d.jpg"​) jpeg(filename = "​Rplot%03d.jpg"​)
Linha 431: Linha 434:
 === Abrindo e trocando de dispositivos === === Abrindo e trocando de dispositivos ===
  
-Quando executamos um comando com resultado gráfico, o padrão do R é enviar seu resultado para um dispositivo de tela. Se não há nenhum aberto, este dispositivo de tela será aberto. Por exemplo, se iniciamos o R e executamos um comando ''​plot'':​ +Quando executamos um comando com resultado gráfico, o padrão do R é enviar seu resultado para um dispositivo de tela. Se não houver ​nenhum aberto, este dispositivo de tela será aberto. Por exemplo, se iniciamos o R e executamos um comando ''​plot'':​ 
-<​code>​+<​code ​rsplus>
 plot(riqueza~area) plot(riqueza~area)
 </​code>​ </​code>​
Linha 438: Linha 441:
  
 É possível também abrir mais dispositivos de tela, com o comando: É possível também abrir mais dispositivos de tela, com o comando:
-<​code>​+<​code ​rsplus>
 > x11() > x11()
 </​code>​ </​code>​
 que funciona nos dois tipos de sistemas operacionais. Ao executar este comando, uma nova janela gráfica em branco se abrirá, na margem superior da qual você verá a indicação de que agora este é o dispositivo ativo: que funciona nos dois tipos de sistemas operacionais. Ao executar este comando, uma nova janela gráfica em branco se abrirá, na margem superior da qual você verá a indicação de que agora este é o dispositivo ativo:
  
-{{:bie5782:​03_apostila:​janelas_graficas_ruindous.png?​500|Duas janelas gráficas abertas no R em Windows}}+{{:​03_apostila:​janelas_graficas_ruindous.png?​500|Duas janelas gráficas abertas no R em Windows}}
  
-O dispositivo ativo é que receberá o resultado de todos os comandos gráficos. Assim,você pode criar um novo gráfico neste dispositivo,​ ou alterar seus parâmetros,​ sem afetar o gráfico que está na outra janela. Quando você abre um novo dispositivo,​ os parâmetros são os mantidos por padrão no R, que você obtém com o comando ''​par()''​. Para mudá-los, é preciso usar o comando ''​par'',​ como explicado nas seções anteriores. ​+O dispositivo ativo é que receberá o resultado de todos os comandos gráficos. Assim,você pode criar um novo gráfico neste dispositivo,​ ou alterar seus parâmetros,​ sem afetar o gráfico que está na outra janela. Quando você abre um novo dispositivo,​ os parâmetros são mantidos por padrão no R, que você obtém com o comando ''​par()''​. Para mudá-los, é preciso usar o comando ''​par'',​ como explicado nas seções anteriores. ​
  
  
 Para trocar de dispositivo ativo, use a função ''​dev.set(which=)'',​ cujo o argumento ''​which''​ é o número do dispositivo que você quer tornar ativo. Por exemplo, para voltar à janela do dispositivo 2 execute: Para trocar de dispositivo ativo, use a função ''​dev.set(which=)'',​ cujo o argumento ''​which''​ é o número do dispositivo que você quer tornar ativo. Por exemplo, para voltar à janela do dispositivo 2 execute:
-<​code>​+<​code ​rsplus>
 > dev.set(which=2) > dev.set(which=2)
 </​code>​ </​code>​
Linha 455: Linha 458:
 === Qual o Dispositivo Ativo? === === Qual o Dispositivo Ativo? ===
 Enquanto temos apenas dispositivos de tela abertos, é fácil descobrir qual é o ativo, pois esta informação é exibida na janela de cada um. Mas quando abrimos um ou mais dispositivos de arquivo, como: Enquanto temos apenas dispositivos de tela abertos, é fácil descobrir qual é o ativo, pois esta informação é exibida na janela de cada um. Mas quando abrimos um ou mais dispositivos de arquivo, como:
-<​code>​+<​code ​rsplus>
 > png("​figura%02d.png"​) > png("​figura%02d.png"​)
 > pdf("​figura%02d.pdf"​) > pdf("​figura%02d.pdf"​)
 </​code>​ </​code>​
 é fácil se perder. Para que isso não aconteça há as funções ''​dev.list'',​ para listar todos os dispositivos abertos, e ''​dev.cur'',​ que retorna o dispositivo ativo: é fácil se perder. Para que isso não aconteça há as funções ''​dev.list'',​ para listar todos os dispositivos abertos, e ''​dev.cur'',​ que retorna o dispositivo ativo:
-<​code>​+<​code ​rsplus>
 > dev.list() > dev.list()
            ​windows ​           windows png:​figura%02d.png ​               pdf             ​windows ​           windows png:​figura%02d.png ​               pdf 
Linha 477: Linha 480:
 Você fecha um dispositivo com o comando ''​dev.off(which=n)'',​ em que //n// é o número do dispositivo. Se este argumento é omitido, o valor padrão é o dispositivo ativo: Você fecha um dispositivo com o comando ''​dev.off(which=n)'',​ em que //n// é o número do dispositivo. Se este argumento é omitido, o valor padrão é o dispositivo ativo:
  
-<​code>​+<​code ​rsplus>
 > dev.list() > dev.list()
            ​windows ​           windows png:​figura%02d.png ​               pdf             ​windows ​           windows png:​figura%02d.png ​               pdf 
Linha 500: Linha 503:
  
 <box red| Exercício 5> <box red| Exercício 5>
-Crie diferentes gráficos em diferentes dispositivos. Por fim salve-os em jpeg.+Crie diferentes gráficos em diferentes dispositivos. Por fimsalve-os em jpeg.
 </​box>​ </​box>​
  
  
-Para saber mais como salvar gráficos em jpeg use a função ‘’?jpeg’’.+Para saber mais como salvar gráficos em //jpeg// use o comando ''​?jpeg''​.
  
  
  
03_apostila/05a-graficos.1597223092.txt.gz · Última modificação: 2020/08/12 06:04 por 127.0.0.1