[R-br] xyplot: incluir equação e r2 no gráfico
Caros, Preciso incluir as equações do modelo ajustado e o R2 no gráfico construído usando a função "xyplot" do pacote "lattice". Usei para o código mínimo reproduzível os dados do próprio pacote mas não deu certo. Agradeço quem puder auxiliar. Maurício library(lattice) str(iris) table(iris$Species) iris_setosa = subset(iris, Species =="setosa") mod1 = lm(Sepal.Length ~ Petal.Length, data=iris_setosa) iris_versicolor = subset(iris, Species =="versicolor") mod2 = lm(Sepal.Length ~ Petal.Length, data=iris_versicolor) iris_virginica = subset(iris, Species =="virginica") mod3 = lm(Sepal.Length ~ Petal.Length, data=iris_virginica) tp_mod1 = sprintf("%s = %.2f + %.2f%s", "Y", coef(mod1)[1], coef(mod1)[2], "X") r2_mod1 = cor(iris_setosa$Sepal.Length, fitted(mod1))^2 tp_mod2 = sprintf("%s = %.1f + %.2f %s", "Y", coef(mod2)[1], coef(mod2)[2], "X") r2_mod2 = cor(iris_versicolor$Sepal.Length, fitted(mod2))^2 tp_mod3 = sprintf("%s = %.1f + %.2f %s", "Y", coef(mod3)[1], coef(mod3)[2], "X") r2_mod3 = cor(iris_virginica$Sepal.Length, fitted(mod3))^2 tp_mod1;r2_mod1 tp_mod2;r2_mod2 tp_mod3;r2_mod3 ##Necessito em cada "tp_mod" incluir o r2 logo abaixo da respectiva equação### mypanel<-function(x,y,...) { panel.xyplot(x, y, ...) panel.abline(mod1) panel.abline(mod2) panel.abline(mod3) panel.text(4,7,labels=tp_mod1) panel.text(3,8,labels=tp_mod2) panel.text(2,7,labels=tp_mod3) } #O gráfico gerado: xyplot(Sepal.Length ~ Petal.Length | Species,panel = mypanel, data = iris, strip = strip.custom(par.strip.text = list(font = 3))) ___ 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.
Re: [R-br] Acrescentar nomes no eixo x
Grato Cleber! Sempre bom saber que existem outras opções. Em ter, 19 de fev de 2019 às 18:10, Cleber N.Borges por (R-br) < r-br@listas.c3sl.ufpr.br> escreveu: > > # talvez usando *matplot* simplifica um pouco tb > > # com a flag xaxt='n', retira os rótulos dos eixos > > estacao = as.factor(c("Outono","Inverno","Primavera","Verão")) > x = 1:4 > y1 = rnorm(4, 3,1) > y2 = rnorm(4, 3, 1) > y3 = rnorm(4, 4, 1.5) > y4 = rnorm(4, 3.5, 1) > > d <- data.frame( y1, y2, y3, y4 ) > > matplot( d, lwd=1,type='b', xlab = 'Estação',ylab ="ETo > (mm/d)",ylim=c(0,6), xaxt='n', pch=19 ) > > axis(1, at=1:4, labels=estacao ) > > com a flag *las* rotaciona as labels > axis(1, at=1:4, labels=estacao, las=2) > > > > Em 19/02/2019 17:23, Marcus Nunes por (R-br) escreveu: > > Se entendi corretamente o problema, use > > axis(1, at=1:4, labels=estacao) > > Este foi o resultado que obtive: https://imgur.com/a/RohP2ni > -- > Marcus Nunes > > > > On Tue, Feb 19, 2019 at 5:15 PM Maurício Lordêlo por (R-br) < > r-br@listas.c3sl.ufpr.br> wrote: > >> Olá! >> Preciso colocar nomes no eixo X de um gráfico feito usando a função >> plot(). >> Cada valor do "y" corresponde a uma estação do ano. >> Segue o script: >> >> estacao = as.factor(c("Outono","Inverno","Primavera","Verão")) >> x = 1:4 >> y1 = rnorm(4, 3,1) >> y2 = rnorm(4, 3, 1) >> y3 = rnorm(4, 4, 1.5) >> y4 = rnorm(4, 3.5, 1) >> data.frame(y1,y2,y3,y4,estacao) >> plot(y1~x, axes= FALSE,lwd=1,type='b', xlab = 'Estação',ylab ="ETo >> (mm/d)",ylim=c(0,6)) >> lines(y2~x,col="red",type="b") >> lines(y3~x,col="green",type="b") >> lines(y4~x,col="black",type="b") >> axis(2) >> #os dois comandos abaixo foram tentativas que não deram certo: >> axis(1, names("estacao")) >> axis(1, at=c("Outono","Inverno","Primavera","Verão")) >> >> legend(1.5,6,c("M1","M2","M3","M4"), >>col = 1:4, >>lty = rep(1,4), >>horiz=T, >>ncol = 1) >> >> Agradeço caso tenham alguma sugestão. >> >> Maurício >> ___ >> 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. > > > ___ > R-br mailing > listr...@listas.c3sl.ufpr.brhttps://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. > > > > > <https://www.avast.com/sig-email?utm_medium=email_source=link_campaign=sig-email_content=emailclient> > Livre > de vírus. www.avast.com > <https://www.avast.com/sig-email?utm_medium=email_source=link_campaign=sig-email_content=emailclient>. > <#m_7089969374740185758_DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2> > ___ > 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. ___ 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.
Re: [R-br] Acrescentar nomes no eixo x
Muito obrigado Marcus! Em ter, 19 de fev de 2019 às 17:24, Marcus Nunes por (R-br) < r-br@listas.c3sl.ufpr.br> escreveu: > Se entendi corretamente o problema, use > > axis(1, at=1:4, labels=estacao) > > Este foi o resultado que obtive: https://imgur.com/a/RohP2ni > -- > Marcus Nunes > Professor Adjunto > Universidade Federal do Rio Grande do Norte > Centro de Ciências Exatas e da Terra > Departamento de Estatística > Laboratório de Estatística Aplicada > mar...@marcusnunes.me > https://marcusnunes.me/ > http://shiny.estatistica.ccet.ufrn.br > https://tinyletter.com/mnunes > > > > On Tue, Feb 19, 2019 at 5:15 PM Maurício Lordêlo por (R-br) < > r-br@listas.c3sl.ufpr.br> wrote: > >> Olá! >> Preciso colocar nomes no eixo X de um gráfico feito usando a função >> plot(). >> Cada valor do "y" corresponde a uma estação do ano. >> Segue o script: >> >> estacao = as.factor(c("Outono","Inverno","Primavera","Verão")) >> x = 1:4 >> y1 = rnorm(4, 3,1) >> y2 = rnorm(4, 3, 1) >> y3 = rnorm(4, 4, 1.5) >> y4 = rnorm(4, 3.5, 1) >> data.frame(y1,y2,y3,y4,estacao) >> plot(y1~x, axes= FALSE,lwd=1,type='b', xlab = 'Estação',ylab ="ETo >> (mm/d)",ylim=c(0,6)) >> lines(y2~x,col="red",type="b") >> lines(y3~x,col="green",type="b") >> lines(y4~x,col="black",type="b") >> axis(2) >> #os dois comandos abaixo foram tentativas que não deram certo: >> axis(1, names("estacao")) >> axis(1, at=c("Outono","Inverno","Primavera","Verão")) >> >> legend(1.5,6,c("M1","M2","M3","M4"), >>col = 1:4, >>lty = rep(1,4), >>horiz=T, >>ncol = 1) >> >> Agradeço caso tenham alguma sugestão. >> >> Maurício >> ___ >> 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. > > ___ > 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. ___ 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.
[R-br] Acrescentar nomes no eixo x
Olá! Preciso colocar nomes no eixo X de um gráfico feito usando a função plot(). Cada valor do "y" corresponde a uma estação do ano. Segue o script: estacao = as.factor(c("Outono","Inverno","Primavera","Verão")) x = 1:4 y1 = rnorm(4, 3,1) y2 = rnorm(4, 3, 1) y3 = rnorm(4, 4, 1.5) y4 = rnorm(4, 3.5, 1) data.frame(y1,y2,y3,y4,estacao) plot(y1~x, axes= FALSE,lwd=1,type='b', xlab = 'Estação',ylab ="ETo (mm/d)",ylim=c(0,6)) lines(y2~x,col="red",type="b") lines(y3~x,col="green",type="b") lines(y4~x,col="black",type="b") axis(2) #os dois comandos abaixo foram tentativas que não deram certo: axis(1, names("estacao")) axis(1, at=c("Outono","Inverno","Primavera","Verão")) legend(1.5,6,c("M1","M2","M3","M4"), col = 1:4, lty = rep(1,4), horiz=T, ncol = 1) Agradeço caso tenham alguma sugestão. Maurício ___ 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.