如何创建由数字变量着色的传单标记
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何创建由数字变量着色的传单标记相关的知识,希望对你有一定的参考价值。
我有latitude
,longitude
和number
的数据框。我想添加与这些数字对应的颜色标记。数字从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)
以上是关于如何创建由数字变量着色的传单标记的主要内容,如果未能解决你的问题,请参考以下文章