如何正确绘制 sf 对象

How to properly plot sf object

我有如下数据:

这些数据是从 Stata 数据集(.dta 导出为 .csv)中获得的,旨在绘制 shapefile 的地图。我将它导入 R,删除缺少数据的行,然后转换为 sf(我不确定这是否是最好的方法)。然后我画图。

coords <- read.csv("filename.csv") %>% drop_na()
coords2 <- st_as_sf(x=coords, coords = c("X_X", "X_Y"))
ggplot(coords2) + geom_sf()

这是我得到的:

我怎样才能得到一张有线而不是点的地图?以及如何根据另一个变量(例如 X_ID?

对各个地图区域进行着色

您可能需要使用 sp 包中的 points_to_lines。

library(sp)
map <- points_to_line(data = coords, 
                          long = "X_X", 
                          lat = "Y_Y", 
                          id_field = "X_id", 
                          sort_field = "shape_pt_sequence")

您可以使用 ggplot2::geom_path()。不用转成sf对象,直接用坐标即可。