gpt4 book ai didi

r - 如何在与国家 R 传单对应的 map 多边形上分配弹出窗口

转载 作者:行者123 更新时间:2023-12-03 19:35:44 24 4
gpt4 key购买 nike

我正在尝试编写一个脚本,允许人们单击一个国家/地区,然后会出现一个弹出窗口并显示该国家/地区的名称和相应的值。我已经成功地创建了每个国家的 map 和边界,但是当你点击,例如俄罗斯时,弹出窗口会显示印度。下面是脚本的简化版本:

library(leaflet)
library(maps)

countries <- c("Australia", "South Africa", "India", "Mexico", "USA", "Russia")

values <- c(1,2,3,4,5,6)

bounds <- map("world", countries, fill = TRUE, plot = FALSE)


map <- leaflet(data) %>%
addTiles() %>%
addPolygons(data = bounds, group = "Countries",
color = "red",
weight = 2,
popup = paste("Country: ", countries, "<br>", "Value: ", values, "<br>"),
fillOpacity = 0.1,
highlightOptions = highlightOptions(color = "black",
weight = 2,
bringToFront = TRUE))

map

map 是使用 leaflet 生成的R 中的包。欢迎任何解决方案或建议,我确信这是我在某处犯的一个简单错误。

最佳答案

我给你留下两个选择。如果您只想显示国家/地区名称,就像它们在 bounds 中一样(例如,澳大利亚:梅尔维尔岛),您需要更改 popup = countriespopup = ~names .

map1 <- leaflet() %>%
addProviderTiles("OpenStreetMap.Mapnik") %>%
addPolygons(data = bounds, group = "Countries",
color = "red",
weight = 2,
popup = ~names,
fillOpacity = 0.1,
highlightOptions = highlightOptions(color = "black",
weight = 2,
bringToFront = TRUE))

enter image description here

如果您只想拥有您在 countries 中指定的国家/地区名称,你想操纵 names使用 gsub() , 例如。在这里,我从 : 中删除了所有字符到每个名称的末尾。
map2 <- leaflet() %>%
addProviderTiles("OpenStreetMap.Mapnik") %>%
addPolygons(data = bounds, group = "Countries",
color = "red",
weight = 2,
popup = ~gsub(x = names, pattern = ":.*$", replacement = ""),
fillOpacity = 0.1,
highlightOptions = highlightOptions(color = "black",
weight = 2,
bringToFront = TRUE))

enter image description here

额外

OP在他的问题中又增加了一件事。这是我的想法。如果您有两件事要在弹出窗口中显示,您可以执行以下操作。您添加 valuebounds并创建弹出窗口。
# Add values to bounds. 

set.seed(111)
bounds$value <- sample.int(n = 1000, size = 301, replace = TRUE)

map3 <- leaflet() %>%
addProviderTiles("OpenStreetMap.Mapnik") %>%
addPolygons(data = bounds, group = "Countries",
color = "red",
weight = 2,
popup = paste("Country: ", bounds$names, "<br>",
"Value: ", bounds$value, "<br>"),
fillOpacity = 0.1,
highlightOptions = highlightOptions(color = "black",
weight = 2,
bringToFront = TRUE))

enter image description here

关于r - 如何在与国家 R 传单对应的 map 多边形上分配弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49512240/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com