Alejandro José Estudillo Hidalgo
2013-Nov-15 23:07 UTC
[R-es] ggplot2: orden de una variable en el eje x según el valor de otra variable.
Buenas noches, A ver si alguien me puede echar una mano, porque estoy hecho un lió. El caso es que tengo una matriz de datos con tres variables, por ejemplo: S<-1:5 P1<- c(20, 18, 19, 15,16) P2<- c(4, 2, 6, 1,3) total<- data.frame(P1, P2, S) Ordeno la matriz según los valores en la variable "P1" total <- total[order(total[,1]),] Hasta aquí todo perfecto. El caso es que quiero hacer un gráfico de lineas representando ambas variables P1 y P2, pero quiero que aparezca en el orden en el que lo ordené antes. He intentado lo siguiente: totalM <- melt(total, id="S", measured= c("P1", "P2")) ggplot(totalM, aes(S, value, shape= variable, linetype=variable))+geom_point(size=5)+geom_line(size=1) Pero al final me los ordena de forma ascendente según el valor del participante y, como he dicho, yo lo quiero ordenado según el orden que establecí antes. Alguna idea? Muchas gracias! Alex -- *La civilización nos ha liberado de ciertas condiciones aversivas del ambiente, pero ciertamente no nos ha liberado del ambiente mismo.(Skinner, 1971)* [[alternative HTML version deleted]]
Carlos Ortega
2013-Nov-16 19:02 UTC
[R-es] ggplot2: orden de una variable en el eje x según el valor de otra variable.
Hola, No es ggplot2... pero si lo he entendido bien, hace lo que buscas... plot(total$P1, col="red", axes=F, ylim=range(total$P1, total$P2), xlab="S", ylab="P1 - P2" ) points(total$P2, col="blue") axis(1, at=1:length(total$S), label=total$S) axis(2, las=1) box() legend("topleft", cex=0.5, pch=c(1,1), legend=c("P1","P2"), col=c("red","blue")) Saludos, Carlos Ortega www.qualityexcellence.es El 16 de noviembre de 2013 00:07, Alejandro José Estudillo Hidalgo < ajestudillo@gmail.com> escribió:> Buenas noches, > > A ver si alguien me puede echar una mano, porque estoy hecho un lió. El > caso es que tengo una matriz de datos con tres variables, por ejemplo: > > S<-1:5 > P1<- c(20, 18, 19, 15,16) > P2<- c(4, 2, 6, 1,3) > > total<- data.frame(P1, P2, S) > > Ordeno la matriz según los valores en la variable "P1" > > total <- total[order(total[,1]),] > > Hasta aquí todo perfecto. El caso es que quiero hacer un gráfico de lineas > representando ambas variables P1 y P2, pero quiero que aparezca en el orden > en el que lo ordené antes. He intentado lo siguiente: > > totalM <- melt(total, id="S", measured= c("P1", "P2")) > > ggplot(totalM, aes(S, value, shape= variable, > linetype=variable))+geom_point(size=5)+geom_line(size=1) > > Pero al final me los ordena de forma ascendente según el valor del > participante y, como he dicho, yo lo quiero ordenado según el orden que > establecí antes. Alguna idea? > > Muchas gracias! > Alex > > -- > > > > *La civilización nos ha liberado de ciertas condiciones aversivas del > ambiente, pero ciertamente no nos ha liberado del ambiente mismo.(Skinner, > 1971)* > > [[alternative HTML version deleted]] > > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > >-- Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]]