相关疑难解决方法(0)

用圆形小册子R创建图例

我正在尝试创建一个由变量大小调整的小册子地图.是否可以使用不同大小的圆圈创建表示不同变量值的图例?我发现另一篇文章展示了如何在图例中将方块转换为圆圈,但我不确定如何更改图例中不同圆圈的大小.

例如,这是一个虚拟脚本,它创建了与2个变量类(5和10)相关的10个点.我想要一个带有两个圆圈的图例,其大小与使用半径为5和10的addCircleMarkers指定的相同.如果有人可以修改以创建我想要的东西,我将非常感激!谢谢!

library(shiny)
library(leaflet)

#create data
Points<-data.frame(x=runif(10,20,21), y=runif(10,0,1), var=rep(c(5,10),5))
map = leaflet() %>% addTiles()

# Set up shiny app
shinyApp(ui=bootstrapPage(
tags$style(type = "text/css", "html, body {width:100%;height:100%}",
".leaflet .legend i{
border-radius: 50%;
width: 10px;
height: 10px;
margin-top: 4px;
}
"
),
leafletOutput("myMap", width = "100%", height = "100%")),

server= function(input, output){

output$myMap = renderLeaflet({map %>% 
    addCircleMarkers(Points$x,Points$y,radius=Points$var) %>%
    addLegend(colors=rep("blue",2), labels=c(5,10))
  })
})
Run Code Online (Sandbox Code Playgroud)

r legend leaflet shiny

11
推荐指数
1
解决办法
4728
查看次数

闪亮的传单easyPrint插件

我正在尝试将easyPrint插件整合到我的闪亮小册子应用程序中.我想要的是看起来像演示的东西,但有光泽.

我试图模仿这些例子,但都没有成功.

到目前为止,这是我的R代码的代码:

    library(shiny)
    library(shinydashboard)
    library(shinyjs)
    library(htmlwidgets)
    library(htmltools)
    library(leaflet)
    library(leaflet.extras)
    library(sp)

    shinyApp(
  ui = fluidPage(
    leafletOutput("map", height = 750)
  ),
  server = function(input, output) {

    registerPlugin <- function(map, plugin) {
      map$dependencies <- c(map$dependencies, list(plugin))
      map
    }

    easyPrintPlugin <- htmlDependency("leaflet-easyprint", "2.1.8",
                                      src = c(href = "https://github.com/rowanwins/leaflet-easyPrint/blob/gh-pages/dist/"),
                                      script = "index.js")

    # Map
    output$map <- renderLeaflet({
      leaflet() %>%
        addProviderTiles(providers$CartoDB.Positron) %>%
        registerPlugin(easyPrintPlugin) %>%
        onRender("function(el, x) {
                 L.easyPrint({
                 position: 'topleft',
                 sizeModes: ['A4Portrait', 'A4Landscape']
                 }).addTo(map);}")
    })

  }
)
Run Code Online (Sandbox Code Playgroud)

然而,一切都没有发生.它实际上是一个白色的屏幕.如果我删除onRender部分,传单正常.

不幸的是,我对Shiny,leaflet,.js和github相对较新,所以我很难确定导致问题的方面.

plugins r leaflet shiny shinyjs

6
推荐指数
1
解决办法
1408
查看次数

如何在 Shiny 中保存传单地图

问题之后,我希望将传单地图保存和下载为 png 或 jpeg 图像。我有以下代码,但我不断收到错误消息。

ui <- fluidPage(
  leafletOutput("map"),
  downloadButton("dl")
)

server <- function(input, output, session) {
  output$map <- renderLeaflet({
    leaflet() %>% 
      addTiles()
  })

  output$dl <- downloadHandler(
    filename = "map.png",

    content = function(file) {
      mapshot(input[["map"]], file = file)
    }
  )
}

shinyApp(ui = ui, server = server)
Run Code Online (Sandbox Code Playgroud)

我尝试下载(通过单击按钮)时遇到的错误是

Warning: Error in system.file: 'package' must be of length 1
Stack trace (innermost first):
    65: system.file
    64: readLines
    63: paste
    62: yaml.load
    61: yaml::yaml.load_file
    60: getDependency
    59: widget_dependencies
    58: htmltools::attachDependencies …
Run Code Online (Sandbox Code Playgroud)

r leaflet shiny r-leaflet

4
推荐指数
2
解决办法
5511
查看次数

标签 统计

leaflet ×3

r ×3

shiny ×3

legend ×1

plugins ×1

r-leaflet ×1

shinyjs ×1