R 如何有效地规划河流?
我想出了一种用geom_路径绘制河流的方法。我不知道是否有更好的办法。我不得不将数据帧分割成数百条“河流”。所以它非常慢。有什么想法吗R 如何有效地规划河流?,r,ggplot2,gis,R,Ggplot2,Gis,我想出了一种用geom_路径绘制河流的方法。我不知道是否有更好的办法。我不得不将数据帧分割成数百条“河流”。所以它非常慢。有什么想法吗 world_map <- map_data('world') system("wget https://sites.google.com/site/joabelb/Home/PrincRiosBrazil.zip") system("unzip -o PrincRiosBrazil.zip") library(rgdal) shapeHid <-
world_map <- map_data('world')
system("wget https://sites.google.com/site/joabelb/Home/PrincRiosBrazil.zip")
system("unzip -o PrincRiosBrazil.zip")
library(rgdal)
shapeHid <- readOGR(dsn = ".", layer = "PrincipaisRiosDoBrasil")
shapeHid@data$id = rownames(shapeHid@data)
library(ggplot2)
shapeHid.points = fortify(shapeHid, region="id")#
shapeHid.df = merge(shapeHid.points, shapeHid@data, by="id", all=F)
listofrivers<-split(shapeHid.df, shapeHid.df$id)
myMap3 <- ggplot() +
lapply(listofrivers, function(x) geom_path(data=x, aes(x=long, y=lat), color="gray70", linetype=1)) +
geom_map(data = world_map, map = world_map, aes(map_id = region),
color = 'black', fill = NA, linetype=2) +
theme(panel.border = element_rect(fill = NA, colour = "black"))+
theme(axis.title=element_blank())+
scale_y_continuous(limits=c(-15,6),expand=c(0,0))+
scale_x_continuous(limits=c(-76,-55),expand=c(0,0))
myMap3
world\u map我将执行以下操作:
library(sf)
library(ggplot2)
world_map <- map_data('world')
sdf <- read_sf("PrincipaisRiosDoBrasil.shp")
myMap3 <- ggplot() +
geom_map(data = world_map, map = world_map, aes(map_id = region), color = 'black', fill = NA, linetype=2) +
geom_sf(data = sdf)+
theme(panel.border = element_rect(fill = NA, colour = "black"))+
theme(axis.title=element_blank())+
scale_y_continuous(limits=c(-15,6),expand=c(0,0))+
scale_x_continuous(limits=c(-76,-55),expand=c(0,0))
myMap3
库(sf)
图书馆(GG2)
世界地图我会做以下事情:
library(sf)
library(ggplot2)
world_map <- map_data('world')
sdf <- read_sf("PrincipaisRiosDoBrasil.shp")
myMap3 <- ggplot() +
geom_map(data = world_map, map = world_map, aes(map_id = region), color = 'black', fill = NA, linetype=2) +
geom_sf(data = sdf)+
theme(panel.border = element_rect(fill = NA, colour = "black"))+
theme(axis.title=element_blank())+
scale_y_continuous(limits=c(-15,6),expand=c(0,0))+
scale_x_continuous(limits=c(-76,-55),expand=c(0,0))
myMap3
库(sf)
图书馆(GG2)
世界地图如果你经常使用形状文件,几何路径和几何多边形会提供你所需要的一切。在最新版本中,ggplot直接处理空间对象,因此不需要使用强化和合并(这可能是代码中花费更多时间的步骤)。以下是使用as底图的示例:
shapeUFs <- readOGR('.', 'BRUFE250GC_SIR')
shapeHid <- readOGR('.', 'PrincipaisRiosDoBrasil')
ggplot(shapeUFs, aes(long, lat, group = group)) +
geom_polygon(fill = 'gray90', color = 'black') +
geom_path(data = shapeHid, color = 'steelblue2') +
coord_map() + theme_void()
shapeUFs如果你经常使用shapefile,geom_路径和geom_多边形会提供你所需要的一切。在最新版本中,ggplot直接处理空间对象,因此不需要使用强化和合并(这可能是代码中花费更多时间的步骤)。以下是使用as底图的示例:
shapeUFs <- readOGR('.', 'BRUFE250GC_SIR')
shapeHid <- readOGR('.', 'PrincipaisRiosDoBrasil')
ggplot(shapeUFs, aes(long, lat, group = group)) +
geom_polygon(fill = 'gray90', color = 'black') +
geom_path(data = shapeHid, color = 'steelblue2') +
coord_map() + theme_void()
shapeUFs当我尝试添加一些几何点时,我必须添加一个名为groups的列,这是因为空间点不使用group,我在全局美学中定义了它以简化代码。尝试从第一行中删除group=group
,并将aes(group=group)
添加到几何多边形和几何路径中。或将aes(group=NULL)
添加到geom\u点。发布一个点数据的示例,以便我可以更新答案。当我尝试添加一些几何点时,我必须添加一个名为groups的列,这是因为空间点不使用group,我在全局美学中定义了它以简化代码。尝试从第一行中删除group=group
,并将aes(group=group)
添加到几何多边形和几何路径中。或将aes(group=NULL)
添加到geom\u点。张贴一个你的分数数据的例子,这样我可以更新答案。