Buenos dÃas, hago un mapa con ggplot:
world<-map_data('world')
windows();ggplot(legend=FALSE) +
...
geom_point(data=Data,aes(x=lon,y=lat,color=Clst),size=1.25) +
scale_color_manual(values=c("grey45","navy","skyblue","gold","green3","darkgreen"))
+
geom_path( data=world, aes(x=long, y=lat,group=group)) +
labs(title = "Trophic Patterns - Full Data")+
guides(colour = guide_legend(override.aes = list(size=5)))
después hago un loop con for:
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",
cp=cpopt)
print(i)
prd <- predict(fitrp, testdata, type="class") # se aplica el modelo a las
muestras test
testdata$prd<-prd
Preds<-rbind(Preds,testdata)
}
en vez de print(i), que me indica por dónde va el loop, me gustarÃa que
me fuera añadiera una lÃnea vertical al mapa en la longitud (lon) que
corresponde a i.
Muchas gracias por vuestra ayuda, como siempre,
Manuel
[R-es] añadir líneas verticales con ggplot
3 messages · Manuel Mendoza
Buenas, como os decÃa, hago un mapa con ggplot (pongamos este más sencillo): pyt<-ggplot(data, aes(x = longitud, y = latitud)) +
geom_point(aes(color = factor(ptyrup))) windows(); pyt dentro del loop incluyo: pyt + geom_vline(xintercept = i), pero entonces me borra la linea anterior, y lo que yo pretendo es que me vaya añadiendo lÃneas sin borrar las anteriores. Con plot, en vez de ggplot era fácil (abline(v=i)), pero por más que busco no encuentro la forma de hacer lo mismo con ggplot, que el mapa queda mucho mejor. Gracias, Manuel
en vez de print(i), que me indica por dónde va el loop, me gustarÃa que me fuera añadiera una lÃnea vertical al mapa en la longitud (lon) que corresponde a i. Muchas gracias, Manuel
CreÃa haberlo solucionado con: pyt<-ggplot(data, aes(x = longitud, y = latitud)) + geom_point(aes(color = factor(ptyrup))) windows();pyt e incluyendo en el loop: pyt<-pyt+ geom_vline(xintercept = i) pyt Pero no. Es extraño, pues sale bien si hago yo las iteraciones, una a una, pero cuando hago el loop no dibuja las lÃneas ?.
Buenas, como os decÃa, hago un mapa con ggplot (pongamos este más sencillo): pyt<-ggplot(data, aes(x = longitud, y = latitud)) +
geom_point(aes(color = factor(ptyrup))) windows(); pyt dentro del loop incluyo: pyt + geom_vline(xintercept = i), pero entonces me borra la linea anterior, y lo que yo pretendo es que me vaya añadiendo lÃneas sin borrar las anteriores. Con plot, en vez de ggplot era fácil (abline(v=i)), pero por más que busco no encuentro la forma de hacer lo mismo con ggplot, que el mapa queda mucho mejor. Gracias, Manuel
en vez de print(i), que me indica por dónde va el loop, me gustarÃa que me fuera añadiera una lÃnea vertical al mapa en la longitud (lon) que corresponde a i. Muchas gracias, Manuel