R 根据系数指定不同的图标

R 根据系数指定不同的图标,r,leaflet,R,Leaflet,我想画一张墨尔本所有树木的地图。 我使用的数据集的链接在这里- 在数据集中,我希望根据列名“Genus”分配不同的图标,该列名如下所示: 现在我可以在最后的情节中画出圆圈: 到目前为止我使用的代码: library(leaflet) library(dplyr) td <- read.csv("treedata.csv", header = TRUE) m <- leaflet(td) %>% addTiles('http://{s}.basemaps.cartocdn.

我想画一张墨尔本所有树木的地图。 我使用的数据集的链接在这里-

在数据集中,我希望根据列名“Genus”分配不同的图标,该列名如下所示:

现在我可以在最后的情节中画出圆圈:

到目前为止我使用的代码:

library(leaflet)
library(dplyr)

td <- read.csv("treedata.csv", header = TRUE)
m <- leaflet(td) %>% addTiles('http://{s}.basemaps.cartocdn.com/dark_all/{z}/{x}/{y}.png', 
                              attribution='Map tiles by <a href="http://stamen.com">Stamen Design</a>, <a href="http://creativecommons.org/licenses/by/3.0">CC BY 3.0</a> &mdash; Map data &copy; <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a>')
m %>% addCircles(~Longitude, ~Latitude, popup=paste("Name:", td$CommonName), weight = 3, radius=3, 
                 color="#ffa500", stroke = TRUE, fillOpacity = 0.8)
图书馆(传单)
图书馆(dplyr)
td%addCircles(~经度,~纬度,弹出窗口=粘贴(“名称:”,td$CommonName),权重=3,半径=3,
color=“#ffa500”,笔划=真,填充不透明度=0.8)

如@TimSalabim评论中所述,尝试使用带有图标的标记。为了好玩:

library(leaflet)
library(dplyr)
library(readr)
download.file("https://data.melbourne.vic.gov.au/api/views/fp38-wiyy/rows.csv?accessType=DOWNLOAD", tf <- tempfile(fileext = ".csv"))
set.seed(1)
td <- read_csv(tf) %>% 
  sample_n(500) %>% 
  mutate(Genus = factor(ifelse(Genus %in% c("Quercus", "Corymbia", "Platanus", "Ulmus", "Eucalyptus"), Genus, "other"))) 
m <- leaflet(td) %>% 
  addTiles(urlTemplate = 'http://{s}.basemaps.cartocdn.com/dark_all/{z}/{x}/{y}.png',
           attribution='Map tiles by <a href="http://stamen.com">Stamen Design</a>, <a href="http://creativecommons.org/licenses/by/3.0">CC BY 3.0</a> &mdash; Map data &copy; <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a>')
myicons <- iconList(
  Quercus = makeIcon("http://i.stack.imgur.com/okgqd.png",iconWidth = 8, iconHeight = 8),
  Corymbia = makeIcon("http://i.stack.imgur.com/nfGZT.png",iconWidth = 8, iconHeight = 8),
  Platanus = makeIcon("http://i.stack.imgur.com/J47uj.png",iconWidth = 8, iconHeight = 8),
  Ulmus = makeIcon("http://i.stack.imgur.com/idnpO.png",iconWidth = 8, iconHeight = 8),
  Eucalyptus = makeIcon("http://i.stack.imgur.com/6GzzW.png",iconWidth = 8, iconHeight = 8),
  other = makeIcon("http://i.stack.imgur.com/x0bOg.png",iconWidth = 8, iconHeight = 8)
)
m %>% addMarkers(~Longitude, ~Latitude, popup=paste("Name:", td$`Common Name`),
                 icon = ~myicons[Genus])
图书馆(传单)
图书馆(dplyr)
图书馆(readr)
下载文件(“https://data.melbourne.vic.gov.au/api/views/fp38-wiyy/rows.csv?accessType=DOWNLOAD“,tf%
突变(属=因子(ifelse(c中的属%(“栎属”、“伞房属”、“悬铃木”、“榆属”、“桉树”)、属,“其他”))
m%
addTiles(urlTemplate='http://{s}.basemaps.cartocdn.com/dark_all/{z}/{x}/{y}.png',
attribute='Map tiles by,&mdash;Map data©;')
myicons%addMarkers(~经度,~纬度,弹出=粘贴(“名称:”,td$`Common Name`),
icon=~myicons[属])
给出类似于:


您可以使用自己的标记,只需使用
.png
s即可。请看。一个问题,您是如何使传单具有如此多的点的?您可以使用
addCircles()
函数,还可以查看本教程-[.希望这有帮助。蒂姆萨拉宾,我很久以前就做过这方面的工作,并且能够在
“oher”
“oher”
中用
突变(属=因子(ifelse(属%c)(“栎属”、“伞房属”、“悬铃木”、“榆属”、“桉树”)属、“其他”))
太好了!谢谢大家!差不多完成了!回答得很好!我仍然很好奇这将如何处理所有数据点(不仅仅是500个)?我只是想知道我是否可以根据数据集中的“预期寿命”列为这些图标添加颜色?@TimSalabim我也很好奇-扼杀了我的(相当旧的)机器。