[R-br] barplot + lines com dois eixos Y

Marcelo Claro de Souza marcelo_claro em yahoo.com.br
Quinta Agosto 2 01:03:34 BRT 2012


Pode crer..hehe
Eu tb não me atentei a esse detalhe.
Vou mandar um cc p a lista :-)
Abraço

 
Marcelo Claro de Souza

Biologist, PhD student in Plant Biology
Institute of Bioscience - UNESP, Brazil

 


________________________________
 De: Augusto Ribas <ribas.aca em gmail.com>
Para: Marcelo Claro de Souza <marcelo_claro em yahoo.com.br> 
Enviadas: Quarta-feira, 1 de Agosto de 2012 21:09
Assunto: Re: [R-br] barplot + lines com dois eixos Y
 
Nossa agora que vi, a gente tava trocando e-mail pessoais.
Tava respondendo e nem vi.
Era bom deixa as resposta la na lista, pra aparecer no nabble, ai se
alguem procurar via google ou sei la ja acha como fazer.
Eu sempre acho muitas soluções assim :)

Em 31 de julho de 2012 23:09, Marcelo Claro de Souza
<marcelo_claro em yahoo.com.br> escreveu:
> Olá Augusto.
> Agradeço de coração todas as dicas que vc me deu.
> Finalmente deu certo a figura que eu queria fazer.
>
> Abraço.
>
> Marcelo Claro de Souza
> Biologist, PhD student in Plant Biology
> Institute of Bioscience - UNESP, Brazil
>
>
> ________________________________
> De: Augusto Ribas <ribas.aca em gmail.com>
> Para: Marcelo Claro de Souza <marcelo_claro em yahoo.com.br>
> Enviadas: Terça-feira, 31 de Julho de 2012 20:26
>
> Assunto: Re: [R-br] barplot + lines com dois eixos Y
>
> x=c(seq(1:12))
> rainfall=c(17.54,7.68,9.87,5.45,0.15,1.61,0.01,0.33,1.53,4.85,3.77,9.35)##barras
> tmax=c(30.21,30.71,27.23,28.23,25.19,24.39,26.59,28.39,29.77,28.49,28.61,29.79)##linhas
> tmin=c(16.82,16.36,15.91,15.8,11.57,9.07,13.07,12.65,12.98,15.47,16.21,17.26)##linhas
> tmed=c(23.51,23.53,21.57,22.02,18.38,16.73,19.83,20.52,21.38,21.98,22.41,23.53)##linhas
>
>
> #o que vc vai ter que  fazer é mudar as margens
> #vc faz isso com um argumento dentro do par, o argumento mar
> #basicamente é a distancia das coisas assim: c(bottom, left, top, right)
> #os valores padrao são:  c(5, 4, 4, 2) + 0.1., so subir o 2 pra mais
> linhas pra caber o texto
> #da ?par e da uma olhada na documentação
>
> par(mar=c(5, 4, 4, 5) + 0.1)
> barras<-barplot(rainfall,axes=F,ylab="Nome do eixo esquerdo aqui")
> axis(2)
> axis(1,col="red")
>
> par(new=TRUE,mar=c(5, 4, 4, 5) + 0.1)
> plot(tmed~barras,type="b",ylim=c(5,35),xlim=c(0.2,14.4),frame.plot=F,axes=F,ylab=NA)
> #note que eu coloquei ylab=NA aqui em cima pq se vc escrever algo aqui
> vai sobrepor
> #com o que ja deixou de leganda no barplot()
> points(tmin~barras,type="b",lty=2)
> points(tmax~barras,type="b",lty=2)
> axis(4)
> #vc vai usar o comando mtext, que é pra escrever texto fora da area do plot.
> #de ?mtext e veja as muitas possibilidades
> #basicamente eu falei o lado no side, e a distancia do plot, line.
> mtext(text="Nome do eixo direito aqui", side = 4,line = 3)
> axis(1)
>
> #Mas lembre-se que existem mil jeitos de fazer as mesma coisa
> #Talvez essa não seja a melhor forma, mas espero que possa resolver
> seus problemas
>
> Em 31 de julho de 2012 08:50, Marcelo Claro de Souza
> <marcelo_claro em yahoo.com.br> escreveu:
>> Augusto,
>> Muito obrigado. Vc me ajudou muito.
>> Uma última dúvida.
>> Para alterar a legenda do eixo Y do lado esquerdo eu uso o comando ylab,
>> mas
>> o mesmo não funciona para o segundo eixo Y. Qual comando devo usar para
>> inserir a legenda do lado direito?
>> Abraço.
>>
>> Marcelo Claro de Souza
>> Biologist, PhD student in Plant Biology
>> Institute of Bioscience - UNESP, Brazil
>>
>>
>> ________________________________
>> De: Augusto Ribas <ribas.aca em gmail.com>
>> Para: Marcelo Claro de Souza <marcelo_claro em yahoo.com.br>
>> Enviadas: Segunda-feira, 30 de Julho de 2012 21:07
>>
>> Assunto: Re: [R-br] barplot + lines com dois eixos Y
>>
>> So mais uma coisa, note que os eixos vão ficar bagunçados:
>>
>> barras<-barplot(rainfall,axes=F)
>> axis(2)
>> #vou colocar aqui em vermelho o eixo x do grafico de barras pra gente
>> ver como fica em relação ao outro
>> axis(1,col="red")
>> par(new=TRUE)
>>
>> plot(tmed~barras,type="b",ylim=c(5,35),frame.plot=F,axes=F)
>> points(tmin~barras,type="b",lty=2)
>> points(tmax~barras,type="b",lty=2)
>> axis(4)
>> axis(1)
>>
>> A bolinha era pra ficar no centro da barra, mas não tava ficando.
>> Isso por causa da escala de x, que do plot ficou diferente do barblot
>> pra dar certo, bolinhas no meio da barrinha.
>> dai tem que arrumar o limite do eixo x no plot:
>>
>> #denovo
>> barras<-barplot(rainfall,axes=F)
>> axis(2)
>> #denovo vermelho pra gente ver
>> axis(1,col="red")
>> par(new=TRUE)
>>
>>
>>
>> plot(tmed~barras,type="b",ylim=c(5,35),xlim=c(0.2,14.4),frame.plot=F,axes=F)
>> points(tmin~barras,type="b",lty=2)
>> points(tmax~barras,type="b",lty=2)
>> axis(4)
>> #agora nao ficou bagunçado
>> axis(1)
>>
>> #isso por causa do jeito que o barplot constroi o eixo X é diferente do
>> plot
>> #mas eu não entendo perfeitamente a diferença pra explicar
>> #espero estar mais ajudando que atrapalhando agora.
>>
>>
>> Em 30 de julho de 2012 19:28, Augusto Ribas <ribas.aca em gmail.com>
>> escreveu:
>>> Humm
>>>
>>> Veja se isso te ajuda:
>>>
>>> #Vai faze o grafico de barras
>>> barplot(rainfall,axes=F)
>>> #o eixo dele
>>> axis(2)
>>>
>>> #vai recomeça o plot, na mesma janela
>>> par(new=TRUE)
>>>
>>> #um plot normal de linha
>>> plot(tmed~barras,type="b",ylim=c(5,35),frame.plot=F,axes=F)
>>> #as outras 2 linhas
>>> points(tmin~barras,type="b",lty=2)
>>> points(tmax~barras,type="b",lty=2)
>>> #vai fazer o eixo do outro lado (direito)
>>> axis(4)
>>>
>>> #note que eu fiz os graficos sem eixos, e os adicionei a parte com o
>>> comando axis,
>>> #com o axis vc pode faze o eixo da forma que preferir.
>>> #ai da pra controla cada grafico independente quanto a cores, tamanhos
>>> eixos tudo
>>> #se quiser mudar a escala, de uma olhada no comando ?scale(), mas acho
>>> que talvez a solução acima seja mais
>>> #o que vc deseja
>>>
>>> Em 30 de julho de 2012 17:27, Marcelo Claro de Souza
>>> <marcelo_claro em yahoo.com.br> escreveu:
>>>> Olá Augusto,
>>>> Muito obrigado pela ajuda.
>>>> Eu preciso que os dois eixos Y sejam independentes (escalas diferentes),
>>>> de
>>>> modo que as linhas fiquem sobre as barras.
>>>> Tem como fazer isso?
>>>> Muito obrigado.
>>>> Abraço.
>>>>
>>>>
>>>> Marcelo Claro de Souza
>>>> Biologist, PhD student in Plant Biology
>>>> Institute of Bioscience - UNESP, Brazil
>>>>
>>>>
>>>> ________________________________
>>>> De: Augusto Ribas <ribas.aca em gmail.com>
>>>> Para: r-br em listas.c3sl.ufpr.br; Marcelo Claro de Souza
>>>> <marcelo_claro em yahoo.com.br>
>>>> Enviadas: Segunda-feira, 30 de Julho de 2012 17:40
>>>> Assunto: Re: [R-br] barplot + lines com dois eixos Y
>>>>
>>>> Bom, de inicio acredito que vai ser algo assim:
>>>>
>>>> barras<-barplot(rainfall,ylim=c(0,35))
>>>> points(tmed~barras,type="l")
>>>> points(tmin~barras,type="l",lty=2)
>>>> points(tmax~barras,type="l",lty=2)
>>>> axis(4)
>>>>
>>>> #vc vai salvar a posição das barras no vertor barras
>>>> #ai depois note que vc esta fazendo as linhas
>>>> # e por ultimo use o comando axes pra fazer o segundo ou mais eixos,
>>>> se quiser algo no eixo X tb
>>>> #leia a documentação pra deixa do jeito que gostar ?axis
>>>>
>>>>
>>>> #agora não sei se entra nas suas necessidades mas
>>>> #de uma olhada nesse pacote e nos graficos que da pra fazer com ele
>>>> #é exatamente o tipo de dado que vc ilustrou
>>>> #por exemplo:
>>>>
>>>> install.packages("climatol")
>>>> require(climatol)
>>>>
>>>> data(datcli)
>>>> #exemplo dele
>>>> datcli
>>>> #seus dados
>>>> t(data.frame(rainfall,tmax,tmin,tmed))
>>>>
>>>> #exemplo do comando
>>>> diagwl(datcli,est="Example station",alt=100,per="1961-90",mlab="en")
>>>> #seus dados de exemplo
>>>> diagwl(t(data.frame(rainfall,tmax,tmin,tmed)),est="Example
>>>> station",alt=100,per="1961-90",mlab="en")
>>>>
>>>>
>>>> Em 30 de julho de 2012 15:18, Marcelo Claro de Souza
>>>> <marcelo_claro em yahoo.com.br> escreveu:
>>>>> Preciso plotar um gráfico de variáveis climáticas sendo o eixo Y
>>>>> esquerdo
>>>>> referente à precipitação e o eixo Y direito referente às temperaturas
>>>>> min,
>>>>> med e max.
>>>>> A precipitação deve ser apresentada em barras e as temperaturas em
>>>>> linhas.
>>>>> Como posso fazer isso?
>>>>>
>>>>> x=c(seq(1:12))
>>>>>
>>>>>
>>>>>
>>>>> rainfall=c(17.54,7.68,9.87,5.45,0.15,1.61,0.01,0.33,1.53,4.85,3.77,9.35)##barras
>>>>>
>>>>>
>>>>>
>>>>> tmax=c(30.21,30.71,27.23,28.23,25.19,24.39,26.59,28.39,29.77,28.49,28.61,29.79)##linhas
>>>>>
>>>>>
>>>>>
>>>>> tmin=c(16.82,16.36,15.91,15.8,11.57,9.07,13.07,12.65,12.98,15.47,16.21,17.26)##linhas
>>>>>
>>>>>
>>>>>
>>>>> tmed=c(23.51,23.53,21.57,22.02,18.38,16.73,19.83,20.52,21.38,21.98,22.41,23.53)##linhas
>>>>>
>>>>> Muito obrigado pela ajuda.
>>>>> Abraço.
>>>>>
>>>>> Marcelo Claro de Souza
>>>>> Biologist, PhD student in Plant Biology
>>>>> Institute of Bioscience - UNESP, Brazil
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> 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.
>>>>
>>>>
>>>>
>>>> --
>>>> Grato
>>>> Augusto C. A. Ribas
>>>>
>>>> Site Pessoal: http://augustoribas.heliohost.org
>>>> Lattes: http://lattes.cnpq.br/7355685961127056
>>>>
>>>>
>>>
>>>
>>>
>>> --
>>> Grato
>>> Augusto C. A. Ribas
>>>
>>> Site Pessoal: http://augustoribas.heliohost.org
>>> Lattes: http://lattes.cnpq.br/7355685961127056
>>
>>
>>
>> --
>> Grato
>> Augusto C. A. Ribas
>>
>> Site Pessoal: http://augustoribas.heliohost.org
>> Lattes: http://lattes.cnpq.br/7355685961127056
>>
>>
>
>
>
> --
> Grato
> Augusto C. A. Ribas
>
> Site Pessoal: http://augustoribas.heliohost.org
> Lattes: http://lattes.cnpq.br/7355685961127056
>
>



-- 
Grato
Augusto C. A. Ribas

Site Pessoal: http://augustoribas.heliohost.org
Lattes: http://lattes.cnpq.br/7355685961127056
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20120801/72f98bbc/attachment.html>


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