如何创建由数字变量着色的传单标记

问题描述 投票:3回答:1

我有latitudelongitudenumber的数据框。我想添加与这些数字对应的颜色标记。数字从1开始,最多可达100或更多。

最理想的情况是,我希望值<= 1的标记为橙色,<= 10为深橙色,<= 50为红色,> = 50为紫色。

这似乎是一个简单的想法,但我无法弄明白。我尝试使用来自leaflet site的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

以上是样本数据。它是一个闪亮的应用程序的一部分。

r maps leaflet
1个回答
3
投票

由于没有可重现的数据,我创建了一个样本数据。首先,我获得了加州的多边形数据,并创建了留在加利福尼亚的随机数据点。然后,我添加了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)

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.