![](/img/trans.png)
[英]Filter data points on a map using R Leaflet and Shiny (multiple criteria)
[英]How can I plot individual data points in a map using R/ leaflet?
我试图显示给定位置的各个点,例如 map 相当于点 plot。 我尝试在 R 中使用leaflet
库,但我只能将 map 的标记大小设置为连续变量。 是否可以将单个数据点作为集群进行 map,而不是将标记的大小映射到连续变量?
我的数据看起来像这样
Lat,Lon,Place,People
19.877263,75.3390241,Aurangabad,1
20.2602939,85.8394548,Bhubaneshwar,2
30.7194022,76.7646552,Chandigarh,23
13.0801721,80.2838331,Chennai,25
11.0018115,76.9628425,Coimbatore,2
27.4844597,94.9019447,Dibrugarh,1
16.2915189,80.4541588,Guntur,1
17.3887859,78.4610647,Hyderabad,4
22.5677459,88.3476023,Kolkata,7
15.8309251,78.0425373,Kurnool,1
9.9256493,78.1228866,Madurai,1
您可以使用以下代码获得点 plot
leaflet(df) %>% addTiles() %>%
addCircleMarkers(lng = ~Lon, lat = ~Lat,
popup = ~Place)
df = structure(list(Lat = c(19.877263, 20.2602939, 30.7194022, 13.0801721,
11.0018115, 27.4844597, 16.2915189, 17.3887859, 22.5677459, 15.8309251,
9.9256493), Lon = c(75.3390241, 85.8394548, 76.7646552, 80.2838331,
76.9628425, 94.9019447, 80.4541588, 78.4610647, 88.3476023, 78.0425373,
78.1228866), Place = structure(1:11, .Label = c("Aurangabad",
"Bhubaneshwar", "Chandigarh", "Chennai", "Coimbatore", "Dibrugarh",
"Guntur", "Hyderabad", "Kolkata", "Kurnool", "Madurai"), class = "factor"),
People = c(1L, 2L, 23L, 25L, 2L, 1L, 1L, 4L, 7L, 1L, 1L)), class = "data.frame", row.names = c(NA,
-11L))
leaflet
适用于sf
package。 抽取数据点样本
lat <- c(19.877263, 20.2602939)
lon <- c(75.3390241, 85.8394548)
place <- c("Aurangabad", "Bhubaneshwar")
您可以使用sf
package 在空间 object 中转换它们。 为了leaflet
给你瓷砖,你需要有 WSG84 坐标。 我假设你的数据在这个坐标系中。
library(sf)
df <- data.frame(lon, lat, place, stringsAsFactors = FALSE)
points <- st_as_sf(df, coords = c("lon", "lat"), crs = 4326)
然后很容易 plot 与leaflet
。 假设您想要在单击时弹出地点名称的标记
library(leaflet)
leaflet(df) %>% addTiles() %>% addMarkers(popup = ~ place)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.