R 基于用户输入的多边形颜色映射

R 基于用户输入的多边形颜色映射,r,shiny,leaflet,R,Shiny,Leaflet,我想根据用户输入对多边形进行颜色映射。我使用的列有分类变量,所以我使用的是colorFactor函数,我已经测试过它是否正常工作。问题在于,当我加载闪亮的应用程序时,observe函数会立即终止,并在传单中输出“addPolygons中的错误:未使用的参数(fillcolor=~pal(AreaTyp))。我的问题是如何使用observe函数正确地包含反应性。这是我的密码: #INTERACTIVE MAPPING #colorfunction pal<-colorFactor(r

我想根据用户输入对多边形进行颜色映射。我使用的列有分类变量,所以我使用的是colorFactor函数,我已经测试过它是否正常工作。问题在于,当我加载闪亮的应用程序时,observe函数会立即终止,并在传单中输出“addPolygons中的错误:未使用的参数(fillcolor=~pal(AreaTyp))。我的问题是如何使用observe函数正确地包含反应性。这是我的密码:

#INTERACTIVE MAPPING
  #colorfunction
  pal<-colorFactor(rainbow(7),mp$AreaTyp)

  #set data based on user input
  fdata<-reactive({
    data<-mp
    if(input$area!="All"){
      data<-data[data$AreaType==input$area,]
    }
    data
  })



  output$leaf<-renderLeaflet({

    leaflet(fdata()) %>%

      #Initializing the map
      setView(lng=36.092245, lat=-00.292115,zoom=15)%>%

      #Base map
      #Add default OpenStreetMap map tiles
      addTiles(group = "default")%>%
      #addProviderTiles("Esri.NatGeoWorldMap",group = "default")%>%  
      #addProviderTiles("CartoDB.Positron",group = "custom")%>%

      #Overlay map
      addPolygons(
        data = fdata(),
        fillColor = "blue",
        weight = 1, smoothFactor = 0.5,
        opacity = 1.0, fillOpacity = 1.0,
        group = "basepoly",
        highlightOptions = highlightOptions(
          weight = 2,
          color = "red",
          fillOpacity = 0.7,
          bringToFront = TRUE
        ),label =~LIA


      )


  })


  observe({

    leafletProxy("leaf",data = fdata()) %>%


      clearShapes() %>%
      addPolygons(
        weight = 1, smoothFactor = 0.5,
        opacity = 1.0, fillOpacity = 1.0,
        data=fdata(),
        fillcolor = ~pal(AreaTyp),
        label =~LIA

      )



  })
#交互式映射
#色函数
pal%
#叠加图
添加多边形(
数据=fdata(),
fillColor=“蓝色”,
权重=1,平滑因子=0.5,
不透明度=1.0,填充不透明度=1.0,
group=“basepoly”,
highlightOptions=highlightOptions(
重量=2,
color=“红色”,
fillOpacity=0.7,
bringToFront=真
),label=~LIA
)
})
观察({
传单代理(“叶”,数据=fdata())%>%
clearShapes()%>%
添加多边形(
权重=1,平滑因子=0.5,
不透明度=1.0,填充不透明度=1.0,
数据=fdata(),
fillcolor=~pal(区域类型),
label=~LIA
)
})

fillcolor=~pal(区域类型)
更改为
fillcolor=~pal(区域类型)

我们来分析一下你的错误

“addPolygons中出错:传单中未使用的参数(fillcolor=~pal(AreaTyp))”

第一:

“添加多边形时出错:

这意味着addPolygons无法运行,而不是观察者失败

第二

“未使用的参数”

这意味着您添加了addpolygons无法使用的参数

第三

(fillcolor=~pal(AreaTyp))在传单中


这正好告诉你哪个参数是错误的。

请分享一个可复制的例子:我问了一个可复制的例子。检查:错误不再出现在编辑之后,但没有基于用户输入的反应性,这是我想要的。当用户选择input$area时,基于不同类别v的多边形上有一个颜色映射变量(混合、计划外、计划内)。正如urwacfc指出的,这是一个非常有限的示例,不可复制。因此,我无法运行它来理解它为什么不起作用。但是,我要说的是,这里的问题是,反应函数中的数据值实际上没有改变。您能验证输入$区域是否确实使o无效并改变了ofdata的输出?我已经问了一个可复制的。请查看: