Ferramentas do usuário

Ferramentas do site


cursos:ecor:02_tutoriais:tutorial5b:start

Procedimento para a construção de gráficos no R

Nesse tutorial apresentamos um procedimento para a construção de gráficos no R, incluindo cada elemento separadamente. O objetivo é mostrar como é possível editar e incluir elementos gráficos da forma que desejar. Utilizaremos para isso a modificação de um gráfico publicado por uma de nossas primeiras alunas 1).

Para simplificar, vamos fazer apenas um dos painéis acima.

Criando o layout

A função layout cria paineis de diferentes tamanhos no dispositivo gráfico. No nosso caso vamos criar duas colunas, a direita com 80% da largura total. O primeiro argumento da função é uma matriz com o sequência com que os painéis irão ser desenhados

layout(matrix(c(1,2),ncol=2, nrow=1), width=c(8,2))
layout.show(2) # mostra o layout dos dois paineis

Iniciando o primeiro painel

Primeiro ajustamos o parâmetros gráficos do primeiro painel (no caso a margem), em seguida construímos o espaço de coordenadas sem nenhum elemento, apenas algumas legendas;

par (mar=c(5,4,4,3.5))#controla tamanhos das margens
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)", ylab="", main="SURVIVAL")

Linhas guias e eixo

abline (v=0, lty=2) ## desenha linhas de regressão (a+bx) ou v=vertical, h=horizontal
abline (h=c(3,6))
axis(side=4, at=c(1,2,4,5,7), labels=c("adult (2)", "young (28)", "temperate (28)", "tropical (2)", "overall (30)"),las=2 ) # desenha o eixo

Inserindo os dados

#ADULT

points (x=-0.577,y=1, pch=19) # pch: tipo de simbolo
points (x=-1.2,y=1, pch="|", cex=1.2)
points (x= 0.05,y=1, pch="|", cex=1.2)
segments(x0=-1.2, y0=1, x1= 0.05, y1=1) # um segmento

#YOUNG

points (x=0.87,y=2, pch=19)
points (x=-0.05,y=2, pch="|")
points (x=1.1,y=2, pch="|")
segments(x=1.1, y0=2, x1=-0.05, y1=2)

#TEMPERATE

points (x=0.01,y=4, pch=19)
points (x=-0.07,y=4, pch="|")
points (x=0.5,y=4, pch="|")
segments(x=-0.07, y0=4, x1=0.5, y1=4)

#TROPICAL

points (x=1.06,y=5, pch=19)
points (x=0.946,y=5, pch="|")
points (x=2.073,y=5, pch="|")
segments(x=2.073, y0=5, x1=0.946, y1=5)

#OVERALL

points (x=0.457,y=7, pch=19)
points (x=0.025,y=7, pch="|")
points (x=0.847,y=7, pch="|")
segments(x=0.025, y0=7, x1=0.847, y1=7)

Segundo painel

Criamos esse painel apenas para acrescentar legenda

par (mar=c(5,4,4,2.9))#controla tamanhos das margens
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") # bty: tipo de caixa no limite do gráfico; xaxt: tipo de eixo x 
points(x=0.5, y=0.4, pch="-")
points (x=0.5, y=2.6, pch="-")
segments(x0=0.5, y0=0.4, x1=0.5, y1=2.6)
axis(side=4, at=1.5, labels= "Target life stage", lwd.ticks=0)
points(x=0.5, y=3.4, pch="-")
points (x=0.5, y=5.6, pch="-")
segments(x0=0.5, y0=3.4, x1=0.5, y1=5.6)
axis(side=4, at=4.5, labels= "Geographic region", lwd.ticks=0)

.

Salvando o gráfico

Para salvar o gráfico em um arquivo, pode-se utilizar a função savePlot. Para ter mais controle da qualidade gráfica é necessário usar um dispositivo de arquivo (funções tiff, jpeg, png, por exemplo).

savePlot("metaGraf.png", type= "png")

Elementos de mesmo tipo podem ser inseridos conjuntamente sem a necessidade de utilizar um comando para cada elemento. Para isso é preciso construir vetores com os valores concatenados nas posições corretas. Veja abaixo um código simplificado do gráfico.

Código simplificado

layout (matrix(c(1,2),ncol=2, nrow=1), width=c(8,2))
par (mar=c(5,4,4,3.5))#controla tamanhos das margens
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)", ylab="", main="SURVIVAL")
abline (v=0, lty=2) ## desenha linhas de regressão (a+bx) ou v=vertical, h=horizontal
abline (h=c(3,6))
axis(side=4, at=c(1,2,4,5,7), labels=c("adult (2)", "young (28)", "temperate (28)", "tropical (2)", "overall (30)"),las=2 ) # desenha o eixo
points (x=c(-0.577, 0.87, 0.01, 1.06,0.457), y=c(1,2, 4, 5, 7), pch=19 ) #medias
points (x=c(-1.2, 0.05, 0.05, 1.1, -0.07, 0.5, .946,2.073, 0.025,0.847), y=rep(c(1,2, 4, 5, 7),each=2), pch= "|" )# limites do IC 95% (pch= tipo de simbolo)
segments(x=c(-1.2,  0.05, -0.07, .946, 0.025), y0=c(1,2, 4, 5, 7), x1=c( 0.05, 1.1, 0.5,2.073,0.847), y1=c(1,2, 4, 5, 7)) # os segmentos do IC
#SEGUNDA PARTE
par (mar=c(5,4,4,2.9))#controla tamanhos das margens
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") # bty: tipo de caixa no limite do gráfico; xaxt: tipo de eixo x 
points(x=rep(c(0.5),4), y=c(0.4, 2.6, 3.4, 5.6), pch="-")
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=4.5, labels= "Geographic region", lwd.ticks=0)
#para salvar em JPEG ou outras extensões
savePlot("metagraf.png", type="png")
1)
Camila Castanho
cursos/ecor/02_tutoriais/tutorial5b/start.txt · Última modificação: 2020/07/27 18:49 (edição externa)