Gráfico com escala logarítmica em notação de potência

June 9, 2011
By

This post was kindly contributed by Ridículas - go there to comment and to read the full post.

Gráfico (verde) em escala logarítmica com notação de potência.

O pacote latticeExtra traz funções que permitem aprimorar as funções gráficas disponíveis no pacote lattice, ambos desenvolvidos por Deepayan Sarkar. Recentemente precisei confeccionar gráficos em escala logarítmica para os quais eu tinha um enorme roteiro de funções construídas à custo de muita dedicação e tempo. Felizmente, hoje não preciso mais reaprender as implementações que fiz porque a latticeExtra fornece funções para escrever as escalas dos eixos em notação de potência.

As funções disponibilizadas são: xscale.components.logpower, xscale.components.fractions, xscale.components.log10ticks, xscale.components.log10.3 e
xscale.components.subticks, todas elas na versão para o eixo y também. Essas funções permitem, por exemplo, eixos escritos com potência e fração e os traços marcas (tick) para datas considerando o diferente número de dias de cada mês. Tudo isso você pode conferir rodando os exemplos das funções. Até a próxima ridícula.

#-----------------------------------------------------------------------------

require(lattice)

data(Earthquake, package="MEMSS")

p1 <-
  xyplot(accel~distance, data=Earthquake, pch=19, lwd=2,
         prepanel=prepanel.loess, col="blue",
         type=c("p", "g", "smooth"), scales=list(log=2),
         xlab="Distância do epicentro (km)",
         ylab="Aceleração máxima horizontal (g)")

require(latticeExtra)

p2 <-
  xyplot(accel~distance, data=Earthquake, pch=19, lwd=2,
         prepanel=prepanel.loess, col="forestgreen",
         type=c("p", "g", "smooth"), scales=list(log=2),
         xlab="Distância do epicentro (km)",
         ylab="Aceleração máxima horizontal (g)",
         xscale.components=xscale.components.logpower,
         yscale.components=yscale.components.logpower)

#png("f011.png", w=500, h=300)
print(p1, split=c(1,1,2,1), more=TRUE)
print(p2, split=c(2,1,2,1))
#dev.off()

#-----------------------------------------------------------------------------

Tags: , , , , , , , , ,

Comments are closed.