Albert Montolio
2015-Nov-10 09:55 UTC
[R-es] función par dentro de bucles, representar gráficas en bucle
Hola chic en s, querría construir mi primera función, y tengo una duda respecto al comando par( mfrow =c(3,3)). Primero de todo, tengo una tabla con 10 variables, para cada variable, unos 145 datos. Quiero representar para cada variable su gráfica de dispersión respecto a las demás. Es decir, coger la primera variable y la segunda, y hacer gráfica, coger la primera variable y la tercera, y hacer gráfica, y así hasta acabar con la primera variable, y coger la segunda, y lo mismo. Coger la segunda variable y la tercera, y gráfica, coger la segunda variable y la cuarta, y gráfica. Quiero hacer una función con dos whiles, para automatizar el proceso. El problema radica en el comando par( mfrow =c(3,3)). Tal y como lo conozco, se escribirlo, y después colocar dos gráficas, por ejemplo par( mfrow =c(2,1)). indexplot bla bla bla indexplot bla bla bla. Pero ahora con el while, no puedo poner "dos" gráficas, sinó que es un bucle. Entonces no se si para mi caso tengo que utilizar el comando par y adaptarlo un poco, o con el comando par no puedo hacer lo que yo quiero y hay otro comando en R que desconzco. Os adjunto el codigo base que he pensado (tengo que pensar aun los argumentos y que resultado poner, porque el resultado seria la representación de las gráficas, así que tampoco lo tengo muy claro) Muchas gracias! //PAC2 sudo R library(Rcmdr) setwd("/home/albert/Documentos/UOC/PAC2/R") dir() wb <- read.table("Dades_PAC1Des96_Des08_PUNTS.csv", header=T, as.is=T, sep=",") head(wb) tail(wb) genGraphics <- function(arguments){ i=1 j=2 while i<=10 { while j<=10 { par( mfrow =c(3,3)) ?????????????????????????? xyplot(wb[i] ~ wb[j], type="p", pch=16, auto.key=list(border=TRUE), par.settings=simpleTheme(pch=16), scales=list(x=list(relation='sliced'), y=list(relation='sliced')), data=comma) j=j+1 } i=i+1 } return(resultat) } -- *Albert Montolio Aguado* ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20151110/82631fee/attachment-0001.html> ------------ próxima parte ------------ A non-text attachment was scrubbed... Name: Dades_PAC1Des96_Des08_PUNTS.csv Type: text/csv Size: 28618 bytes Desc: no disponible URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20151110/82631fee/attachment-0001.bin>
Carlos Ortega
2015-Nov-10 10:03 UTC
[R-es] función par dentro de bucles, representar gráficas en bucle
Hola, Como estás usando el paquete "lattice" la función para parametrizar el área gráfica no es "par()". Tienes que hacerlo como se comenta aquí: http://www.quantumforest.com/2011/10/setting-plots-side-by-side/ Y lo que puedes hacer es llamar a una función "png()", "jpeg()"... para guardar el gráfico en cada iteración. Y a la hora de guardar decir que haga un append al fichero existente. Así tendrás en un único fichero todas las parejas una tras otra. Por otro lado, porqué no pintas todas juntas vía la función "splom()" de "lattice". Saludos, Carlos Ortega www.qualiytexcellence.es El 10 de noviembre de 2015, 10:55, Albert Montolio < albert.montolio en gmail.com> escribió:> Hola chic en s, > > querría construir mi primera función, y tengo una duda respecto al comando > par( mfrow =c(3,3)). Primero de todo, tengo una tabla con 10 variables, > para cada variable, unos 145 datos. Quiero representar para cada variable > su gráfica de dispersión respecto a las demás. Es decir, coger la primera > variable y la segunda, y hacer gráfica, coger la primera variable y la > tercera, y hacer gráfica, y así hasta acabar con la primera variable, y > coger la segunda, y lo mismo. Coger la segunda variable y la tercera, y > gráfica, coger la segunda variable y la cuarta, y gráfica. Quiero hacer una > función con dos whiles, para automatizar el proceso. El problema radica en > el comando par( mfrow =c(3,3)). > > Tal y como lo conozco, se escribirlo, y después colocar dos gráficas, por > ejemplo > > par( mfrow =c(2,1)). > indexplot bla bla bla > indexplot bla bla bla. > > Pero ahora con el while, no puedo poner "dos" gráficas, sinó que es un > bucle. Entonces no se si para mi caso tengo que utilizar el comando par y > adaptarlo un poco, o con el comando par no puedo hacer lo que yo quiero y > hay otro comando en R que desconzco. > > Os adjunto el codigo base que he pensado (tengo que pensar aun los > argumentos y que resultado poner, porque el resultado seria la > representación de las gráficas, así que tampoco lo tengo muy claro) > > Muchas gracias! > > > > > > //PAC2 > sudo R > library(Rcmdr) > setwd("/home/albert/Documentos/UOC/PAC2/R") > dir() > wb <- read.table("Dades_PAC1Des96_Des08_PUNTS.csv", header=T, as.is=T, > sep=",") > head(wb) > tail(wb) > > genGraphics <- function(arguments){ > > i=1 > j=2 > > while i<=10 { > > while j<=10 { > > par( mfrow =c(3,3)) ?????????????????????????? > xyplot(wb[i] ~ wb[j], type="p", pch=16, > auto.key=list(border=TRUE), > par.settings=simpleTheme(pch=16), > scales=list(x=list(relation='sliced'), > y=list(relation='sliced')), > data=comma) > j=j+1 > } > i=i+1 > > } > > return(resultat) > } > > > -- > > > *Albert Montolio Aguado* > > _______________________________________________ > 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]]
Jesús Para Fernández
2015-Nov-10 10:13 UTC
[R-es] función par dentro de bucles, representar gráficas en bucle
Algo sencillo es plot(datos) Siendo datos el dataframe donde tienes tus datos guardados Date: Tue, 10 Nov 2015 10:55:27 +0100 From: albert.montolio en gmail.com To: R-help-es en r-project.org Subject: [R-es] función par dentro de bucles, representar gráficas en bucle Hola chic en s, querría construir mi primera función, y tengo una duda respecto al comando par( mfrow =c(3,3)). Primero de todo, tengo una tabla con 10 variables, para cada variable, unos 145 datos. Quiero representar para cada variable su gráfica de dispersión respecto a las demás. Es decir, coger la primera variable y la segunda, y hacer gráfica, coger la primera variable y la tercera, y hacer gráfica, y así hasta acabar con la primera variable, y coger la segunda, y lo mismo. Coger la segunda variable y la tercera, y gráfica, coger la segunda variable y la cuarta, y gráfica. Quiero hacer una función con dos whiles, para automatizar el proceso. El problema radica en el comando par( mfrow =c(3,3)). Tal y como lo conozco, se escribirlo, y después colocar dos gráficas, por ejemplo par( mfrow =c(2,1)). indexplot bla bla bla indexplot bla bla bla. Pero ahora con el while, no puedo poner "dos" gráficas, sinó que es un bucle. Entonces no se si para mi caso tengo que utilizar el comando par y adaptarlo un poco, o con el comando par no puedo hacer lo que yo quiero y hay otro comando en R que desconzco. Os adjunto el codigo base que he pensado (tengo que pensar aun los argumentos y que resultado poner, porque el resultado seria la representación de las gráficas, así que tampoco lo tengo muy claro) Muchas gracias! //PAC2 sudo R library(Rcmdr) setwd("/home/albert/Documentos/UOC/PAC2/R") dir() wb <- read.table("Dades_PAC1Des96_Des08_PUNTS.csv", header=T, as.is=T, sep=",") head(wb) tail(wb) genGraphics <- function(arguments){ i=1 j=2 while i<=10 { while j<=10 { par( mfrow =c(3,3)) ?????????????????????????? xyplot(wb[i] ~ wb[j], type="p", pch=16, auto.key=list(border=TRUE), par.settings=simpleTheme(pch=16), scales=list(x=list(relation='sliced'), y=list(relation='sliced')), data=comma) j=j+1 } i=i+1 } return(resultat) } -- Albert Montolio Aguado _______________________________________________ R-help-es mailing list R-help-es en r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es [[alternative HTML version deleted]]
Reverté Calvet, Gerard
2015-Nov-10 11:36 UTC
[R-es] función par dentro de bucles, representar gráficas en bucle
Se ha borrado un adjunto en formato HTML... URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20151110/d9e37381/attachment.html>
Albert Montolio
2015-Nov-10 12:10 UTC
[R-es] función par dentro de bucles, representar gráficas en bucle
Al final me he decidido por la libreria (lattice), aunque las dos son parecidas. He implementado este trozo de código: *----------------------------------------------------------------------------------------------------------------------------------------------------------------- //PAC2 sudo R library(Rcmdr) library(lattice) data(mtcars) setwd("/home/albert/Documentos/UOC/PAC2/R") dir() wb <- read.table("Dades_PAC1Des96_Des08_PUNTS.csv", header=T, as.is=T, sep=",") head(wb) tail(wb) i=1 j=2 t=1 while i<=10 { while j<=10 { p[i,t] = xyplot(wb[i] ~ wb[j], type="p", pch=16, auto.key=list(border=TRUE), par.settings=simpleTheme(pch=16), scales=list(x=list(relation='sliced'), y=list(relation='sliced')), data=comma) j=j+1 t=t+1 } i=i+1 } print(p[1,1], position = c(0, 0, 0.5, 1), more = TRUE) print(p[1,2] position = c(0.5, 0, 1, 1)) print(p[2,3], position = c(0.5, 0, 1, 1)) *--------------------------------------------------------------------------------------------------------------------------------------------------------------------- He ido guardando las gráficas en una tabla p. Como puedo llamar a los componentes de la tabla? si pongo p[1,1] o lo que sea no me hace nada. El 10 de noviembre de 2015, 12:36, Reverté Calvet, Gerard < greverte en ajmataro.cat> escribió:> Puedes usar la función pairs(datos), o también ggpairs (datos) del paquete > GGally. Más fácil y rápido. > > > > > > Gerard Reverté > > > > *De:* R-help-es [mailto:r-help-es-bounces en r-project.org] *En nombre de *Albert > Montolio > *Enviado el:* martes, 10 de noviembre de 2015 10:55 > *Para:* R-help-es en r-project.org > *Asunto:* [R-es] función par dentro de bucles, representar gráficas en > bucle > > > > Hola chic en s, > > querría construir mi primera función, y tengo una duda respecto al comando > par( mfrow =c(3,3)). Primero de todo, tengo una tabla con 10 variables, > para cada variable, unos 145 datos. Quiero representar para cada variable > su gráfica de dispersión respecto a las demás. Es decir, coger la primera > variable y la segunda, y hacer gráfica, coger la primera variable y la > tercera, y hacer gráfica, y así hasta acabar con la primera variable, y > coger la segunda, y lo mismo. Coger la segunda variable y la tercera, y > gráfica, coger la segunda variable y la cuarta, y gráfica. Quiero hacer una > función con dos whiles, para automatizar el proceso. El problema radica en > el comando par( mfrow =c(3,3)). > > Tal y como lo conozco, se escribirlo, y después colocar dos gráficas, por > ejemplo > > par( mfrow =c(2,1)). > > indexplot bla bla bla > > indexplot bla bla bla. > > Pero ahora con el while, no puedo poner "dos" gráficas, sinó que es un > bucle. Entonces no se si para mi caso tengo que utilizar el comando par y > adaptarlo un poco, o con el comando par no puedo hacer lo que yo quiero y > hay otro comando en R que desconzco. > > Os adjunto el codigo base que he pensado (tengo que pensar aun los > argumentos y que resultado poner, porque el resultado seria la > representación de las gráficas, así que tampoco lo tengo muy claro) > > Muchas gracias! > > > > > > > //PAC2 > sudo R > library(Rcmdr) > setwd("/home/albert/Documentos/UOC/PAC2/R") > dir() > wb <- read.table("Dades_PAC1Des96_Des08_PUNTS.csv", header=T, as.is=T, > sep=",") > head(wb) > tail(wb) > > genGraphics <- function(arguments){ > > i=1 > j=2 > > while i<=10 { > > while j<=10 { > > par( mfrow =c(3,3)) ?????????????????????????? > xyplot(wb[i] ~ wb[j], type="p", pch=16, > auto.key=list(border=TRUE), > par.settings=simpleTheme(pch=16), > scales=list(x=list(relation='sliced'), > y=list(relation='sliced')), > data=comma) > j=j+1 > } > i=i+1 > > } > > return(resultat) > } > > > -- > > > > > > *Albert Montolio Aguado* > > > > *Avís legal/Aviso legal* > La present informació s'envia únicament a la persona a la que va dirigida > i pot contenir informació privilegiada o de caràcter confidencial. > Qualsevol modificació, retransmissió, difusió o altre ús d'aquesta > informació per persones o entitats diferents a la persona a la que va > dirigida està prohibida. Si vostè l'ha rebut per error, si us plau contacti > amb el remitent i esborri el missatge de qualsevol ordinador. En el cas que > aquest missatge vagi a ser contestat per la mateixa via, ha de saber-se que > la seva resposta podria ser coneguda per tercers a l'entrar a la xarxa. Per > això, si el missatge inclou contrasenyes, números de targetes de crèdit o > qualsevol altra informació que vostè consideri confidencial, seria més > segur contestar per una altra via i cancel·lar la seva transmissió. > L'Ajuntament de Mataró i els seus organismes dependents no poden assumir la > responsabilitat derivada del fet de què terceres persones puguin arribar a > conèixer el contingut d'aquest missatge durant la seva transmissió. > ------------------------------ > La presente información se envía únicamente a la persona a la que va > dirigida y puede contener información privilegiada o de carácter > confidencial. Cualquier modificación, retransmisión, difusión u otro uso de > esta información por persones o entidades diferentes a la persona a la que > va dirigida está prohibida. Si usted la ha recibido por error, por favor > contacte con el remitente y borre el mensaje. En el caso de que este > mensaje vaya a ser contestado por la misma vía, ha de saberse que su > respuesta podría ser conocida por terceros al entrar en la red. Por este > motivo, si el mensaje incluye contraseñas, números de tarjetas de crédito o > cualquier otra información que considere confidencial, sería más seguro > contestar por otra vía y cancelar su transmisión. El Ayuntamiento de Mataró > y sus organismos dependientes no pueden asumir la responsabilidad derivada > del hecho de que terceras personas puedan llegar a conocer el contenido de > este mensaje durante su transmisión. > > <#150f12f62355b201_> > > > > *Avís legal/Aviso legal* > La present informació s'envia únicament a la persona a la que va dirigida > i pot contenir informació privilegiada o de caràcter confidencial. > Qualsevol modificació, retransmissió, difusió o altre ús d'aquesta > informació per persones o entitats diferents a la persona a la que va > dirigida està prohibida. Si vostè l'ha rebut per error, si us plau contacti > amb el remitent i esborri el missatge de qualsevol ordinador. En el cas que > aquest missatge vagi a ser contestat per la mateixa via, ha de saber-se que > la seva resposta podria ser coneguda per tercers a l'entrar a la xarxa. Per > això, si el missatge inclou contrasenyes, números de targetes de crèdit o > qualsevol altra informació que vostè consideri confidencial, seria més > segur contestar per una altra via i cancel·lar la seva transmissió. > L'Ajuntament de Mataró i els seus organismes dependents no poden assumir la > responsabilitat derivada del fet de què terceres persones puguin arribar a > conèixer el contingut d'aquest missatge durant la seva transmissió. > ------------------------------ > La presente información se envía únicamente a la persona a la que va > dirigida y puede contener información privilegiada o de carácter > confidencial. Cualquier modificación, retransmisión, difusión u otro uso de > esta información por persones o entidades diferentes a la persona a la que > va dirigida está prohibida. Si usted la ha recibido por error, por favor > contacte con el remitente y borre el mensaje. En el caso de que este > mensaje vaya a ser contestado por la misma vía, ha de saberse que su > respuesta podría ser conocida por terceros al entrar en la red. Por este > motivo, si el mensaje incluye contraseñas, números de tarjetas de crédito o > cualquier otra información que considere confidencial, sería más seguro > contestar por otra vía y cancelar su transmisión. El Ayuntamiento de Mataró > y sus organismos dependientes no pueden asumir la responsabilidad derivada > del hecho de que terceras personas puedan llegar a conocer el contenido de > este mensaje durante su transmisión. > > <#150f12f62355b201_> > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >-- *Albert Montolio Aguado* [[alternative HTML version deleted]]