地理数据的R-Plotly颜色映射

地理数据的R-Plotly颜色映射,r,shiny,plotly,sf,R,Shiny,Plotly,Sf,我有一个英国的shapefile,我正试图把它作为一个闪亮的应用程序的一部分来绘出。每个区域都有一个属性值,介于0和5之间,但也可以是NA。如何使NA值以灰色显示(例如),并使绘图的其余部分遵循渐变 data()下面是一个反应式对象,它根据用户输入读取连接到我的数据的shapefile Plotly代码如下所示: output$plot <- renderPlotly({plot_ly(data(), split

我有一个英国的shapefile,我正试图把它作为一个闪亮的应用程序的一部分来绘出。每个区域都有一个属性值,介于0和5之间,但也可以是NA。如何使NA值以灰色显示(例如),并使绘图的其余部分遵循渐变

data()
下面是一个反应式对象,它根据用户输入读取连接到我的数据的shapefile

Plotly代码如下所示:

output$plot <- renderPlotly({plot_ly(data(), 
                                     split = ~region,
                                     color = ~value,
                                     span = I(1),
                                     showlegend = FALSE,
                                     colors = colorRampPalette(c("green","yellow","red"))(50),
                                     alpha = 1
                                     )
                           })    
我试过几件事:

  • 将自定义的
    colorscale
    传递到
    fillcolor
    参数中,但这不起任何作用,只是默认返回到标准的
    colorscale
  • 将所有
    NAs
    设置为-1,然后执行以下操作
  • 分割颜色。这在实际颜色栏上显示良好,但在没有
    NA
    值时会遇到问题,因为接近0的值会映射到颜色比例的灰色区域

    使用
    ggplot
    ggplotly
    不是一个选项,因为数据太大

    有什么想法吗?理想情况下,
    plotly
    会有一个与
    ggplot
    中类似的
    nacolour
    参数,但我似乎找不到类似的参数。。。提前谢谢

    Warning: line.color doesnt (yet) support data arrays
    Warning: Only one fillcolor per trace allowed
    
    colors = c(colorRampPalette(c("#c3c3c3", "c3c3c3"))(9),
               colorRampPalette(c("#c3c3c3", "green"))(2)
               colorRampPalette(c("green","yellow","red"))(49))