[R-es] Dibujar una espiral

Griera griera en gmail.com
Jue Mar 14 14:18:41 CET 2013


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



Más información sobre la lista de distribución R-help-es