R 将比例尺添加到绘图地图

R 将比例尺添加到绘图地图,r,map,ggplot2,spatial,R,Map,Ggplot2,Spatial,我在ggplot2中生成了这张地图: library(maptools); library(ggplot2) data(wrld_simpl) world <- fortify(wrld_simpl) worldUk <- subset(world, id=="GBR") ggplot() + geom_path(aes(long, lat, group=group), data=worldUk, color="black", fill=NA) + coord_equal()

我在
ggplot2
中生成了这张地图:

library(maptools); library(ggplot2)
data(wrld_simpl)
world <- fortify(wrld_simpl)
worldUk <- subset(world, id=="GBR")
ggplot() +
geom_path(aes(long, lat, group=group), data=worldUk, color="black", fill=NA) +
  coord_equal()
库(maptools);图书馆(GG2)
数据(wrld_siml)
world我建议使用annotate(),这将允许您在绘图区域中绘制正确长度的线段。然后,您可以在上方/下方添加文本作为标签

我在网上找到了这个答案,我觉得它很简单,而且效果很好,所以我必须分享它

很简单,首先将下面的代码粘贴到控制台中(无需编辑)

在上面的例子中,我调用«scaleBar»函数,并为参数指定一些值。例如,lon=-130,lat=26意味着我希望矩形的左下角点位于(-130,26)。您需要根据需要定义每个参数的其他值(函数标题中有每个参数的说明)。

有一个名为的包,允许您自定义比例尺和北箭头

ggplot() +
  geom_path(aes(long, lat, group=group), data=worldUk, color="black", fill=NA) +
  coord_equal() +
  ggsn::scalebar(worldUk, dist = 100, st.size=3, height=0.01, dd2km = TRUE, model = 'WGS84')

另一个选项是来自软件包的
annotation\u scale
。更多关于博客帖子的提示

library(ggplot2)
library(maptools)
data(wrld_simpl)

world_sf <- sf::st_as_sf(wrld_simpl)
worldUk <- subset(world_sf, NAME == 'United Kingdom')

您测试过这个吗:?是的-请参阅问题底部的链接只是一个观察-您需要非常小心地将比例尺放在覆盖大范围纬度的绘图上。根据您选择的投影,比例尺可能仅在图像的一部分有效。所以,这并不像仅仅添加一个比例尺那么简单……从Osmo Salomaa那里找到了这个函数,它对我很有用(使用UTM CRS)。此解决方案似乎不适用于ggmap(),但似乎适用于ggplot()。关于使用ggmap有什么线索吗?我得到一个错误:
不知道如何为函数类型的对象自动选择比例。默认为data.frame(x=c)中的连续错误(13.15,13.15,13.2235616636229,13.2235616636229,:参数表示不同的行数:5,0
我能做什么?
ggplot() +
  geom_path(aes(long, lat, group=group), data=worldUk, color="black", fill=NA) +
  coord_equal() +
  ggsn::scalebar(worldUk, dist = 100, st.size=3, height=0.01, dd2km = TRUE, model = 'WGS84')
library(ggplot2)
library(maptools)
data(wrld_simpl)

world_sf <- sf::st_as_sf(wrld_simpl)
worldUk <- subset(world_sf, NAME == 'United Kingdom')
library(ggspatial)

ggplot() +
  geom_sf(data = worldUk) +
  annotation_scale()