Ferramentas do usuário

Ferramentas do site


03_apostila:10-graficos02

Diferenças

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

Link para esta página de comparações

Ambos lados da revisão anterior Revisão anterior
Próxima revisão
Revisão anterior
03_apostila:10-graficos02 [2023/08/25 16:20]
127.0.0.1 edição externa
03_apostila:10-graficos02 [2023/08/25 17:18] (atual)
Linha 9: Linha 9:
  
 \\ \\
-Existem ​vários ​bibliotecas publicadas no repositório do R para auxiliá-los na construção de gráficos((veja o taskview [[http://​cran.r-project.org/​web/​views/​Graphics.html]] )). Esses pacotes usam um dos sistemas de maquinaria básica do R para a construção gráfica, os pacotes: //** graphics **// ou //​**grid**//​. Por exemplo, os pacotes //lattice// e //ggplot2// usam o sistema **//​grid//​**,​ enquanto o pacote //maps// o sistema **//​graphics//​**. Nesse capítulo utilizaremos apenas as funções básicas já instaladas e carregadas por padrão na sessão R, providas pelo sistema **//​graphics//​**,​ em outro capítulos abordaremos o sistema //​**grid**//​.+Existem ​várias ​bibliotecas publicadas no repositório do R para auxiliá-los na construção de gráficos((veja o taskview [[http://​cran.r-project.org/​web/​views/​Graphics.html]] )). Esses pacotes usam um dos sistemas de maquinaria básica do R para a construção gráfica, os pacotes: //** graphics **// ou //​**grid**//​. Por exemplo, os pacotes //lattice// e //ggplot2// usam o sistema **//​grid//​**,​ enquanto o pacote //maps// o sistema **//​graphics//​**. Nesse capítulo utilizaremos apenas as funções básicas já instaladas e carregadas por padrão na sessão R, providas pelo sistema **//​graphics//​**,​ em outro capítulos abordaremos o sistema //​**grid**//​.
 Nesse capítulo utilizaremos um exemplo para ilustrar um procedimento básico para a elaboração de gráficos mais complexos. ​ Nesse capítulo utilizaremos um exemplo para ilustrar um procedimento básico para a elaboração de gráficos mais complexos. ​
  
Linha 15: Linha 15:
  
 A parte mais importante e difícil da elaboração de uma boa representação gráfica está na sua concepção,​ que precede o procedimento que iremos descrever nesse capítulo. Partiremos da premissa que já foi decidido qual o melhor gráfico e como os elementos que o compõem estarão distribuídos e organizados. Uma boa dica é construir um esquema do gráfico a mão antes de iniciar o código para montá-lo no R.  ​ A parte mais importante e difícil da elaboração de uma boa representação gráfica está na sua concepção,​ que precede o procedimento que iremos descrever nesse capítulo. Partiremos da premissa que já foi decidido qual o melhor gráfico e como os elementos que o compõem estarão distribuídos e organizados. Uma boa dica é construir um esquema do gráfico a mão antes de iniciar o código para montá-lo no R.  ​
-No nosso caso, desenhamos, em um guardanapo de papel na mesa de um bar, um esboço do gráfico que iremos construir nesse capítulo. Os dados provem ​do resultado de uma metanálise ​que já havíamos explorados usando técnicas que apresentamos no capitulo ​de [[03_apostila:​05-exploratoria |Análise Exploratória de Dados]]. ​    ​+No nosso caso, desenhamos, em um guardanapo de papel na mesa de um bar, um esboço do gráfico que iremos construir nesse capítulo. ​ 
 + 
 +/* 
 +Os dados provém ​do resultado de uma meta-análise ​que já havíamos explorados usando técnicas que apresentamos no capítulo ​de [[03_apostila:​05-exploratoria |Análise Exploratória de Dados]]. ​ 
 +*/
  
 <WRAP center round box 60%> <WRAP center round box 60%>
Linha 22: Linha 26:
  
  
-O gráfico que esboçamos, apesar de aparentemente simples, apresenta desafios na sua construção e será utilizado para apresentar o procedimento padrão que utilizamos para a elaboração de gráficos mais avançado, baseado apenas nas funções básicas do R.  ​+O gráfico que esboçamos, apesar de aparentemente simples, apresenta desafios na sua construção e será utilizado para apresentar o procedimento padrão que utilizamos para a elaboração de gráficos mais avançados, baseado apenas nas funções básicas do R.  ​
  
 ==== Layout ==== ==== Layout ====
-A primeira parte na construção do gráfico é definir seu layout. Aprendemos no capítulo introdutório de [[03_apostila:​05a-graficos|gráficos]] que podemos dividir a janela gráfica modificando os parâmetros //mfrow// ou //mfcol// do dispositivo gráfico, ​ através da função ''​par()''​. Uma forma mais versátil e flexível de dividir a janela gráfica é utilizar a função ''​layout()''​. ​ O primeiro argumento dessa função é uma //​matrix// ​com o número de linhas e colunas correspondente às divisões do dispositivo. Os valores nessa matrix ​correspondem à ordem que cada área do dispositivo será plotada.+A primeira parte na construção do gráfico é definir seu layout. Aprendemos no capítulo introdutório de [[03_apostila:​05a-graficos|gráficos]] que podemos dividir a janela gráfica modificando os parâmetros //mfrow// ou //mfcol// do dispositivo gráfico, ​ através da função ''​par()''​. Uma forma mais versátil e flexível de dividir a janela gráfica é utilizar a função ''​layout()''​. ​ O primeiro argumento dessa função é uma matriz ​com o número de linhas e colunas correspondente às divisões do dispositivo. Os valores nessa matriz ​correspondem à ordem que cada área do dispositivo será plotada.
 Veja um exemplo dividindo o dispositivo gráfico em nove áreas: Veja um exemplo dividindo o dispositivo gráfico em nove áreas:
 <code rsplus> <code rsplus>
Linha 41: Linha 45:
 </​code>​ </​code>​
  
-Note que os valores referentes ao tamanho das colunas ou linhas não necessita somar umsignificam apenas ​proporção relativa. ​+Note que os valores referentes ao tamanho das colunas ou linhas não necessita somar um; eles significam apenas ​uma proporção relativa. ​
  
 <WRAP center round box red 60%> <WRAP center round box red 60%>
Linha 59: Linha 63:
  
 ==== Região Principal ==== ==== Região Principal ====
-Antes de plotar algo na primeira área do gráfico, vamos primeira ​ajustar as bordas usando a função ''​par()''​ e seu argumento ''​mar''​. Em seguida iniciamos o gráfico sem nenhum valor, apenas definindo as coordenadas ​do região gráfica. Lembre-se, queremos colocar cada elemento do gráfico separadamente e ter controle total sobre o que será desenhado. Os valores do eixo //x// correspondem ao intervalo dos dados e do eixo //y// foi definido pelo número de elementos que serão desenhados e o espaçamento entre eles. Nesse último caso a escala é arbitrária. Para definir tanto o espaçamento das bordas quanto a escala de //y// utilizamos um processo iterativo de ajuste, plotando o gráfico e reajustando os valores.+Antes de plotar algo na primeira área do gráfico, vamos primeiro ​ajustar as bordas usando a função ''​par()''​ e seu argumento ''​mar''​. Em seguida iniciamos o gráfico sem nenhum valor, apenas definindo as coordenadas ​da região gráfica. Lembre-se, queremos colocar cada elemento do gráfico separadamente e ter controle total sobre o que será desenhado. Os valores do eixo //x// correspondem ao intervalo dos dados e do eixo //y// foi definido pelo número de elementos que serão desenhados e o espaçamento entre eles. Nesse último caso a escala é arbitrária. Para definir tanto o espaçamento das bordas quanto a escala de //y// utilizamos um processo iterativo de ajuste, plotando o gráfico e reajustando os valores.
  
 <code rsplus> <code rsplus>
-par(mar=c(5,​4,4,3.5))+par(mar=c(5,​1,4,5))
 plot(x=NULL,​y=NULL,​ xlim=c(-1.5,​2.5),​ ylim=c(0.5,​7.5),​ plot(x=NULL,​y=NULL,​ xlim=c(-1.5,​2.5),​ ylim=c(0.5,​7.5),​
           type="​n",​ yaxt="​n",​ xlab="​Effect Size (lnOR)", ​           type="​n",​ yaxt="​n",​ xlab="​Effect Size (lnOR)", ​
Linha 78: Linha 82:
 </​code>​ </​code>​
  
-Agora vamos colocar os pontos e as barras referentes aos valores médios e intervalo de confiança usando a função ''​points()''​ e  os símbolos ''​pch=19''​ (circulo preenchido) e ''​pch="​_"''​ para a barra ((veja o help e o exemplo da função points para os códigos dos símbolos)). Em seguida desenhamos as linhas usando a função ''​segments()''​ que tem como argumento as coordenadas do inicio ​(//x0// e //y0//) e do final da linha (//x1// e //y1//). Note que poderíamos desenhar isoladamente cada ponto e cada segmento, mas fazemos todos juntos concatenando as coordenadas em vetores em que as posições são equivalentes.+Agora vamos colocar os pontos e as barras referentes aos valores médios e intervalo de confiança usando a função ''​points()''​ e  os símbolos ''​pch=19''​ (circulo preenchido) e ''​pch="​_"''​ para a barra ((veja o help e o exemplo da função points para os códigos dos símbolos)). Em seguida desenhamos as linhas usando a função ''​segments()''​ que tem como argumento as coordenadas do início ​(//x0// e //y0//) e do final da linha (//x1// e //y1//). Note que poderíamos desenhar isoladamente cada ponto e cada segmento, mas fazemos todos juntos concatenando as coordenadas em vetores em que as posições são equivalentes.
  
 <code rsplus> <code rsplus>
Linha 99: Linha 103:
  
 ==== Segunda região gráfica ==== ==== Segunda região gráfica ====
-Vamos inciar ​a segunda região gráfica da mesma maneira que a primeira, ajustando as margens e definindo as coordenadas cartesianas da região que nesse caso são totalmente arbitrárias,​ mas devem ter correspondência com o eixo //y// da primeira área gráfica. Note os argumentos do ''​plot()''​ nesse caso são necessários para que nada seja desenhado na região, e estamos apenas definindo a escala das coordenadas //x// e //y//.+Vamos iniciar ​a segunda região gráfica da mesma maneira que a primeira, ajustando as margens e definindo as coordenadas cartesianas da região que nesse caso são totalmente arbitrárias,​ mas devem ter correspondência com o eixo //y// da primeira área gráfica. Note os argumentos do ''​plot()''​ nesse caso são necessários para que nada seja desenhado na região, e estamos apenas definindo a escala das coordenadas //x// e //y//.
  
 <code rsplus> <code rsplus>
-par (mar=c(5,4,​4,​2.9)) ​+par (mar=c(5,2,​4,​2.9)) ​
 plot(x=NULL,​y=NULL,​ xlim=c(0,​2),​ ylim=c(0.5,​7.5),​type="​n", ​ plot(x=NULL,​y=NULL,​ xlim=c(0,​2),​ ylim=c(0.5,​7.5),​type="​n", ​
      ​xaxt="​n",​ yaxt="​n",​xlab="",​ ylab="",​ bty="​n"​) ​      ​xaxt="​n",​ yaxt="​n",​xlab="",​ ylab="",​ bty="​n"​) ​
Linha 119: Linha 123:
 segments(x0=c(0.5,​ 0.5), y0=c(0.4, 3.4), x1=c(0.5,​0.5),​ y1=c(2.6, 5.6)) segments(x0=c(0.5,​ 0.5), y0=c(0.4, 3.4), x1=c(0.5,​0.5),​ y1=c(2.6, 5.6))
 axis(side=4,​ at=1.5, labels= "​Target life stage",​ lwd.ticks=0) axis(side=4,​ at=1.5, labels= "​Target life stage",​ lwd.ticks=0)
-axis(side=4,​ at=4.5, labels= "​Geographic region",​ lwd.ticks=0)+axis(side=4,​ at=4.75, labels= "​Geographic region",​ lwd.ticks=0)
 </​code>​ </​code>​
  
Linha 137: Linha 141:
   * abra o dispositivo usando a função correspondente,​ nomeando o arquivo que será construído e definindo os parâmetros de tamanho da imagem e unidade a ser utilizada. Por exemplo: ''​width = 480, height = 480, units = "​px"''​   * abra o dispositivo usando a função correspondente,​ nomeando o arquivo que será construído e definindo os parâmetros de tamanho da imagem e unidade a ser utilizada. Por exemplo: ''​width = 480, height = 480, units = "​px"''​
   * faça o gráfico utilizando o código construído anteriormente no dispositivo de janela. Note que não irá aparecer o gráfico pois ele está sendo montado diretamente no arquivo nomeado   * faça o gráfico utilizando o código construído anteriormente no dispositivo de janela. Note que não irá aparecer o gráfico pois ele está sendo montado diretamente no arquivo nomeado
-  * ao finalizar o gráfico, feche o dispositivo gráfico que abriu utilizando a função ''​dev.off()''​. Nesse momento o arquivo ​fechado e gravado no seu diretório de trabalho ''​getwd()''​. ​+  * ao finalizar o gráfico, feche o dispositivo gráfico que abriu utilizando a função ''​dev.off()''​. Nesse momento o arquivo ​é fechado e gravado no seu diretório de trabalho ''​getwd()''​. ​
 Veja exemplo abaixo para a construção de um arquivo //png// com fundo transparente: ​ Veja exemplo abaixo para a construção de um arquivo //png// com fundo transparente: ​
 <code rsplus> <code rsplus>
Linha 144: Linha 148:
       bg = "​transparent"​)       bg = "​transparent"​)
       ​       ​
-      ...# inicio ​do código do gráfico+      ...# início ​do código do gráfico
       ...       ...
       ...# fim do código do gráfico ​       ...# fim do código do gráfico ​
03_apostila/10-graficos02.1692991229.txt.gz · Última modificação: 2023/08/25 16:20 por 127.0.0.1