使用 R 中的 sf 对象将比例更改为 lat/long
Changing scale to lat/long using sf objects in R
恐怕我就是想不通。我正在尝试使用县集合在 states/US 地区绘制区域; here is an example file (AK_Test.csv).
数据取自urbn_map
数据集territories_counties
。据我了解,此数据使用“简单要素”(sf
) 几何,因此所有多边形数据都存储在每个县级对象的 geometry
列中。
这是我用来绘图的代码:
g <- ggplot(ak_test)
g <- g + geom_sf(aes(geometry = geometry, fill = Region),
color = "black", show.legend = FALSE)
g <- g + geom_sf_label_repel(aes(geometry = geometry, label = County))
g <- g + coord_sf()
g
这是输出:
我不明白轴上的单位,但我希望它们在 lat/long 中——我认为这是 coord_sf()
函数的目的。我试过添加 x 和 y 限制(使用状态的近似边界),但是当我这样做时,图像从页面上掉下来了。
在其他情况下,输出显示为 rotated/tilted(参见带有 Oregon/Idaho/Montana 的图像)- 我希望转换为 lat/long 也能解决这个问题。
这些数字是纬度/经度,但它们与您想要的co-ordinate系统不同。您需要使用适当的 crs re-project 数据:
library(sf)
library(ggplot2)
library(ggrepel)
url <- "https://raw.githubusercontent.com/Doc-Midnight/Test_Dir/main/AK_Test2"
ak_test <- source(url)
ak_test <- ak_test$value
ak_test$geometry <- st_transform(ak_test$geometry, "WGS84")
g <- ggplot(ak_test)
g <- g + geom_sf(aes(geometry = geometry, fill = Region),
color = "black", show.legend = FALSE)
g <- g + geom_sf_label(aes(geometry = geometry, label = County))
g + labs(x = "longitude", y = "latitude")
注意,我不知道 geom_sf_label_repel
的来源,所以我使用了 non-repeling 标签,因为它们是问题的附带条件。
恐怕我就是想不通。我正在尝试使用县集合在 states/US 地区绘制区域; here is an example file (AK_Test.csv).
数据取自urbn_map
数据集territories_counties
。据我了解,此数据使用“简单要素”(sf
) 几何,因此所有多边形数据都存储在每个县级对象的 geometry
列中。
这是我用来绘图的代码:
g <- ggplot(ak_test)
g <- g + geom_sf(aes(geometry = geometry, fill = Region),
color = "black", show.legend = FALSE)
g <- g + geom_sf_label_repel(aes(geometry = geometry, label = County))
g <- g + coord_sf()
g
这是输出:
我不明白轴上的单位,但我希望它们在 lat/long 中——我认为这是 coord_sf()
函数的目的。我试过添加 x 和 y 限制(使用状态的近似边界),但是当我这样做时,图像从页面上掉下来了。
在其他情况下,输出显示为 rotated/tilted(参见带有 Oregon/Idaho/Montana 的图像)- 我希望转换为 lat/long 也能解决这个问题。
这些数字是纬度/经度,但它们与您想要的co-ordinate系统不同。您需要使用适当的 crs re-project 数据:
library(sf)
library(ggplot2)
library(ggrepel)
url <- "https://raw.githubusercontent.com/Doc-Midnight/Test_Dir/main/AK_Test2"
ak_test <- source(url)
ak_test <- ak_test$value
ak_test$geometry <- st_transform(ak_test$geometry, "WGS84")
g <- ggplot(ak_test)
g <- g + geom_sf(aes(geometry = geometry, fill = Region),
color = "black", show.legend = FALSE)
g <- g + geom_sf_label(aes(geometry = geometry, label = County))
g + labs(x = "longitude", y = "latitude")
注意,我不知道 geom_sf_label_repel
的来源,所以我使用了 non-repeling 标签,因为它们是问题的附带条件。