[R-br] gráfico linhas

Maurício Lordêlo mslordelo em gmail.com
Quinta Novembro 14 18:39:53 BRST 2013


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 em 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 em 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 em 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 em 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 em 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 em 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 em gmail.com>omunello.eder em gmail.com>
>>>>>> Dourados, MS - [22 16.5'S, 54 49'W]
>>>>>>
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> 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.
>>>>>>
>>>>>
>>>>>
>>>>
>>>> _______________________________________________
>>>> 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.
>>>>
>>>
>>>
>>>
>>> --
>>> Manoel Galdino
>>> https://sites.google.com/site/galdinomcz/
>>>
>>> _______________________________________________
>>> 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.
>>>
>>
>>
>> _______________________________________________
>> 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.
>>
>
>
>
> --
> Manoel Galdino
> https://sites.google.com/site/galdinomcz/
>
> _______________________________________________
> 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.
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20131114/bcbcefd7/attachment.html>


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