无法在addCircleMarkers中设置颜色参数

时间:2018-08-31 05:31:23

标签: r leaflet

我无法获得小册子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”类的对象

我的想法用光了。

1 个答案:

答案 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()的参数是您希望调色板映射到的数据中的数字变量。