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

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@gmail.com> Para: Marcelo Claro de Souza <marcelo_claro@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@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@gmail.com> Para: Marcelo Claro de Souza <marcelo_claro@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@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@gmail.com> Para: Marcelo Claro de Souza <marcelo_claro@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@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@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@gmail.com> Para: r-br@listas.c3sl.ufpr.br; Marcelo Claro de Souza <marcelo_claro@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@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@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
participantes (1)
-
Marcelo Claro de Souza