【问题标题】:Changing legend title in a leaflet map in shiny在闪亮的传单地图中更改图例标题
【发布时间】:2018-07-12 03:57:43
【问题描述】:

我在shiny + leaflet 的地图中有一个可能的着色选项列表,例如

vars <- c("Difference"  = "diff",
          "Index"       = "index",
          "City Cargo"  = "cid_carga",
          "City score"  = "carga_mun_score")

从上述变量中​​,我创建了一个选择列表,用于选择要在地图中着色的所需变量

selectInput("color", "Color", vars, selected = "carga_mun_score")

但是,很明显,当我在 leaflet 地图中创建图例标题时,标题将保留为变量的实际名称,例如,“cid_cargo”而不是“City Cargo” .

addLegend("bottomleft",pal = pal, values = df[[input$color]], title = input$color,
                          layerId = "colorLegend")

有没有办法使用我的别名(在上面的示例中为“城市分数”)名称而不是实际的变量名称(“carga_mun_score”),而不使用很长的if 子句?

【问题讨论】:

    标签: r shiny leaflet


    【解决方案1】:

    简单地说:

    addLegend("bottomleft",pal = pal, values = df[[input$color]], 
                              layerId = "colorLegend", title="City Score")
    

    或者将您的选择保存到可以翻译名称的变量中:

    varname<-switch(input$color,
               "diff" = "Difference",
               "index"="Index",
              "cid_carga"="City Cargo",
              "carga_mun_score"="City score")
    

    然后将该变量传递给您的传单图例:

        addLegend("bottomleft",pal = pal, values = df[[input$color]],
                                  layerId = "colorLegend", title=varname)
    

    【讨论】:

    • 为什么addLegend 中有两个title 参数?
    • 好吧,你的答案在 switch 案例中是错误的,语法被颠倒了。您的第一个“简单”解决方案没有解决问题,这两个标题是错误的。如果您对其进行编辑并纠正这些步骤,我可以接受您的回答
    • 哎呀,怪没有咖啡。我误读了您的问题,但要回答 1)直接在绘图/传单中使用 input$.. 可能会导致引用问题,特别是如果您在其他函数中使用这些输入来管道输入传单
    猜你喜欢
    • 2018-03-13
    • 1970-01-01
    • 1970-01-01
    • 2018-06-19
    • 1970-01-01
    • 2016-09-05
    • 2019-09-03
    • 2023-01-11
    • 1970-01-01
    相关资源
    最近更新 更多