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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何创建由数字变量着色的传单标记相关的知识,希望对你有一定的参考价值。

我有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

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

答案

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

以上是关于如何创建由数字变量着色的传单标记的主要内容,如果未能解决你的问题,请参考以下文章

在角度传单指令中旋转标记

如何为每个片段保存一个变量值以重用它? [关闭]

R中自定义标记的传单图例

带有顶点/片段着色器的光。使用不同的变量。 (openGL)

传单:如何将文本标签添加到自定义标记图标?

如何使用传单的map.eachLayer查找标记?