r - R中的填充地图+位置图
问题描述
重新表述这个问题......我正在准备报告,其中一部分是空间即。
我有 2 个数据集。First(Scores) 是有分数的国家。第二个(位置)是精确的经度和纬度,指的是这些国家/地区内的确切位置。举个例子:
Scores = data.frame( Country = c("Lebanon","UK","Chille"), Score =c(1,3.5,5))
Locations = data.frame(Location_Name = c("London Bridge", "US Embassy in Lebanon" , "Embassy of Peru in Santiago"),
LONG = c(-0.087749, 35.596614, -70.618236),
LAT = c(51.507911, 33.933586, -33.423285))
我想要实现的是获得填充的世界地图(在我的数据集中,我有每个国家)并在其边界内以连续比例的分数(Scores$Score)着色。最重要的是,我想从 Locations 数据框中添加图钉、气泡或任何位置标记。
这个观点:
理想情况下,我还希望能够从 Locations data.frame 中围绕 Locations 绘制 2 公里半径。
我知道分开做,但似乎无法在一张漂亮的干净地图上实现。
我真的很感谢这方面的任何帮助或提示,在那一整天都被困住了
解决方案
正如@agila 所建议的,您可以使用该tmap
软件包。
首先合并您的Scores
数据,World
以便您可以根据Scores
数据填充国家/地区。请注意,合并时您的Country
列应与in World 完全匹配。name
您将需要使用st_as_sf
from sf
package 来制作要添加到地图Locations
的对象。sf
tm_dots
可以显示积分。气泡的替代方法是tm_bubbles
.
library(tmap)
library(sf)
data(World)
Scores = data.frame(Country = factor(c("Mexico","Brazil","Chile"), levels = levels(World$name)),
Score =c(1,3.5,5))
Locations = data.frame(Location_Name = c("Rio de Janeiro", "US Embassy in Lebanon" , "Embassy of Peru in Santiago"),
LONG = c(-43.196388, 35.596614, -70.618236),
LAT = c(-22.908333, 33.933586, -33.423285))
map_data <- merge(World, Scores, by.x = "name", by.y = "Country", all = TRUE)
locations_sf <- st_as_sf(Locations, coords = c('LONG', 'LAT'))
tm_shape(map_data) +
tm_polygons("Score", palette = "-Blues") +
tm_shape(locations_sf) +
tm_dots(size = .1)
地图
推荐阅读
- java - 项目反应堆,将通量转换为地图
> - data-visualization - 有没有办法在 Google Data Studio 中创建带有“可点击单元格”的树形图?
- flutter - 它正在显示上下文未定义
- react-native - onEndReached 有时有效,有时无效
- java - 警告:(86, 18) 'Stream.peek()' 的结果被忽略
- typo3 - TYPO3 将部分添加到 TMENU 中的链接
- python - Pythn Timer 打印在其他打印的中间。执行顺序有问题吗?
- python - 使用 scipy.findpeaks 在重叠峰的情况下找到合适的峰宽和峰高
- ios - 带有自定义对象的场景的情节提要依赖注入
- powershell - 从 certutil 转储或通过序列号获取颁发 CA (Windows Server PKI)