[R-br] Plotar duas escalas no eixo x

Rodrigo Muniz uenf.rodrigo em gmail.com
Terça Abril 7 18:28:58 BRT 2015


Olá Eder, tentei uma estratégia semelhante a sua, um pouco menos elegante,
porém a maior dificuldade é que o zero teria de ficar no meio do gráfico e,
para direita teria uma escala que varia de 0 a 0.6, para esquerda de 0 a 5.
No seu exemplo a origem é na esquerda, desta forma todas as barras partem
do mesmo ponto, o que não é desejado.
Segue um exemplo do gráfico que eu gostaria de programar.

Não consegui programar o gráfico como eu gostaria, então como uma solução
bastante grosseira e imediata eu "desenhei" o gráfico, como se segue:
Porém continua a dificuldade em faze-lo de uma outra forma.

#******Criando o rótulo do eixo x
eixox=c("5","4","3","2","1","0", "0.1", "0.2","0.3","0.4","0.5","0.6")
#********Criando a sequensia compativel com o rótulo de x
eixoy=seq(1:12)
#*********Criando o dataframe
eixos=data.frame(eixox, eixoy)

#*********Configurando parametros gráficos, o mgp é o parâmetro mais
importante, pois define
#********as ditâncias dos ticks em relação ao gráfico
par(mar = c(0.5, 10, 0, 0.3), mgp = c(0.5, -0.25, 0),
    bg="gray94", bty="n", cex.axis=0.9, mar = c(4,8, 4, 4), ps=15)

#***********Criando o gráfico de barras em branco com os rótulos de x
desejado,
#a escala de x é a relação entre número de rótulos dividido por 10
barplot(with(eixos,(tapply(eixoy,eixox,mean))),axes=FALSE,
        names.arg=as.factor(c("5","4","3","2","1","0",
                "0.1", "0.2","0.3","0.4","0.5","0.6")), col="white",
border="white",
        ylab="1985-1991       1991-1999",
        xlab="Interval change Area (percent of map)             Anual
change Area (percent of map)")
#*****Colocando as barras verticais sobre os rótulos de x, a sequência é
determinada pelo
#número de rótulos dividido por 10
abline(v=c(0.7,1.9,3.1,4.3,5.5,6.7,7.9,9.1,10.3,11.5,12.7,13.9), lwd=0.9,
col="gray70")

#****Criando as barras horizontais
rect(2.5,1, 13.5,4, col="gray", border=FALSE)
rect(1.3,7, 13,10, col="gray", border=FALSE)

#****Criando as linhas verticais
abline(v=6.7, lwd=2)
abline(v=13.1, lwd=1, col="red", lty=2)

#******Criando as setas
arrows(13.2, 10.5,15, 10.5, cex=0.5, col="red", length=0.1)
arrows(13, 10.5,11.6, 10.5, cex=0.5, col="red", length=0.1)

#Definido o local do texto. Obs: os comando devem ser executados um de cada
vez.
text(locator(1), "Slow   Fast")
text(locator(1), "0.54 = Uniform Intensity")
[image: Inline image 1]

On Tue, Apr 7, 2015 at 4:09 PM, Éder Comunello <comunello.eder em gmail.com>
wrote:

> Olá, novamente!
>
> Mudei o código anterior, porque tinha um problema conceitual acerca do
> máximo e mínimos considerados.
>
>
> ### <code r>
> aRange <- c(-10,0)
> bRange <- c(100000,200000)
>
> set.seed(765)
> a <- runif(5, -10, -1)
> b <- runif(5, 110000, 200000)
>
> a1 <- t(scale(a-aRange[1], center=F, scale=diff(aRange)))
> b1 <- t(scale(b-bRange[1], center=F, scale=diff(bRange)))
>
> plot1 <- barplot(rbind(a1, b1), col=c(2,3), horiz=T, beside=T, xlim=c(0,1),
>                  names.arg=LETTERS[1:5], axes=F)
> axis(1, cex.axis=.75, seq(0,1,len=2), c(-10,0))
> axis(3, cex.axis=.75, seq(0,1,len=2), c("100.000", "200.000"))
> abline(v=c(.25,.5,.75), lty=2)
> text(x=a1-.025, y=plot1[1,], labels=round(a,2), cex=.6, col=1, xpd=TRUE)
> text(x=b1-.025, y=plot1[2,], labels=round(b),   cex=.6, col=1, xpd=TRUE)
> ### </code>
>
> [image: Imagem inline 1]
>
>
> _______________________________________________
> R-br mailing list
> R-br em listas.c3sl.ufpr.br
> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça
> código mínimo reproduzível.
>



-- 
*Rodrigo A. Muniz*
Eng. Agrônomo. Ms Produção Vegetal (UENF)
Doutor em Ciências (ESALQ/USP)
E-mail - muniz.ra em usp.br
Cel (19) 98300-4333 (Pessoal)
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20150407/e45bac53/attachment-0001.html>
-------------- Próxima Parte ----------
Um anexo não-texto foi limpo...
Nome: image.png
Tipo: image/png
Tamanho: 27131 bytes
Descrição: não disponível
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20150407/e45bac53/attachment-0002.png>
-------------- Próxima Parte ----------
Um anexo não-texto foi limpo...
Nome: image.png
Tipo: image/png
Tamanho: 157779 bytes
Descrição: não disponível
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20150407/e45bac53/attachment-0003.png>


Mais detalhes sobre a lista de discussão R-br