[R-es] líneas sobre un mapa

Carlos Ortega co| @end|ng |rom qu@||tyexce||ence@e@
Sab Jun 6 23:08:32 CEST 2020


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 (<
mmendoza using 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 (<emilopezcano using gmail.com
> >)
> 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 <mmendoza using fulbrightmail.org>
> > 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 (<
> emilopezcano using 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 <
> mmendoza using 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 using r-project.org
> >> > https://stat.ethz.ch/mailman/listinfo/r-help-es
> >>
> >>
> >
>
>         [[alternative HTML version deleted]]
>
> _______________________________________________
> R-help-es mailing list
> R-help-es using r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>


-- 
Saludos,
Carlos Ortega
www.qualityexcellence.es

	[[alternative HTML version deleted]]



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