Hola: Estoy intentando dibujar una espiral a la que le quería colocar unas marcas equidistantes. Estoy utilizando: T = seq(0, 20*pi, length.out=1000) X = T * cos(T) Y = T * sin(T) plot(X, Y) que dibuja puntos siguiendo una espiral. Como podría convertirlo en una espiral continua con marcas equidistantes? He buscado en r-cran, y no he encontrado nada. Muchas gracias y saludos!! Griera
Mira aquí tienes ejemplos con lo que necesitas: http://www.statmethods.net/graphs/line.html Saludos. El 14 de marzo de 2013 11:21, Griera <griera@gmail.com> escribió:> Hola: > > Estoy intentando dibujar una espiral a la que le quería colocar unas > marcas equidistantes. > > Estoy utilizando: > > T = seq(0, 20*pi, length.out=1000) > X = T * cos(T) > Y = T * sin(T) > plot(X, Y) > > que dibuja puntos siguiendo una espiral. Como podría convertirlo en una > espiral continua con marcas equidistantes? > > He buscado en r-cran, y no he encontrado nada. > > Muchas gracias y saludos!! Griera > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >-- Jorge Ayuso Rejas [[alternative HTML version deleted]]
Hola, Mira también el ejemplo que hay en el paquete de "scatterplot3d" ## example 1 z <- seq(-10, 10, 0.01) x <- cos(z) y <- sin(z) scatterplot3d(x, y, z, highlight.3d=TRUE, col.axis="blue", col.grid="lightblue", main="scatterplot3d - 1", pch=20) Y si quieres ideas más elaboradas también aquí: http://lmdvr.r-forge.r-project.org/figures/figures.html (Capítulo 13, figura 13.1) Gracias por usar "pi"! Saludos, Carlos Ortega www.qualityexcellence.es El 14 de marzo de 2013 11:21, Griera <griera@gmail.com> escribió:> Hola: > > Estoy intentando dibujar una espiral a la que le quería colocar unas > marcas equidistantes. > > Estoy utilizando: > > T = seq(0, 20*pi, length.out=1000) > X = T * cos(T) > Y = T * sin(T) > plot(X, Y) > > que dibuja puntos siguiendo una espiral. Como podría convertirlo en una > espiral continua con marcas equidistantes? > > He buscado en r-cran, y no he encontrado nada. > > Muchas gracias y saludos!! Griera > > _______________________________________________ > 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]]
On Thu, 14 Mar 2013 12:10:20 +0100 Jorge Ayuso Rejas <jayusor en gmail.com> wrote:> Te valdría con: > > T = seq(0, 20*pi, length.out=1000) > X = T * cos(T) > Y = T * sin(T) > plot(X, Y, type="l") > > Poniendo type="l" te dibuja la curva directamente. > > Para los puntos te podría vales algo como esto : > > T = seq(0, 20*pi, length.out=1000) > X = T * cos(T) > Y = T * sin(T) > plot(X, Y, type="l") > > aux<-seq(0,20*pi) > > points(aux * cos(aux), aux * sin(aux),pch=20,col=2)Es justo esto, pero los puntos rojos quería que estuviesen equidistantes (ahora en la parte interna de la espiral están más juntos y a parte de aquí se van separando). Igual esto no es posible? Muchas gracias por la ayuda!! Griera.> > > > Saludos. > > > > El 14 de marzo de 2013 11:57, Griera <griera en gmail.com> escribió: > > > Hola: > > > > Funciona!!! El código es: > > > > T = seq(0, 20*pi, length.out=1000) > > X = T * cos(T) > > Y = T * sin(T) > > plot(X, Y, type="n") > > lines(X, Y) > > > > Dibuja la espiral. Ahora voy a ver como le inserto marcas equidistantes. > > > > Gracias!! Salud!! > > > > On Thu, 14 Mar 2013 11:27:35 +0100 > > Jorge Ayuso Rejas <jayusor en gmail.com> wrote: > > > > > Mira aquí tienes ejemplos con lo que necesitas: > > > > > > http://www.statmethods.net/graphs/line.html > > > > > > Saludos. > > > > > > > > > El 14 de marzo de 2013 11:21, Griera <griera en gmail.com> escribió: > > > > > > > Hola: > > > > > > > > Estoy intentando dibujar una espiral a la que le quería colocar unas > > > > marcas equidistantes. > > > > > > > > Estoy utilizando: > > > > > > > > T = seq(0, 20*pi, length.out=1000) > > > > X = T * cos(T) > > > > Y = T * sin(T) > > > > plot(X, Y) > > > > > > > > que dibuja puntos siguiendo una espiral. Como podría convertirlo en una > > > > espiral continua con marcas equidistantes? > > > > > > > > He buscado en r-cran, y no he encontrado nada. > > > > > > > > Muchas gracias y saludos!! Griera > > > > > > > > _______________________________________________ > > > > R-help-es mailing list > > > > R-help-es en r-project.org > > > > https://stat.ethz.ch/mailman/listinfo/r-help-es > > > > > > > > > > > > > > > > -- > > > Jorge Ayuso Rejas > > > > > > -- > Jorge Ayuso Rejas
n <- 20 T <- sapply(1:n, function(x) pi * seq(x-1, x, length.out = 5 * x)) T <- unlist(T) X = T * cos(T) Y = T * sin(T) plot(X, Y) es una "aproximación (y a trozos)" a la solución de tu problema, que en términos matemáticos precisos es el de encontrar una parametrización por longitud de tu espiral. Lo que hago es muestrear cada ciclo más densamente (directamente proporcional al radio "promedio" de la espiral en dicho ciclo). Un saludo, Carlos J. Gil Bellosta http://www.datanalytics.com El día 14 de marzo de 2013 12:36, Griera <griera en gmail.com> escribió:> On Thu, 14 Mar 2013 12:10:20 +0100 > Jorge Ayuso Rejas <jayusor en gmail.com> wrote: > >> Te valdría con: >> >> T = seq(0, 20*pi, length.out=1000) >> X = T * cos(T) >> Y = T * sin(T) >> plot(X, Y, type="l") >> >> Poniendo type="l" te dibuja la curva directamente. >> >> Para los puntos te podría vales algo como esto : >> >> T = seq(0, 20*pi, length.out=1000) >> X = T * cos(T) >> Y = T * sin(T) >> plot(X, Y, type="l") >> >> aux<-seq(0,20*pi) >> >> points(aux * cos(aux), aux * sin(aux),pch=20,col=2) > > Es justo esto, pero los puntos rojos quería que estuviesen equidistantes (ahora en la parte interna de la espiral están más juntos y a parte de aquí se van separando). Igual esto no es posible? > > Muchas gracias por la ayuda!! Griera. > >> >> >> >> Saludos. >> >> >> >> El 14 de marzo de 2013 11:57, Griera <griera en gmail.com> escribió: >> >> > Hola: >> > >> > Funciona!!! El código es: >> > >> > T = seq(0, 20*pi, length.out=1000) >> > X = T * cos(T) >> > Y = T * sin(T) >> > plot(X, Y, type="n") >> > lines(X, Y) >> > >> > Dibuja la espiral. Ahora voy a ver como le inserto marcas equidistantes. >> > >> > Gracias!! Salud!! >> > >> > On Thu, 14 Mar 2013 11:27:35 +0100 >> > Jorge Ayuso Rejas <jayusor en gmail.com> wrote: >> > >> > > Mira aquí tienes ejemplos con lo que necesitas: >> > > >> > > http://www.statmethods.net/graphs/line.html >> > > >> > > Saludos. >> > > >> > > >> > > El 14 de marzo de 2013 11:21, Griera <griera en gmail.com> escribió: >> > > >> > > > Hola: >> > > > >> > > > Estoy intentando dibujar una espiral a la que le quería colocar unas >> > > > marcas equidistantes. >> > > > >> > > > Estoy utilizando: >> > > > >> > > > T = seq(0, 20*pi, length.out=1000) >> > > > X = T * cos(T) >> > > > Y = T * sin(T) >> > > > plot(X, Y) >> > > > >> > > > que dibuja puntos siguiendo una espiral. Como podría convertirlo en una >> > > > espiral continua con marcas equidistantes? >> > > > >> > > > He buscado en r-cran, y no he encontrado nada. >> > > > >> > > > Muchas gracias y saludos!! Griera >> > > > >> > > > _______________________________________________ >> > > > R-help-es mailing list >> > > > R-help-es en r-project.org >> > > > https://stat.ethz.ch/mailman/listinfo/r-help-es >> > > > >> > > >> > > >> > > >> > > -- >> > > Jorge Ayuso Rejas >> > >> >> >> >> -- >> Jorge Ayuso Rejas > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es
Hola Carlos: On Thu, 14 Mar 2013 12:46:31 +0100 "Carlos J. Gil Bellosta " <cgb en datanalytics.com> wrote:> n <- 20 > > T <- sapply(1:n, function(x) pi * seq(x-1, x, length.out = 5 * x)) > T <- unlist(T) > X = T * cos(T) > Y = T * sin(T) > plot(X, Y) > > es una "aproximación (y a trozos)" a la solución de tu problema, que > en términos matemáticos precisos es el de encontrar una > parametrización por longitud de tu espiral. > > Lo que hago es muestrear cada ciclo más densamente (directamente > proporcional al radio "promedio" de la espiral en dicho ciclo).Es una solución alternativa a lo que quiero representar, ya que todos los círculos están equidistantes. No la entiendo en términos "matemáticos" (me lo tengo que revisar con más calma), pero igual me va bien!! Gracias por la sugerencia. Saludos.> > Un saludo, > > Carlos J. Gil Bellosta > http://www.datanalytics.com > > > El día 14 de marzo de 2013 12:36, Griera <griera en gmail.com> escribió: > > On Thu, 14 Mar 2013 12:10:20 +0100 > > Jorge Ayuso Rejas <jayusor en gmail.com> wrote: > > > >> Te valdría con: > >> > >> T = seq(0, 20*pi, length.out=1000) > >> X = T * cos(T) > >> Y = T * sin(T) > >> plot(X, Y, type="l") > >> > >> Poniendo type="l" te dibuja la curva directamente. > >> > >> Para los puntos te podría vales algo como esto : > >> > >> T = seq(0, 20*pi, length.out=1000) > >> X = T * cos(T) > >> Y = T * sin(T) > >> plot(X, Y, type="l") > >> > >> aux<-seq(0,20*pi) > >> > >> points(aux * cos(aux), aux * sin(aux),pch=20,col=2) > > > > Es justo esto, pero los puntos rojos quería que estuviesen equidistantes (ahora en la parte interna de la espiral están más juntos y a parte de aquí se van separando). Igual esto no es posible? > > > > Muchas gracias por la ayuda!! Griera. > > > >> > >> > >> > >> Saludos. > >> > >> > >> > >> El 14 de marzo de 2013 11:57, Griera <griera en gmail.com> escribió: > >> > >> > Hola: > >> > > >> > Funciona!!! El código es: > >> > > >> > T = seq(0, 20*pi, length.out=1000) > >> > X = T * cos(T) > >> > Y = T * sin(T) > >> > plot(X, Y, type="n") > >> > lines(X, Y) > >> > > >> > Dibuja la espiral. Ahora voy a ver como le inserto marcas equidistantes. > >> > > >> > Gracias!! Salud!! > >> > > >> > On Thu, 14 Mar 2013 11:27:35 +0100 > >> > Jorge Ayuso Rejas <jayusor en gmail.com> wrote: > >> > > >> > > Mira aquí tienes ejemplos con lo que necesitas: > >> > > > >> > > http://www.statmethods.net/graphs/line.html > >> > > > >> > > Saludos. > >> > > > >> > > > >> > > El 14 de marzo de 2013 11:21, Griera <griera en gmail.com> escribió: > >> > > > >> > > > Hola: > >> > > > > >> > > > Estoy intentando dibujar una espiral a la que le quería colocar unas > >> > > > marcas equidistantes. > >> > > > > >> > > > Estoy utilizando: > >> > > > > >> > > > T = seq(0, 20*pi, length.out=1000) > >> > > > X = T * cos(T) > >> > > > Y = T * sin(T) > >> > > > plot(X, Y) > >> > > > > >> > > > que dibuja puntos siguiendo una espiral. Como podría convertirlo en una > >> > > > espiral continua con marcas equidistantes? > >> > > > > >> > > > He buscado en r-cran, y no he encontrado nada. > >> > > > > >> > > > Muchas gracias y saludos!! Griera > >> > > > > >> > > > _______________________________________________ > >> > > > R-help-es mailing list > >> > > > R-help-es en r-project.org > >> > > > https://stat.ethz.ch/mailman/listinfo/r-help-es > >> > > > > >> > > > >> > > > >> > > > >> > > -- > >> > > Jorge Ayuso Rejas > >> > > >> > >> > >> > >> -- > >> Jorge Ayuso Rejas > > > > _______________________________________________ > > R-help-es mailing list > > R-help-es en r-project.org > > https://stat.ethz.ch/mailman/listinfo/r-help-es
Hola, Otra alternativa a diferentes marcas cada cierta distancia y con otro tipo de símbolo y color... ################### T = seq(0, 20*pi, length.out=1000) #Defino data.frame dat.df <- data.frame( id=1:length(X) ,X=T*cos(T) ,Y=T*sin(T) ,tipo=rep(19,length(X)) ,color=rep("blue", length(X)) ) #Pongo marcas cada cierta distancia - Marcas diferentes y colores diferentes mar.ca <- 15 dat.df$tipo <- ifelse(dat.df$id %% mar.ca == 0, 3, 19 ) dat.df$color<- ifelse(dat.df$id %% mar.ca == 0, "red", "blue" ) plot(dat.df$X, dat.df$Y, pch=dat.df$tipo, col=dat.df$color) ################### Saludos, Carlos Ortega www.qualityexcellence.es El 14 de marzo de 2013 12:56, Griera <griera@gmail.com> escribió:> Hola Carlos: > > On Thu, 14 Mar 2013 12:46:31 +0100 > "Carlos J. Gil Bellosta " <cgb@datanalytics.com> wrote: > > > n <- 20 > > > > T <- sapply(1:n, function(x) pi * seq(x-1, x, length.out = 5 * x)) > > T <- unlist(T) > > X = T * cos(T) > > Y = T * sin(T) > > plot(X, Y) > > > > es una "aproximación (y a trozos)" a la solución de tu problema, que > > en términos matemáticos precisos es el de encontrar una > > parametrización por longitud de tu espiral. > > > > Lo que hago es muestrear cada ciclo más densamente (directamente > > proporcional al radio "promedio" de la espiral en dicho ciclo). > > Es una solución alternativa a lo que quiero representar, ya que todos los > círculos están equidistantes. No la entiendo en términos "matemáticos" (me > lo tengo que revisar con más calma), pero igual me va bien!! > > Gracias por la sugerencia. Saludos. > > > > > Un saludo, > > > > Carlos J. Gil Bellosta > > http://www.datanalytics.com > > > > > > El día 14 de marzo de 2013 12:36, Griera <griera@gmail.com> escribió: > > > On Thu, 14 Mar 2013 12:10:20 +0100 > > > Jorge Ayuso Rejas <jayusor@gmail.com> wrote: > > > > > >> Te valdría con: > > >> > > >> T = seq(0, 20*pi, length.out=1000) > > >> X = T * cos(T) > > >> Y = T * sin(T) > > >> plot(X, Y, type="l") > > >> > > >> Poniendo type="l" te dibuja la curva directamente. > > >> > > >> Para los puntos te podría vales algo como esto : > > >> > > >> T = seq(0, 20*pi, length.out=1000) > > >> X = T * cos(T) > > >> Y = T * sin(T) > > >> plot(X, Y, type="l") > > >> > > >> aux<-seq(0,20*pi) > > >> > > >> points(aux * cos(aux), aux * sin(aux),pch=20,col=2) > > > > > > Es justo esto, pero los puntos rojos quería que estuviesen > equidistantes (ahora en la parte interna de la espiral están más juntos y a > parte de aquí se van separando). Igual esto no es posible? > > > > > > Muchas gracias por la ayuda!! Griera. > > > > > >> > > >> > > >> > > >> Saludos. > > >> > > >> > > >> > > >> El 14 de marzo de 2013 11:57, Griera <griera@gmail.com> escribió: > > >> > > >> > Hola: > > >> > > > >> > Funciona!!! El código es: > > >> > > > >> > T = seq(0, 20*pi, length.out=1000) > > >> > X = T * cos(T) > > >> > Y = T * sin(T) > > >> > plot(X, Y, type="n") > > >> > lines(X, Y) > > >> > > > >> > Dibuja la espiral. Ahora voy a ver como le inserto marcas > equidistantes. > > >> > > > >> > Gracias!! Salud!! > > >> > > > >> > On Thu, 14 Mar 2013 11:27:35 +0100 > > >> > Jorge Ayuso Rejas <jayusor@gmail.com> wrote: > > >> > > > >> > > Mira aquí tienes ejemplos con lo que necesitas: > > >> > > > > >> > > http://www.statmethods.net/graphs/line.html > > >> > > > > >> > > Saludos. > > >> > > > > >> > > > > >> > > El 14 de marzo de 2013 11:21, Griera <griera@gmail.com> escribió: > > >> > > > > >> > > > Hola: > > >> > > > > > >> > > > Estoy intentando dibujar una espiral a la que le quería colocar > unas > > >> > > > marcas equidistantes. > > >> > > > > > >> > > > Estoy utilizando: > > >> > > > > > >> > > > T = seq(0, 20*pi, length.out=1000) > > >> > > > X = T * cos(T) > > >> > > > Y = T * sin(T) > > >> > > > plot(X, Y) > > >> > > > > > >> > > > que dibuja puntos siguiendo una espiral. Como podría > convertirlo en una > > >> > > > espiral continua con marcas equidistantes? > > >> > > > > > >> > > > He buscado en r-cran, y no he encontrado nada. > > >> > > > > > >> > > > Muchas gracias y saludos!! Griera > > >> > > > > > >> > > > _______________________________________________ > > >> > > > R-help-es mailing list > > >> > > > R-help-es@r-project.org > > >> > > > https://stat.ethz.ch/mailman/listinfo/r-help-es > > >> > > > > > >> > > > > >> > > > > >> > > > > >> > > -- > > >> > > Jorge Ayuso Rejas > > >> > > > >> > > >> > > >> > > >> -- > > >> Jorge Ayuso Rejas > > > > > > _______________________________________________ > > > R-help-es mailing list > > > R-help-es@r-project.org > > > https://stat.ethz.ch/mailman/listinfo/r-help-es > > _______________________________________________ > 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]]
Gracias, Carlos. Esta propuesta combinada con la que ha hecho Carlos J. Gil , creo que dará respuesta a mis necesidades. A ver si lo consigo. Muchas gracias y saludos. Griera. On Thu, 14 Mar 2013 13:03:55 +0100 Carlos Ortega <cof en qualityexcellence.es> wrote:> Hola, > > Otra alternativa a diferentes marcas cada cierta distancia y con otro tipo > de símbolo y color... > > ################### > > T = seq(0, 20*pi, length.out=1000) > #Defino data.frame > dat.df <- data.frame( > id=1:length(X) > ,X=T*cos(T) > ,Y=T*sin(T) > ,tipo=rep(19,length(X)) > ,color=rep("blue", length(X)) > ) > > #Pongo marcas cada cierta distancia - Marcas diferentes y colores diferentes > mar.ca <- 15 > dat.df$tipo <- ifelse(dat.df$id %% mar.ca == 0, 3, 19 ) > dat.df$color<- ifelse(dat.df$id %% mar.ca == 0, "red", "blue" ) > > plot(dat.df$X, dat.df$Y, pch=dat.df$tipo, col=dat.df$color) > > ################### > > Saludos, > Carlos Ortega > www.qualityexcellence.es > > > > El 14 de marzo de 2013 12:56, Griera <griera en gmail.com> escribió: > > > Hola Carlos: > > > > On Thu, 14 Mar 2013 12:46:31 +0100 > > "Carlos J. Gil Bellosta " <cgb en datanalytics.com> wrote: > > > > > n <- 20 > > > > > > T <- sapply(1:n, function(x) pi * seq(x-1, x, length.out = 5 * x)) > > > T <- unlist(T) > > > X = T * cos(T) > > > Y = T * sin(T) > > > plot(X, Y) > > > > > > es una "aproximación (y a trozos)" a la solución de tu problema, que > > > en términos matemáticos precisos es el de encontrar una > > > parametrización por longitud de tu espiral. > > > > > > Lo que hago es muestrear cada ciclo más densamente (directamente > > > proporcional al radio "promedio" de la espiral en dicho ciclo). > > > > Es una solución alternativa a lo que quiero representar, ya que todos los > > círculos están equidistantes. No la entiendo en términos "matemáticos" (me > > lo tengo que revisar con más calma), pero igual me va bien!! > > > > Gracias por la sugerencia. Saludos. > > > > > > > > Un saludo, > > > > > > Carlos J. Gil Bellosta > > > http://www.datanalytics.com > > > > > > > > > El día 14 de marzo de 2013 12:36, Griera <griera en gmail.com> escribió: > > > > On Thu, 14 Mar 2013 12:10:20 +0100 > > > > Jorge Ayuso Rejas <jayusor en gmail.com> wrote: > > > > > > > >> Te valdría con: > > > >> > > > >> T = seq(0, 20*pi, length.out=1000) > > > >> X = T * cos(T) > > > >> Y = T * sin(T) > > > >> plot(X, Y, type="l") > > > >> > > > >> Poniendo type="l" te dibuja la curva directamente. > > > >> > > > >> Para los puntos te podría vales algo como esto : > > > >> > > > >> T = seq(0, 20*pi, length.out=1000) > > > >> X = T * cos(T) > > > >> Y = T * sin(T) > > > >> plot(X, Y, type="l") > > > >> > > > >> aux<-seq(0,20*pi) > > > >> > > > >> points(aux * cos(aux), aux * sin(aux),pch=20,col=2) > > > > > > > > Es justo esto, pero los puntos rojos quería que estuviesen > > equidistantes (ahora en la parte interna de la espiral están más juntos y a > > parte de aquí se van separando). Igual esto no es posible? > > > > > > > > Muchas gracias por la ayuda!! Griera. > > > > > > > >> > > > >> > > > >> > > > >> Saludos. > > > >> > > > >> > > > >> > > > >> El 14 de marzo de 2013 11:57, Griera <griera en gmail.com> escribió: > > > >> > > > >> > Hola: > > > >> > > > > >> > Funciona!!! El código es: > > > >> > > > > >> > T = seq(0, 20*pi, length.out=1000) > > > >> > X = T * cos(T) > > > >> > Y = T * sin(T) > > > >> > plot(X, Y, type="n") > > > >> > lines(X, Y) > > > >> > > > > >> > Dibuja la espiral. Ahora voy a ver como le inserto marcas > > equidistantes. > > > >> > > > > >> > Gracias!! Salud!! > > > >> > > > > >> > On Thu, 14 Mar 2013 11:27:35 +0100 > > > >> > Jorge Ayuso Rejas <jayusor en gmail.com> wrote: > > > >> > > > > >> > > Mira aquí tienes ejemplos con lo que necesitas: > > > >> > > > > > >> > > http://www.statmethods.net/graphs/line.html > > > >> > > > > > >> > > Saludos. > > > >> > > > > > >> > > > > > >> > > El 14 de marzo de 2013 11:21, Griera <griera en gmail.com> escribió: > > > >> > > > > > >> > > > Hola: > > > >> > > > > > > >> > > > Estoy intentando dibujar una espiral a la que le quería colocar > > unas > > > >> > > > marcas equidistantes. > > > >> > > > > > > >> > > > Estoy utilizando: > > > >> > > > > > > >> > > > T = seq(0, 20*pi, length.out=1000) > > > >> > > > X = T * cos(T) > > > >> > > > Y = T * sin(T) > > > >> > > > plot(X, Y) > > > >> > > > > > > >> > > > que dibuja puntos siguiendo una espiral. Como podría > > convertirlo en una > > > >> > > > espiral continua con marcas equidistantes? > > > >> > > > > > > >> > > > He buscado en r-cran, y no he encontrado nada. > > > >> > > > > > > >> > > > Muchas gracias y saludos!! Griera > > > >> > > > > > > >> > > > _______________________________________________ > > > >> > > > R-help-es mailing list > > > >> > > > R-help-es en r-project.org > > > >> > > > https://stat.ethz.ch/mailman/listinfo/r-help-es > > > >> > > > > > > >> > > > > > >> > > > > > >> > > > > > >> > > -- > > > >> > > Jorge Ayuso Rejas > > > >> > > > > >> > > > >> > > > >> > > > >> -- > > > >> Jorge Ayuso Rejas > > > > > > > > _______________________________________________ > > > > R-help-es mailing list > > > > R-help-es en r-project.org > > > > https://stat.ethz.ch/mailman/listinfo/r-help-es > > > > _______________________________________________ > > 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
Hola: Ya lo he solucionado combinando dos de las soluciones: ############################################################### ## "Carlos J. Gil Bellosta " <cgb en datanalytics.com> ## Puntos equidistantes ## Carlos Ortega <cof en qualityexcellence.es> ## Otra alternativa a diferentes marcas cada cierta distancia y con otro tipo de símbolo y color... N <- 20 T <- sapply(1:N, function(x) pi * seq(x-1, x, length.out = 5 * x)) length(T) T <- unlist(T) X = T * cos(T) Y = T * sin(T) dat.df = data.frame( ID=1:1050 , X = X , Y = Y , tipo=rep(19,length(X)) , color=rep("blue", length(X)) ) plot(X, Y) #Pongo marcas cada cierta distancia - Marcas diferentes y colores diferentes mar.ca <- 15 dat.df$tipo <- ifelse(dat.df$ID %% mar.ca == 0, 3, 19 ) dat.df$color<- ifelse(dat.df$ID %% mar.ca == 0, "red", "blue" ) plot(dat.df$X, dat.df$Y, pch=dat.df$tipo, col=dat.df$color) ############################################################### Muchas gracias a todos!! Saludos. Griera. On Thu, 14 Mar 2013 13:03:55 +0100 Carlos Ortega <cof en qualityexcellence.es> wrote:> Hola, > > Otra alternativa a diferentes marcas cada cierta distancia y con otro tipo > de símbolo y color... > > ################### > > T = seq(0, 20*pi, length.out=1000) > #Defino data.frame > dat.df <- data.frame( > id=1:length(X) > ,X=T*cos(T) > ,Y=T*sin(T) > ,tipo=rep(19,length(X)) > ,color=rep("blue", length(X)) > ) > > #Pongo marcas cada cierta distancia - Marcas diferentes y colores diferentes > mar.ca <- 15 > dat.df$tipo <- ifelse(dat.df$id %% mar.ca == 0, 3, 19 ) > dat.df$color<- ifelse(dat.df$id %% mar.ca == 0, "red", "blue" ) > > plot(dat.df$X, dat.df$Y, pch=dat.df$tipo, col=dat.df$color) > > ################### > > Saludos, > Carlos Ortega > www.qualityexcellence.es > > > > El 14 de marzo de 2013 12:56, Griera <griera en gmail.com> escribió: > > > Hola Carlos: > > > > On Thu, 14 Mar 2013 12:46:31 +0100 > > "Carlos J. Gil Bellosta " <cgb en datanalytics.com> wrote: > > > > > n <- 20 > > > > > > T <- sapply(1:n, function(x) pi * seq(x-1, x, length.out = 5 * x)) > > > T <- unlist(T) > > > X = T * cos(T) > > > Y = T * sin(T) > > > plot(X, Y) > > > > > > es una "aproximación (y a trozos)" a la solución de tu problema, que > > > en términos matemáticos precisos es el de encontrar una > > > parametrización por longitud de tu espiral. > > > > > > Lo que hago es muestrear cada ciclo más densamente (directamente > > > proporcional al radio "promedio" de la espiral en dicho ciclo). > > > > Es una solución alternativa a lo que quiero representar, ya que todos los > > círculos están equidistantes. No la entiendo en términos "matemáticos" (me > > lo tengo que revisar con más calma), pero igual me va bien!! > > > > Gracias por la sugerencia. Saludos. > > > > > > > > Un saludo, > > > > > > Carlos J. Gil Bellosta > > > http://www.datanalytics.com > > > > > > > > > El día 14 de marzo de 2013 12:36, Griera <griera en gmail.com> escribió: > > > > On Thu, 14 Mar 2013 12:10:20 +0100 > > > > Jorge Ayuso Rejas <jayusor en gmail.com> wrote: > > > > > > > >> Te valdría con: > > > >> > > > >> T = seq(0, 20*pi, length.out=1000) > > > >> X = T * cos(T) > > > >> Y = T * sin(T) > > > >> plot(X, Y, type="l") > > > >> > > > >> Poniendo type="l" te dibuja la curva directamente. > > > >> > > > >> Para los puntos te podría vales algo como esto : > > > >> > > > >> T = seq(0, 20*pi, length.out=1000) > > > >> X = T * cos(T) > > > >> Y = T * sin(T) > > > >> plot(X, Y, type="l") > > > >> > > > >> aux<-seq(0,20*pi) > > > >> > > > >> points(aux * cos(aux), aux * sin(aux),pch=20,col=2) > > > > > > > > Es justo esto, pero los puntos rojos quería que estuviesen > > equidistantes (ahora en la parte interna de la espiral están más juntos y a > > parte de aquí se van separando). Igual esto no es posible? > > > > > > > > Muchas gracias por la ayuda!! Griera. > > > > > > > >> > > > >> > > > >> > > > >> Saludos. > > > >> > > > >> > > > >> > > > >> El 14 de marzo de 2013 11:57, Griera <griera en gmail.com> escribió: > > > >> > > > >> > Hola: > > > >> > > > > >> > Funciona!!! El código es: > > > >> > > > > >> > T = seq(0, 20*pi, length.out=1000) > > > >> > X = T * cos(T) > > > >> > Y = T * sin(T) > > > >> > plot(X, Y, type="n") > > > >> > lines(X, Y) > > > >> > > > > >> > Dibuja la espiral. Ahora voy a ver como le inserto marcas > > equidistantes. > > > >> > > > > >> > Gracias!! Salud!! > > > >> > > > > >> > On Thu, 14 Mar 2013 11:27:35 +0100 > > > >> > Jorge Ayuso Rejas <jayusor en gmail.com> wrote: > > > >> > > > > >> > > Mira aquí tienes ejemplos con lo que necesitas: > > > >> > > > > > >> > > http://www.statmethods.net/graphs/line.html > > > >> > > > > > >> > > Saludos. > > > >> > > > > > >> > > > > > >> > > El 14 de marzo de 2013 11:21, Griera <griera en gmail.com> escribió: > > > >> > > > > > >> > > > Hola: > > > >> > > > > > > >> > > > Estoy intentando dibujar una espiral a la que le quería colocar > > unas > > > >> > > > marcas equidistantes. > > > >> > > > > > > >> > > > Estoy utilizando: > > > >> > > > > > > >> > > > T = seq(0, 20*pi, length.out=1000) > > > >> > > > X = T * cos(T) > > > >> > > > Y = T * sin(T) > > > >> > > > plot(X, Y) > > > >> > > > > > > >> > > > que dibuja puntos siguiendo una espiral. Como podría > > convertirlo en una > > > >> > > > espiral continua con marcas equidistantes? > > > >> > > > > > > >> > > > He buscado en r-cran, y no he encontrado nada. > > > >> > > > > > > >> > > > Muchas gracias y saludos!! Griera > > > >> > > > > > > >> > > > _______________________________________________ > > > >> > > > R-help-es mailing list > > > >> > > > R-help-es en r-project.org > > > >> > > > https://stat.ethz.ch/mailman/listinfo/r-help-es > > > >> > > > > > > >> > > > > > >> > > > > > >> > > > > > >> > > -- > > > >> > > Jorge Ayuso Rejas > > > >> > > > > >> > > > >> > > > >> > > > >> -- > > > >> Jorge Ayuso Rejas > > > > > > > > _______________________________________________ > > > > R-help-es mailing list > > > > R-help-es en r-project.org > > > > https://stat.ethz.ch/mailman/listinfo/r-help-es > > > > _______________________________________________ > > 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