我有一个数据帧latitude,longitude以及number。我想添加与这些数字相对应的颜色标记。数字从 1 开始,最多可达 100 或更多。
最佳情况下,我希望值 <= 1 的标记为橙色,<=10 为深橙色,<=50 为红色,>=50 为紫色。
这似乎是一个简单的想法,但我无法完全弄清楚。我尝试使用传单站点中的 Awesome Icons(尽管我宁愿不使用)(向下滚动到 Awesome Icon 部分中的 if 语句),但该方法实际上对我不起作用,并且所有标记都是红色的。
lat lon number
1 19.59917 -155.42009 3
2 22.21065 -159.47324 120
3 22.21407 -159.59058 7
4 24.54509 -81.70717 49
5 24.54630 -81.81060 1
6 24.55411 -81.80333 11
Run Code Online (Sandbox Code Playgroud)
以上是样本数据。它是闪亮应用程序的一部分。
由于没有可重现的数据,我创建了一个示例数据。首先,我获得了加利福尼亚的多边形数据并创建了留在加利福尼亚的随机数据点。然后,我添加了 0 到 100 之间的随机数。然后,我创建了一个名为 的分组变量group,用于为图标着色。你想要深橙色。但是,查看 CRAN 手册,颜色不适用于makeAwesomeIcon(). 所以我选择了深红色。然后,我创建了图标并绘制了地图。由于没有可重现的数据,我看不到你手上有什么。但我希望这个演示能让你继续前进。
library(raster)
library(sp)
library(dplyr)
library(leaflet)
usa <- getData("GADM", country = "usa", level = 1)
cal <- subset(usa, NAME_1 == "California")
foo <- as(cal, "SpatialPolygons")
set.seed(111)
mydata <- spsample(foo, n = 100, "random") %>%
as.data.frame %>%
mutate(number = sample.int(n = 100, replace = FALSE),
group = cut(number, breaks = c(0, 1, 10, 50, Inf),
labels = c("orange", "darkred", "red", "purple"),
include.lowest = TRUE)) %>%
rename(long = x, lat = y)
icons <- awesomeIcons(icon = "whatever",
iconColor = "black",
library = "ion",
markerColor = mydata$group)
leaflet() %>%
addProviderTiles("OpenStreetMap.Mapnik") %>%
addAwesomeMarkers(data = mydata, ~long, ~lat, icon = icons)
Run Code Online (Sandbox Code Playgroud)