Hola a todos, Agradeceros de antemano vuestro tiempo y paciencia ya que soy un poco novato y tal vez esto sea un poco trivial. Lo que quiero hacer es que me represente en eje de las x las fechas (columna fecha) y los valores de z (columna z) pero de los datos que he filtrado antes en (dfgrupo<-subset(df,df$parametroslaboratorio=="Aflatoxinas ByG")) y que los parámetros iguales (variables de la columna param) se unan entre sí y tengan un color cada param. En principio estoy usando un código de un ejemplo que funciona muy bien pero lo único que consigo es que se me unan todos los puntos (todos los parm) y que no lo haga por colores. Si alguien se le ocurre algo se lo agradezco. df <- read.table(file="xxxx.csv", header=T, sep=";", dec=",") df <-na.omit(df) dfgrupo<-subset(df,df$parametroslaboratorio=="Aflatoxinas ByG") niveles <- as.numeric(dfgrupo$param) ntrees <- max(niveles) xrange <- range(as.Date(dfgrupo$fecha)) yrange <- range(dfgrupo$z) plot(xrange, yrange, type = "n", xlab = "Fecha del interlaboratorio", ylab = "Z-score") colors <- rainbow(ntrees) ltipo <- c(1:ntrees) char <- seq(18, 18 + ntrees, 1) # Añadir las lineas al grafico for (i in 1:ntrees) { tree <- dfgrupo[ dfgrupo$param == levels( dfinter$param )[ i ], ] lines(as.Date(dfgrupo$fecha), dfgrupo$z, type = "b", lwd = 1.5, col = colors[i], pch = char[i]) } # Añadir un titulo and subtitulo title("Evaluacion de los parametros") # Añadir la leyenda legend(xrange[1], yrange[2], 1:ntrees, cex = 0.8, col = colors, pch char, lty = ltipo, title = "Parametro") Un saludo. Dr. José M. Veiga Dpt. Química Agrícola, Geología y Edafología. Universidad de Murcia. ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20141217/3146ea8f/attachment.html> ------------ próxima parte ------------ param;matrizinter;matrizlaboratorio;codigo;parametroslaboratorio;fecha;RESULT XXX;Uds;RESULT INTER;z;Spropuesta;Sobtenida;incertinter;numeropartic AFB1 Method;Chilli Powder;ESPECIAS;FAPAS 04218;Aflatoxinas ByG;01/08/2013;5,62;ppb;3,78;2,2;0,832;0,84;0,25;11 AFB2 Method;Chilli Powder;ESPECIAS;FAPAS 04218;Aflatoxinas ByG;01/08/2013;1,62;ppb;2,69;-1,8;0,591;0,59;0,18;11 AFG1 Method;Chilli Powder;ESPECIAS;FAPAS 04218;Aflatoxinas ByG;01/08/2013;2,31;ppb;2,32;0,01;0,509;1;0,3;11 AFG2 Method;Chilli Powder;ESPECIAS;FAPAS 04218;Aflatoxinas ByG;01/08/2013;1,19;ppb;1,78;-1,5;0,392;0,39;0,12;11 AFM1 Method;Milk Powder;LECHE EN POLVO;FAPAS 04224;M1;01/08/2013;0,181;ppb;0,13;-1,3;0,04;0,04;0,012;11 AFB1 Method;Pistachos;FRUTOS SECOS;FAPAS 04239;Aflatoxinas ByG;01/06/2014;7,26;ppb;7,6;-0,2;1,67;1,7;0,51;11 AFB2 Method;Pistachos;FRUTOS SECOS;FAPAS 04239;Aflatoxinas ByG;01/06/2014;1,31;ppb;1,47;-0,5;0,32;0,32;0,097;11 AFG1 Method;Pistachos;FRUTOS SECOS;FAPAS 04239;Aflatoxinas ByG;01/06/2014;1,85;ppb;1,64;0,6;0,36;0,35;0,11;11 AFG2 Method;Pistachos;FRUTOS SECOS;FAPAS 04239;Aflatoxinas ByG;01/06/2014;1,17;ppb;0,76;2,5;0,17;0,16;0,049;11 As;WasteWater;AGUAS RESIDUALES;GSCAR-2;Metales aguas y sales;01/07/2014;0,86;ppm;1,01;-1,48;0,1012;0,1;0,031;11 Cd;WasteWater;AGUAS RESIDUALES;GSCAR-2;Metales aguas y sales;01/07/2014;1,19;ppm;1,5;-1,85;0,1463;0,17;0,051;11 Cr;WasteWater;AGUAS RESIDUALES;GSCAR-2;Metales aguas y sales;01/07/2014;3,58;ppm;3,55;0,08;0,355;0,38;0,11;11 TOC;WasteWater;AGUAS RESIDUALES;GSCAR-2;TOC;01/07/2014;883,5;ppm;854,98;0,33;85,49;86,42;26,1;11
Jose Manuel Veiga del Baño <chemavb en um.es> writes:> Hola a todos, > > Agradeceros de antemano vuestro tiempo y paciencia ya que soy un poco > novato y tal vez esto sea un poco trivial. > > Lo que quiero hacer es que me represente en eje de las x las fechas > (columna fecha) y los valores de z (columna z) pero de los datos que > he filtrado antes en (dfgrupo<-subset > (df,df$parametroslaboratorio=="Aflatoxinas ByG")) y que los parámetros > iguales (variables de la columna param) se unan entre sí y tengan un > color cada param. En principio estoy usando un código de un ejemplo > que funciona muy bien pero lo único que consigo es que se me unan > todos los puntos (todos los parm) y que no lo haga por colores. > > Si alguien se le ocurre algo se lo agradezco. > > df <- read.table(file="xxxx.csv", header=T, sep=";", dec=",") > df <-na.omit(df) > dfgrupo<-subset(df,df$parametroslaboratorio=="Aflatoxinas ByG") > niveles <- as.numeric(dfgrupo$param) > ntrees <- max(niveles) > xrange <- range(as.Date(dfgrupo$fecha)) > yrange <- range(dfgrupo$z) > plot(xrange, yrange, type = "n", xlab = "Fecha del interlaboratorio", > ylab = "Z-score") > colors <- rainbow(ntrees) > ltipo <- c(1:ntrees) > char <- seq(18, 18 + ntrees, 1) > # Añadir las lineas al grafico > for (i in 1:ntrees) { > tree <- dfgrupo[ dfgrupo$param == levels( dfinter$param )[ i ], ] > lines(as.Date(dfgrupo$fecha), dfgrupo$z, type = "b", lwd = 1.5, > col = colors[i], pch = char[i])mirando el código así un poco rápido... ¿eso de> lines(as.Date(dfgrupo$fecha), dfgrupo$z, type = "b", lwd = 1.5, > col = colors[i], pch = char[i])¿no tendría que ser? lines(as.Date(dfgrupo$fecha), tree, type = "b", lwd = 1.5, col = colors[i], pch = char[i]) Saludos, -- :: Igor Sosa Mayor :: joseleopoldo1792 en gmail.com :: :: GnuPG: 0x1C1E2890 :: http://www.gnupg.org/ :: :: jabberid: rogorido :: ::
Hola, El error lo tienes aqui: #------------------- tree <- dfgrupo[ dfgrupo$param == levels( dfinter$param )[ i ], ] lines(as.Date(*tree*$fecha), *tree*$z, type = "b", lwd = 1.5, col = colors[i], pch = char[i]) #------------------- Primero seleccionas un subconjunto "tree", pero luego a la hora de pintar las lineas, vuelves a escoger "dfgrupo" y une todos los puntos del conjunto dfgroup en vez de solamente los del subconjunto "tree". Como alternativa, aunque estás empezando a usar R, mira esta otra forma que evita todos los cálculos intermedios que has utilizado: #--------------------- library(lattice) parVal <- unique(as.vector(dfgrupo$param)) colVal <- rainbow(length(parVal)) xyplot( z ~ as.Date(fecha) ,data=dfgrupo ,group=param ,type="b" ,main="Evaluación de los parámetros" ,xlab=list("Fecha del interlaboratorio", font=2, cex=1.1) ,ylab=list("Z-Score", font=2, cex=1.1) ,scales=list(col="blue", font=2, cex=1.1) ,key=simpleKey(parVal, columns=4) ,par.settings=simpleTheme(fill=colVal, col=colVal, pch=19) ) #--------------------- Saludos, Carlos Ortega www.qualityexcellence.es El 17 de diciembre de 2014, 19:59, Jose Manuel Veiga del Baño <chemavb en um.es> escribió: > > Hola a todos, > > Agradeceros de antemano vuestro tiempo y paciencia ya que soy un poco > novato y tal vez esto sea un poco trivial. > > Lo que quiero hacer es que me represente en eje de las x las fechas > (columna fecha) y los valores de z (columna z) pero de los datos que he > filtrado antes en > (dfgrupo<-subset(df,df$parametroslaboratorio=="Aflatoxinas ByG")) y que los > parámetros iguales (variables de la columna param) se unan entre sí y > tengan un color cada param. En principio estoy usando un código de un > ejemplo que funciona muy bien pero lo único que consigo es que se me unan > todos los puntos (todos los parm) y que no lo haga por colores. > > Si alguien se le ocurre algo se lo agradezco. > > df <- read.table(file="xxxx.csv", header=T, sep=";", dec=",") > df <-na.omit(df) > dfgrupo<-subset(df,df$parametroslaboratorio=="Aflatoxinas ByG") > niveles <- as.numeric(dfgrupo$param) > ntrees <- max(niveles) > xrange <- range(as.Date(dfgrupo$fecha)) > yrange <- range(dfgrupo$z) > plot(xrange, yrange, type = "n", xlab = "Fecha del interlaboratorio", > ylab = "Z-score") > colors <- rainbow(ntrees) > ltipo <- c(1:ntrees) > char <- seq(18, 18 + ntrees, 1) > # Añadir las lineas al grafico > for (i in 1:ntrees) { > tree <- dfgrupo[ dfgrupo$param == levels( dfinter$param )[ i ], ] > lines(as.Date(dfgrupo$fecha), dfgrupo$z, type = "b", lwd = 1.5, > col = colors[i], pch = char[i]) > } > # Añadir un titulo and subtitulo > title("Evaluacion de los parametros") > # Añadir la leyenda > legend(xrange[1], yrange[2], 1:ntrees, cex = 0.8, col = colors, pch > char, > lty = ltipo, title = "Parametro") > > Un saludo. > Dr. José M. Veiga > Dpt. Química Agrícola, Geología y Edafología. > Universidad de Murcia. > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > >-- Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]]
Muchas gracias. Tienes razón era ese el problema. Voy a mirar la opción alternativa. Un saludo. Carlos Ortega <cof en qualityexcellence.es> escribió:> Hola, > > El error lo tienes aqui: > > #------------------- > tree <- dfgrupo[ dfgrupo$param == levels( dfinter$param )[ i ], ] > lines(as.Date(TREE$fecha), TREE$z, type = "b", lwd = 1.5, > col = colors[i], pch = char[i]) > #------------------- > Primero seleccionas un subconjunto "tree", pero luego a la hora de > pintar las lineas, vuelves a escoger "dfgrupo" y une todos los puntos > del conjunto dfgroup en vez de solamente los del subconjunto "tree". > > Como alternativa, aunque estás empezando a usar R, mira esta otra > forma que evita todos los cálculos intermedios que has utilizado: > > #--------------------- > library(lattice) > parVal <- unique(as.vector(dfgrupo$param)) > colVal <- rainbow(length(parVal)) > > xyplot( > z ~ as.Date(fecha) > ,data=dfgrupo > ,group=param > ,type="b" > ,main="Evaluación de los parámetros" > ,xlab=list("Fecha del interlaboratorio", font=2, cex=1.1) > ,ylab=list("Z-Score", font=2, cex=1.1) > ,scales=list(col="blue", font=2, cex=1.1) > ,key=simpleKey(parVal, columns=4) > ,par.settings=simpleTheme(fill=colVal, col=colVal, pch=19) > ) > #--------------------- > > Saludos, > Carlos Ortega > www.qualityexcellence.es[1] > > > El 17 de diciembre de 2014, 19:59, Jose Manuel Veiga del Baño > <chemavb en um.es> escribió: >> _Hola a todos, >> >> Agradeceros de antemano vuestro tiempo y paciencia ya que soy un poco >> novato y tal vez esto sea un poco trivial. >> >> Lo que quiero hacer es que me represente en eje de las x las fechas >> (columna fecha) y los valores de z (columna z) pero de los datos que he >> filtrado antes en >> (dfgrupo<-subset(df,df$parametroslaboratorio=="Aflatoxinas ByG")) y que >> los parámetros iguales (variables de la columna param) se unan entresí>> y tengan un color cada param. En principio estoy usando un código de un >> ejemplo que funciona muy bien pero lo único que consigo es que se me >> unan todos los puntos (todos los parm) y que no lo haga por colores. >> >> Si alguien se le ocurre algo se lo agradezco._ >> >> _df <- read.table(file="xxxx.csv", header=T, sep=";",dec=",")_>> _df <-na.omit(df)_ >> _dfgrupo<-subset(df,df$parametroslaboratorio=="Aflatoxinas ByG")_ >> _niveles <- as.numeric(dfgrupo$param)_ >> _ntrees <- max(niveles) _ >> _xrange <- range(as.Date(dfgrupo$fecha))_ >> _yrange <- range(dfgrupo$z)_ >> _plot(xrange, yrange, type = "n", xlab = "Fecha del >> interlaboratorio", _ >> _ ylab = "Z-score")_ >> _colors <- rainbow(ntrees)_ >> _ltipo <- c(1:ntrees)_ >> _char <- seq(18, 18 + ntrees, 1)_ >> _# Añadir las lineas al grafico_ >> _for (i in 1:ntrees) {_ >> _ tree <- dfgrupo[ dfgrupo$param == levels( dfinter$param )[ >> i ], ] _ >> _ lines(as.Date(dfgrupo$fecha), dfgrupo$z, type = "b", lwd >> 1.5, _ >> _ col = colors[i], pch = char[i])_ >> _}_ >> _# Añadir un titulo and subtitulo_ >> _title("Evaluacion de los parametros")_ >> _# Añadir la leyenda_ >> _legend(xrange[1], yrange[2], 1:ntrees, cex = 0.8, col = colors, >> pch = char, _ >> _ lty = ltipo, title = "Parametro")_ >> _ _ >> >> _Un saludo._ _Dr. José M. Veiga >> Dpt. Química Agrícola, Geología y Edafología. >> Universidad de Murcia._ >> >> ________________________________________________ >> R-help-es mailing list >> R-help-es en r-project.org >> https://stat.ethz.ch/mailman/listinfo/r-help-es_ >> > > _-- _ > _Saludos, > Carlos Ortega > www.qualityexcellence.es[1]_Vínculos: --------- [1] http://www.qualityexcellence.es Dr. José M. Veiga Dpt. Química Agrícola, Geología y Edafología. Universidad de Murcia. [[alternative HTML version deleted]]