我无法获得小册子addCircleMarkers
的功能,无法将数据映射的颜色应用于标记。
Nb。我使用fn.palette
生成了colorRampPalette
。它工作正常,在映射数据向量x
时会产生从绿色>黄色>红色的十六进制代码。输出向量colours
看起来像(“#00FF00FF”“#FFD200FF”“#7FFF00FF”“#FFFF00FF” ...)。
如果我将color
设置为十六进制代码向量:
map %>%
addCircleMarkers(lon, lat, color = colours, radius = 2, weight = 0,
fill = TRUE, fillOpacity = 0.5, opacity = 0.6)
它仅绘制黑色标记。
如果我使用leaflet::pal
函数:
pal <- colorNumeric(palette = fn.palette, domain = x)
map %>% addCircleMarkers(lon, lat, color = pal(x), radius = radius,
stroke = FALSE, fillOpacity = 1)
它给出了
警告信息: 在seq.int(0,1,length.out = n)中: 'length.out'参数使用的第一个元素
,仅绘制黑色标记。
使用color = ~pal(x)
代替color = pal(x)
(如https://rstudio.github.io/leaflet中的示例)抛出
UseMethod(“ metaData”)中的错误: 没有适用于“ metaData”的适用方法应用于“ NULL”类的对象
我的想法用光了。
答案 0 :(得分:2)
这里是在R中用彩色圆圈标记制作传单地图的可复制示例。
library(leaflet)
library(viridisLite)
# get domain of numeric data
(domain <- range(quakes$depth))
# make palette
pal <- colorNumeric(palette = viridis(100), domain = domain)
# make map
leaflet(quakes) %>%
addTiles() %>%
addCircleMarkers(color = ~pal(depth))
1)在使用colorNumeric
制作调色板时(假设您有要映射的数字数据),请确保domain
参数是可以映射的可能值。
对于colorNumeric和colorBin,这可以是一个简单的数字范围(例如c(0,100))
在这里,我首先计算了quakes$depth
的范围。
2)确保确保使用color = ~pal(depth)
addCircleMarkers
3)还要确保~pal()
的参数是您希望调色板映射到的数据中的数字变量。