
Manoel, desculpe a demora em dar um retorno. Fiquei envolvido com outras atividades e me faltou tempo para isso. Tentei usar o que recomendou mas não deu certo. Eu preciso de uma gráfico dividido em três partes, com o mesmo eixo x. Nos comandos que passou, aparecem 12 linhas juntas. Preciso que fiquem separadas em três grupos (tratamentos) com quatro linhas cada (modelos) e uma legenda única. No CMR abaixo, m1A refere-se aos resultados obtidos pro tratamento A através do modelo 1, m3B refere-se aos resultados obtidos pro tratamento B através do mesmo modelo 3, etc. A legenda única deve conter a indicação dos modelos. A separação dos painéis do gráfico devem ser os tratamentos. m1A<-c(94.6,92.6,92.6,92.4,92.6) m2A<-c(96.1,93.9,95.1,92.6,92.5) m3A<-c(91.5,93.8,93.8,94.3,94.6) m4A<-c(95.2,94.4,98.1,95.9,92.4) #mA=c(m1A,m2A,m3A,m4A) mat1=matrix(cbind(m1A,m2A,m3A,m4A),nrow = 5, ncol = 4, byrow = FALSE,dimnames = list(c("L1","L2","L3","L4","L5"),c("m1","m2","m3","m4"))) m1B<-c(94.1,91.9,92.1,92.8,92.3) m2B<-c(96.3,95.7,95.8,95.1,95.6) m3B<-c(91.6,91.0,91.1,90.0,88.6) m4B<-c(95.9,92.9,100.0,90.9,91.1) #mm2=c(m3a,m1a,m4a,m2a) mat2=matrix(cbind(m1B,m2B,m3B,m4B),nrow = 5, ncol = 4, byrow = FALSE,dimnames = list(c("L1","L2","L3","L4","L5"),c("m1","m2","m3","m4"))) m1C<-c(92.8,91.4,91.8,92.7,92.3) m2C<-c(96.4,95.6,96.1,95.3,96.1) m3C<-c(88.5,87.1,84.6,83.0,84.1) m4C<-c(95.2,91.8,99.0,89.4,84.8) mat3=matrix(cbind(m1C,m2C,m3C,m4C),nrow = 5, ncol = 4, byrow = FALSE,dimnames = list(c("L1","L2","L3","L4","L5"),c("m1","m2","m3","m4"))) matriz=matrix(c(mat1,mat2,mat3),nrow =5,ncol =12, byrow = FALSE,dimnames = list(c("L1","L2","L3","L4","L5"),c("m1","m2","m3","m4","m1","m2","m3","m4","m1","m2","m3","m4"))) a=ts(matriz,frequency = 0.5, start = c(3, 2)) require(lattice) xyplot(a, screens = c(1,1,1,1,2,2,2,2,3,3,3,3),xlab = "medidas de tempo",ylab = "%",col=c(1:4)) Quando faço xyplot(a, screens = list("Tratamento A", "Tratamento B","Tratamento C"),xlab="medidas de tempo",ylab = "%",col=c(1:4),superpose = TRUE) consigo acrescentar os nomes dos tratamentos e uma legenda (que não é a adequada), porém observo que as linhas não estão corretas, pois não conferem com a do comando anterior. Digitei estes dados em forma de um dataframe que estão no link abaixo https://www.dropbox.com/s/nnkbe8n2sc88esm/dados_grafico.txt Neste caso, tentei dados=read.table("dados_grafico.txt",sep="",header=T) require(lattice) graf=xyplot(acerto ~ tempo | tratamento, data = dados,groups = Modelo,panel = "panel.superpose",panel.groups = "panel.linejoin",xlab = "tempo", key = list(lines = Rows(trellis.par.get("superpose.line"),c(1:3, 1)),text = list(lab = as.character(unique(dados$Modelo))),columns = 4, title = "Modelos")) graf Também sem sucesso. Agradeço qualquer ajuda. Maurício Em 4 de novembro de 2013 12:56, Manoel Galdino <mcz.fea@gmail.com> escreveu:
Veja se é mais ou menos isso que você quer:
matriz <- as.data.frame(matriz) names(matriz) <- paste("series", 1:12)
matriz$tempo <- 1:nrow(matriz) meltenMatriz <- melt(matriz, id='tempo' ) meltenMatriz$lbls <- meltenMatriz$variable
p <- ggplot(meltenMatriz, aes(x = tempo, y = value, group=variable)) + geom_line(aes(colour=variable)) direct.label(p, list("top.points", rot=10, cex=1, fontface="plain", fontfamily="serif", alpha=0.9))
É possível colocar os labels em outras posições. Dê um google por ggplo2 direc labels
Ou colocar as legendas como caixinhas ao lado do plot. Nesse caso, basta excluir o comando direct.label e rodar print(p), ou apenas p
É possível também configurar as cores.
abçs Manoel
2013/11/4 Maurício Lordêlo <mslordelo@gmail.com>
Obrigado Manoel. Vou dar uma olhada e tentarei adequar. Qualquer dúvida retornarei. Abraço
Em 3 de novembro de 2013 21:35, Manoel Galdino <mcz.fea@gmail.com>escreveu:
Maurício,
estou sem tempo agora, mas acho que dá pra fazer o que você quer com o ggplot2. No meu blog, fiz um gráfico parecido<http://prafalardecoisas.wordpress.com/2013/11/03/ugly-bar-plot-graphic-and-a-simple-alternative-rstats/>, coloquei inclusive o sript lá. A única diferença para o seu gráfico é que não tenho três paineis. No ggplot2, pra condicionar em paineis, usa-seo comando facet_wrap(). Creio que isso faria o job. Dê uma olhada. Se tiver um tempo, amanhã tento implementar uma solução.
abc M
2013/11/3 Maurício Lordêlo <mslordelo@gmail.com>
Caros, Continuo "quebrando" a cabeça para tentar produzir o gráfico que preciso. Consegui chegar próximo mas ainda não é o ideal. No CRM abaixo, o gráfico é construído porém preciso: 1) acrescentar a legenda para cada uma das linhas (estou denominando cada uma delas de m1,m2,m3 e m4); 2) substituir os números (1, 2 e 3) que aparecem nas divisões em amarelo por nomes (pode ser intercepto, tratamento B e tratamento C, respectivamente). Alguém teria alguma dica? m1a<-c(94.1,91.9,92.1,92.8,92.3) m2a<-c(96.3,95.7,95.8,95.1,95.6) m3a<-c(91.6,91.0,91.1,90.0,88.6) m4a<-c(95.9,92.9,100.0,90.9,91.1) mma=c(m1a,m2a,m3a,m4a) mat1=matrix(mma,nrow = 5, ncol = 4, byrow = FALSE,dimnames = list(c("L1","L2","L3","L4","L5"),c("m1","m2","m3","m4"))) m1b<-c(14.1,11.9,16.1,12.8,9.3) m2b<-c(16.3,15.7,19.8,19.1,9.6) m3b<-c(11.6,11.0,19.1,9.0,8.6) m4b<-c(15.9,12.9,10.0,19.9,11.1) mmb=c(m1b,m2b,m3b,m4b) mat2=matrix(mmb,nrow = 5, ncol = 4, byrow = FALSE,dimnames = list(c("L1","L2","L3","L4","L5"),c("m1","m2","m3","m4"))) m1c<-c(34.1,51.9,42.1,32.8,62.3) m2c<-c(36.3,45.7,35.8,55.1,75.6) m3c<-c(51.6,71.0,71.1,70.0,68.6) m4c<-c(45.9,42.9,40.0,30.9,51.1) mmc=c(m1c,m2c,m3c,m4c) mat3=matrix(mmc,nrow = 5, ncol = 4, byrow = FALSE,dimnames = list(c("L1","L2","L3","L4","L5"),c("m1","m2","m3","m4")))
matriz=matrix(c(mat1,mat2,mat3),5,12) a=ts(matriz,frequency = 0.5, start = c(2.5, 2)) require(lattice) xyplot(a, screens = c(1,1,1,1,2,2,2,2,3,3,3,3),xlab = "medidas de tempo",ylab = "%",col=c(1:4))
Utilizei este exemplo do help como referencia:
### Example with simpler data, few data points set.seed(1) z <- ts(cbind(a = 1:5, b = 11:15, c = 21:25) + rnorm(5)) xyplot(z, screens = list(a = "primary (a)", "other (b & c)"),type = list(a = c("p", "h"), b = c("p", "s"), "o"),pch = list(a = 2, c = 3), auto.key = list(type = "o"))
Em 31 de outubro de 2013 14:32, Maurício Lordêlo <mslordelo@gmail.com>escreveu:
Éder, obrigado pela atenção.
Não consegui. "ts.plot" constrói o gráfico com várias séries porém apenas um. Minha intenção é produzir três gráficos (como o "ts") com o mesmo eixo x e em cada um deles ter quatro linhas. Grato, Maurício
2013/10/31 Éder Comunello <comunello.eder@gmail.com>
Bom dia,
Já testou ts.plot {stats}?
### para o exemplo dado...
z <- ts(matrix(rnorm(300), 100, 3), start = c(1961, 1), frequency = 12)
plot(z)
ts.plot(z)
ts.plot(z, lty=c(1:4), col=c(1:4))
### no help tem outro exemplo... ?ts.plot
Éder Comunello <c <comunello.eder@gmail.com>omunello.eder@gmail.com> Dourados, MS - [22 16.5'S, 54 49'W]
_______________________________________________ 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.
-- Manoel Galdino https://sites.google.com/site/galdinomcz/
_______________________________________________ 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.
-- Manoel Galdino https://sites.google.com/site/galdinomcz/
_______________________________________________ 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.