Re: [R-es] líneas sobre un mapa

2020-06-06 Por tema Carlos Ortega
Hola,
¿Por qué no incluyes directamente la línea vertical en cada iteración?.

world<-map_data('world')
pyt<-  ggplot(data, aes(x = longitud, y = latitud, color =
ptyrup,size=ptyrup)) +
  geom_point()+
 *geom_vline(xintercept = i)*
  scale_color_manual(values = c('lightslateblue','black')) +
  scale_size_manual(values=c(1,2))+
  theme(legend.position="top")
windows();pyt

Si luego vuelves a llamar a "pyt" efectivamente vuelve a reproducir todo el
mapa.

Gracias,
Carlos Ortega
www.qualityexcellence.es

El sáb., 6 jun. 2020 a las 20:41, Manuel Mendoza (<
mmend...@fulbrightmail.org>) escribió:

> Gracias Emilio, no sé cómo ponerte un ejemplo reproducible. El mapa es un
> ggplot como el que te pongo abajo, y el análisis que se hace en cada vuelta
> del loop (que tienes abajo, del anterior email) es un árbol de
> clasificación que se entrena con una parte del mapa, dada por la longitud
> (lon), y se testa con la otra. Los resultados se almacenan en Preds. Como
> puedes ver, la i del loop/for determina lon, una de las variables de la
> base de datos del mapa, y a cada iteración del loop (valor de lon) me
> indica por qué valor va (print(i)). En vez de eso, o además de, me gustaría
> que me representase un linea sobre el mapa que se hizo previamente con
> ggplot, que se corresponda con el valor de lon.
> Este es el mapa (sigo abajo):
>
> world<-map_data('world')
> pyt<-  ggplot(data, aes(x = longitud, y = latitud, color =
> ptyrup,size=ptyrup)) +
>   geom_point()+
>   scale_color_manual(values = c('lightslateblue','black')) +
>   scale_size_manual(values=c(1,2))+
>   theme(legend.position="top")
> windows();pyt
>
> Si en el loop incluyo esto:
>   pyt<-pyt+geom_vline(xintercept = i)
>   print(pyt)
>
> a cada iteración me representa en el mapa la línea que yo quiero, pero lo
> hace representando el mapa de nuevo cada vez. La idea es que me añada la
> línea, cada vez, pero sin tener que representar el mapa, es decir, sobre el
> que ya estaba. Es por el efecto visual. Parece una tontería, pero frente a
> una audiencia esos detalles importan (hasta cierto punto).
>
> Gracias,
> Manuel
>
>
>
>
>
>
>
>
>
>
>
>
> El sáb., 6 jun. 2020 a las 12:01, Emilio L. Cano ( >)
> escribió:
>
> > Hola,
> >
> > Como ggplot son gráficos tipo “grid” seguramente puedas añadir las líneas
> > como un objeto “grob” sin tener que recargar el mapa.
> >
> > Con un ejemplo reproducible lo podría confirmar.
> >
> > Un saludo,
> >
> > Emilio L. Cano
> > http://emilio.lcano.com
> >
> >
> >
> > El 5 jun 2020, a las 17:48, Manuel Mendoza 
> > escribió:
> >
> > Gracias Emilio y Jorge. Tengo que explicarlo mejor. Mostrando a una
> > audiencia cómo hacer un tipo de análisis, se hace un loop (abajo) que
> > analiza un mapa por regiones longitudinales. Tal y como está el script,
> > print(i) te indica la longitud por la que va (de 10º en 10º) pero me
> > gustaría que en vez de eso te fuese representando una línea vertical
> sobre
> > el mapa, que he representado previamente con ggplot. No es
> imprescindible,
> > pero quedaría bien.
> >
> > Preds <- data.frame()
> >
> > for (i in seq(from = -180, to = 170, by = 10)){
> >   traindata <- subset(data, lon < i|lon>= i+10)
> >   testdata <- subset(data,(lon> i & lon<= i+10))
> >
> >   fitrp <- rpart(Clst ~ .- lon - lat, data=traindata,method = "class")
> >   print(i)
> >
> >   prd <- predict(fitrp, testdata, type="class") # se aplica el modelo a
> > las muestras test
> >   testdata$prd<-prd
> >   Preds<-rbind(Preds,testdata)
> > }
> >
> > El vie., 5 jun. 2020 a las 16:18, Emilio L. Cano (<
> emilopezc...@gmail.com>)
> > escribió:
> >
> >> Hola Manuel,
> >> Al ser ggplot supongo que será como en cualquier gráfico en ejes
> >> coordenados, añade una capa:
> >>
> >> ggplot(…..) + geom_vline(xintercept = vector_de_valores_x)
> >>
> >> Un saludo,
> >>
> >> Emilio L. Cano
> >> http://emilio.lcano.com
> >>
> >>
> >>
> >> > El 5 jun 2020, a las 13:48, Manuel Mendoza <
> mmend...@fulbrightmail.org>
> >> escribió:
> >> >
> >> > Buenos días ¿sabéis si hay alguna forma de añadir una recta vertical
> >> sobre
> >> > un mapa hecho previamente con ggplot? Lo que hago ahora es cargar
> >> > nuevamente el mapa con la línea añadida (una serie de líneas añadidas
> >> > secuencialmente en un loop) pero me gustaría que añadiese las líneas
> sin
> >> > cargar nuevamente el mapa.
> >> > Gracias,
> >> > Manuel
> >> >
> >> >   [[alternative HTML version deleted]]
> >> >
> >> > ___
> >> > R-help-es mailing list
> >> > R-help-es@r-project.org
> >> > https://stat.ethz.ch/mailman/listinfo/r-help-es
> >>
> >>
> >
>
> [[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]]

___
R-help-es mailing list
R-help-es

Re: [R-es] líneas sobre un mapa

2020-06-06 Por tema Emilio L . Cano
Sigo pensando que la solución es añadir un objeto grid, he intentado crear un 
ejemplo pero no termino de ligar las coordenadas del gráfico base con las 
unidades de grid (igual no se puede). Esto es un ejemplo reproducible (aunque 
sin control sobre las coordenadas de la línea:

library(ggplot2)
library(grid)

p <- ggplot(data.frame(x=rnorm(1000), y = rnorm(1000)),
   aes(x, y)) +
  geom_point()

print(p)
y0 <- -10
y1 <- 10
for (i in 1:5)){
  Sys.sleep(time = 1)
  x0 <- x1 <- runif(1, 0, 1)
  grid.segments(x0, y0, x1, y1)
}


Un saludo,

Emilio L. Cano
http://emilio.lcano.com



> El 6 jun 2020, a las 20:40, Manuel Mendoza  
> escribió:
> 
> Gracias Emilio, no sé cómo ponerte un ejemplo reproducible. El mapa es un 
> ggplot como el que te pongo abajo, y el análisis que se hace en cada vuelta 
> del loop (que tienes abajo, del anterior email) es un árbol de clasificación 
> que se entrena con una parte del mapa, dada por la longitud (lon), y se testa 
> con la otra. Los resultados se almacenan en Preds. Como puedes ver, la i del 
> loop/for determina lon, una de las variables de la base de datos del mapa, y 
> a cada iteración del loop (valor de lon) me indica por qué valor va 
> (print(i)). En vez de eso, o además de, me gustaría que me representase un 
> linea sobre el mapa que se hizo previamente con ggplot, que se corresponda 
> con el valor de lon.
> Este es el mapa (sigo abajo):
> 
> world<-map_data('world')
> pyt<-  ggplot(data, aes(x = longitud, y = latitud, color = 
> ptyrup,size=ptyrup)) +
>   geom_point()+
>   scale_color_manual(values = c('lightslateblue','black')) + 
>   scale_size_manual(values=c(1,2))+
>   theme(legend.position="top")
> windows();pyt
> 
> Si en el loop incluyo esto:
>   pyt<-pyt+geom_vline(xintercept = i)
>   print(pyt)
> 
> a cada iteración me representa en el mapa la línea que yo quiero, pero lo 
> hace representando el mapa de nuevo cada vez. La idea es que me añada la 
> línea, cada vez, pero sin tener que representar el mapa, es decir, sobre el 
> que ya estaba. Es por el efecto visual. Parece una tontería, pero frente a 
> una audiencia esos detalles importan (hasta cierto punto).
> 
> Gracias,
> Manuel
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> El sáb., 6 jun. 2020 a las 12:01, Emilio L. Cano ( >) escribió:
> Hola,
> 
> Como ggplot son gráficos tipo “grid” seguramente puedas añadir las líneas 
> como un objeto “grob” sin tener que recargar el mapa. 
> 
> Con un ejemplo reproducible lo podría confirmar.
> 
> Un saludo,
> 
> Emilio L. Cano
> http://emilio.lcano.com 
> 
> 
> 
>> El 5 jun 2020, a las 17:48, Manuel Mendoza > > escribió:
>> 
>> Gracias Emilio y Jorge. Tengo que explicarlo mejor. Mostrando a una 
>> audiencia cómo hacer un tipo de análisis, se hace un loop (abajo) que 
>> analiza un mapa por regiones longitudinales. Tal y como está el script, 
>> print(i) te indica la longitud por la que va (de 10º en 10º) pero me 
>> gustaría que en vez de eso te fuese representando una línea vertical sobre 
>> el mapa, que he representado previamente con ggplot. No es imprescindible, 
>> pero quedaría bien.
>> 
>> Preds <- data.frame()
>> 
>> for (i in seq(from = -180, to = 170, by = 10)){
>>   traindata <- subset(data, lon < i|lon>= i+10)
>>   testdata <- subset(data,(lon> i & lon<= i+10))
>>   
>>   fitrp <- rpart(Clst ~ .- lon - lat, data=traindata,method = "class")
>>   print(i)
>>   
>>   prd <- predict(fitrp, testdata, type="class") # se aplica el modelo a las 
>> muestras test
>>   testdata$prd<-prd
>>   Preds<-rbind(Preds,testdata)
>> }
>> 
>> El vie., 5 jun. 2020 a las 16:18, Emilio L. Cano (> >) escribió:
>> Hola Manuel,
>> Al ser ggplot supongo que será como en cualquier gráfico en ejes 
>> coordenados, añade una capa:
>> 
>> ggplot(…..) + geom_vline(xintercept = vector_de_valores_x)
>> 
>> Un saludo,
>> 
>> Emilio L. Cano
>> http://emilio.lcano.com 
>> 
>> 
>> 
>> > El 5 jun 2020, a las 13:48, Manuel Mendoza > > > escribió:
>> > 
>> > Buenos días ¿sabéis si hay alguna forma de añadir una recta vertical sobre
>> > un mapa hecho previamente con ggplot? Lo que hago ahora es cargar
>> > nuevamente el mapa con la línea añadida (una serie de líneas añadidas
>> > secuencialmente en un loop) pero me gustaría que añadiese las líneas sin
>> > cargar nuevamente el mapa.
>> > Gracias,
>> > Manuel
>> > 
>> >   [[alternative HTML version deleted]]
>> > 
>> > ___
>> > R-help-es mailing list
>> > R-help-es@r-project.org 
>> > https://stat.ethz.ch/mailman/listinfo/r-help-es 
>> > 
>> 
> 


[[alternative HTML version deleted]]

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help

Re: [R-es] líneas sobre un mapa

2020-06-06 Por tema Manuel Mendoza
Gracias Emilio, no sé cómo ponerte un ejemplo reproducible. El mapa es un
ggplot como el que te pongo abajo, y el análisis que se hace en cada vuelta
del loop (que tienes abajo, del anterior email) es un árbol de
clasificación que se entrena con una parte del mapa, dada por la longitud
(lon), y se testa con la otra. Los resultados se almacenan en Preds. Como
puedes ver, la i del loop/for determina lon, una de las variables de la
base de datos del mapa, y a cada iteración del loop (valor de lon) me
indica por qué valor va (print(i)). En vez de eso, o además de, me gustaría
que me representase un linea sobre el mapa que se hizo previamente con
ggplot, que se corresponda con el valor de lon.
Este es el mapa (sigo abajo):

world<-map_data('world')
pyt<-  ggplot(data, aes(x = longitud, y = latitud, color =
ptyrup,size=ptyrup)) +
  geom_point()+
  scale_color_manual(values = c('lightslateblue','black')) +
  scale_size_manual(values=c(1,2))+
  theme(legend.position="top")
windows();pyt

Si en el loop incluyo esto:
  pyt<-pyt+geom_vline(xintercept = i)
  print(pyt)

a cada iteración me representa en el mapa la línea que yo quiero, pero lo
hace representando el mapa de nuevo cada vez. La idea es que me añada la
línea, cada vez, pero sin tener que representar el mapa, es decir, sobre el
que ya estaba. Es por el efecto visual. Parece una tontería, pero frente a
una audiencia esos detalles importan (hasta cierto punto).

Gracias,
Manuel












El sáb., 6 jun. 2020 a las 12:01, Emilio L. Cano ()
escribió:

> Hola,
>
> Como ggplot son gráficos tipo “grid” seguramente puedas añadir las líneas
> como un objeto “grob” sin tener que recargar el mapa.
>
> Con un ejemplo reproducible lo podría confirmar.
>
> Un saludo,
>
> Emilio L. Cano
> http://emilio.lcano.com
>
>
>
> El 5 jun 2020, a las 17:48, Manuel Mendoza 
> escribió:
>
> Gracias Emilio y Jorge. Tengo que explicarlo mejor. Mostrando a una
> audiencia cómo hacer un tipo de análisis, se hace un loop (abajo) que
> analiza un mapa por regiones longitudinales. Tal y como está el script,
> print(i) te indica la longitud por la que va (de 10º en 10º) pero me
> gustaría que en vez de eso te fuese representando una línea vertical sobre
> el mapa, que he representado previamente con ggplot. No es imprescindible,
> pero quedaría bien.
>
> Preds <- data.frame()
>
> for (i in seq(from = -180, to = 170, by = 10)){
>   traindata <- subset(data, lon < i|lon>= i+10)
>   testdata <- subset(data,(lon> i & lon<= i+10))
>
>   fitrp <- rpart(Clst ~ .- lon - lat, data=traindata,method = "class")
>   print(i)
>
>   prd <- predict(fitrp, testdata, type="class") # se aplica el modelo a
> las muestras test
>   testdata$prd<-prd
>   Preds<-rbind(Preds,testdata)
> }
>
> El vie., 5 jun. 2020 a las 16:18, Emilio L. Cano ()
> escribió:
>
>> Hola Manuel,
>> Al ser ggplot supongo que será como en cualquier gráfico en ejes
>> coordenados, añade una capa:
>>
>> ggplot(…..) + geom_vline(xintercept = vector_de_valores_x)
>>
>> Un saludo,
>>
>> Emilio L. Cano
>> http://emilio.lcano.com
>>
>>
>>
>> > El 5 jun 2020, a las 13:48, Manuel Mendoza 
>> escribió:
>> >
>> > Buenos días ¿sabéis si hay alguna forma de añadir una recta vertical
>> sobre
>> > un mapa hecho previamente con ggplot? Lo que hago ahora es cargar
>> > nuevamente el mapa con la línea añadida (una serie de líneas añadidas
>> > secuencialmente en un loop) pero me gustaría que añadiese las líneas sin
>> > cargar nuevamente el mapa.
>> > Gracias,
>> > Manuel
>> >
>> >   [[alternative HTML version deleted]]
>> >
>> > ___
>> > R-help-es mailing list
>> > R-help-es@r-project.org
>> > https://stat.ethz.ch/mailman/listinfo/r-help-es
>>
>>
>

[[alternative HTML version deleted]]

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es


Re: [R-es] líneas sobre un mapa

2020-06-06 Por tema Javier Marcuzzi
Estimado

Si no comprendo mal, una idea media loca. Entendí que es un mapa, algo
geográfico, pues si es así se podría colocar el valor de algo de análisis
como si fuese la altura de las montañas.

Javier Marcuzzi

El sáb., 6 jun. 2020 a las 7:02, Emilio L. Cano ()
escribió:

> Hola,
>
> Como ggplot son gráficos tipo “grid” seguramente puedas añadir las líneas
> como un objeto “grob” sin tener que recargar el mapa.
>
> Con un ejemplo reproducible lo podría confirmar.
>
> Un saludo,
>
> Emilio L. Cano
> http://emilio.lcano.com
>
>
>
> > El 5 jun 2020, a las 17:48, Manuel Mendoza 
> escribió:
> >
> > Gracias Emilio y Jorge. Tengo que explicarlo mejor. Mostrando a una
> audiencia cómo hacer un tipo de análisis, se hace un loop (abajo) que
> analiza un mapa por regiones longitudinales. Tal y como está el script,
> print(i) te indica la longitud por la que va (de 10º en 10º) pero me
> gustaría que en vez de eso te fuese representando una línea vertical sobre
> el mapa, que he representado previamente con ggplot. No es imprescindible,
> pero quedaría bien.
> >
> > Preds <- data.frame()
> >
> > for (i in seq(from = -180, to = 170, by = 10)){
> >   traindata <- subset(data, lon < i|lon>= i+10)
> >   testdata <- subset(data,(lon> i & lon<= i+10))
> >
> >   fitrp <- rpart(Clst ~ .- lon - lat, data=traindata,method = "class")
> >   print(i)
> >
> >   prd <- predict(fitrp, testdata, type="class") # se aplica el modelo a
> las muestras test
> >   testdata$prd<-prd
> >   Preds<-rbind(Preds,testdata)
> > }
> >
> > El vie., 5 jun. 2020 a las 16:18, Emilio L. Cano (<
> emilopezc...@gmail.com >) escribió:
> > Hola Manuel,
> > Al ser ggplot supongo que será como en cualquier gráfico en ejes
> coordenados, añade una capa:
> >
> > ggplot(…..) + geom_vline(xintercept = vector_de_valores_x)
> >
> > Un saludo,
> >
> > Emilio L. Cano
> > http://emilio.lcano.com 
> >
> >
> >
> > > El 5 jun 2020, a las 13:48, Manuel Mendoza  > escribió:
> > >
> > > Buenos días ¿sabéis si hay alguna forma de añadir una recta vertical
> sobre
> > > un mapa hecho previamente con ggplot? Lo que hago ahora es cargar
> > > nuevamente el mapa con la línea añadida (una serie de líneas añadidas
> > > secuencialmente en un loop) pero me gustaría que añadiese las líneas
> sin
> > > cargar nuevamente el mapa.
> > > Gracias,
> > > Manuel
> > >
> > >   [[alternative HTML version deleted]]
> > >
> > > ___
> > > R-help-es mailing list
> > > R-help-es@r-project.org 
> > > https://stat.ethz.ch/mailman/listinfo/r-help-es <
> https://stat.ethz.ch/mailman/listinfo/r-help-es>
> >
>
>
> [[alternative HTML version deleted]]
>
> ___
> R-help-es mailing list
> R-help-es@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>

[[alternative HTML version deleted]]

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es


Re: [R-es] líneas sobre un mapa

2020-06-06 Por tema Emilio L . Cano
Hola,

Como ggplot son gráficos tipo “grid” seguramente puedas añadir las líneas como 
un objeto “grob” sin tener que recargar el mapa. 

Con un ejemplo reproducible lo podría confirmar.

Un saludo,

Emilio L. Cano
http://emilio.lcano.com



> El 5 jun 2020, a las 17:48, Manuel Mendoza  
> escribió:
> 
> Gracias Emilio y Jorge. Tengo que explicarlo mejor. Mostrando a una audiencia 
> cómo hacer un tipo de análisis, se hace un loop (abajo) que analiza un mapa 
> por regiones longitudinales. Tal y como está el script, print(i) te indica la 
> longitud por la que va (de 10º en 10º) pero me gustaría que en vez de eso te 
> fuese representando una línea vertical sobre el mapa, que he representado 
> previamente con ggplot. No es imprescindible, pero quedaría bien.
> 
> Preds <- data.frame()
> 
> for (i in seq(from = -180, to = 170, by = 10)){
>   traindata <- subset(data, lon < i|lon>= i+10)
>   testdata <- subset(data,(lon> i & lon<= i+10))
>   
>   fitrp <- rpart(Clst ~ .- lon - lat, data=traindata,method = "class")
>   print(i)
>   
>   prd <- predict(fitrp, testdata, type="class") # se aplica el modelo a las 
> muestras test
>   testdata$prd<-prd
>   Preds<-rbind(Preds,testdata)
> }
> 
> El vie., 5 jun. 2020 a las 16:18, Emilio L. Cano ( >) escribió:
> Hola Manuel,
> Al ser ggplot supongo que será como en cualquier gráfico en ejes coordenados, 
> añade una capa:
> 
> ggplot(…..) + geom_vline(xintercept = vector_de_valores_x)
> 
> Un saludo,
> 
> Emilio L. Cano
> http://emilio.lcano.com 
> 
> 
> 
> > El 5 jun 2020, a las 13:48, Manuel Mendoza  > > escribió:
> > 
> > Buenos días ¿sabéis si hay alguna forma de añadir una recta vertical sobre
> > un mapa hecho previamente con ggplot? Lo que hago ahora es cargar
> > nuevamente el mapa con la línea añadida (una serie de líneas añadidas
> > secuencialmente en un loop) pero me gustaría que añadiese las líneas sin
> > cargar nuevamente el mapa.
> > Gracias,
> > Manuel
> > 
> >   [[alternative HTML version deleted]]
> > 
> > ___
> > R-help-es mailing list
> > R-help-es@r-project.org 
> > https://stat.ethz.ch/mailman/listinfo/r-help-es 
> > 
> 


[[alternative HTML version deleted]]

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es