试图在 R Shiny 中动态渲染 ggmap 图但只接收空白图像

Posted

技术标签:

【中文标题】试图在 R Shiny 中动态渲染 ggmap 图但只接收空白图像【英文标题】:Trying to render ggmap plot in R Shiny dynamically but receiving only blank image 【发布时间】:2021-10-07 02:56:38 【问题描述】:

我正在开发用于地理分析的复杂 R-Shiny 应用程序。作为其中的一部分,我想动态渲染一个 ggmap stemen 地图。因此,我向用户询问 Openstreetmap 导出数据(缩放、左、右...参见here)。单击按钮,我想构建和渲染地图。不幸的是,唯一发生的事情是我得到一个空白图像。如果我使用绘图功能在 RStudio 中渲染地图,我可以看到绘图。

要绘制地图,我需要进行哪些更改?

library(ggplot2)
library(ggmap)
library(shiny)

server <- function(input, output) 
    
    observeEvent(input$show_map, 
        
        box <- c(
            left = input$left,
            bottom = input$bottom,
            right = input$right,
            top = input$top)
        
        map <- get_stamenmap(
            bbox = box,
            maptype = "terrain",
            zoom = input$zoom
        )
        plot(map) #plot in RStudio
        output$point_map <- renderPlot(map)
    )
    


ui <- fluidPage(
    sidebarPanel(
        numericInput("top", "North", value = "55.159", width = 75),
        numericInput("bottom", "South", value = "47.2", width = 75),
        numericInput("left", "West", value = "5.768", width = 75),
        numericInput("right", "East", value = "15.216", width = 75),
        numericInput("zoom", "Zoom", value = "7", width = 75, min = 0, max = 18),
        actionButton("show_map", "Show map!")),
    mainPanel(
        plotOutput('point_map')
    )
)

shinyApp(ui, server)

提前感谢您的帮助!

【问题讨论】:

【参考方案1】:

要实际绘制地图,您必须调用 ggmap(map)plot(map),即这样做

output$point_map <- renderPlot(ggmap(map))

output$point_map <- renderPlot(plot(map))

在您的应用中。

【讨论】:

以上是关于试图在 R Shiny 中动态渲染 ggmap 图但只接收空白图像的主要内容,如果未能解决你的问题,请参考以下文章

r 在Shiny中渲染UI的动态数量

在 R Shiny 中,如何为反应对象渲染绘图?

R Shiny ggplot 条形图和折线图,具有动态变量选择和 y 轴为百分比

r:在 Flexdashboard 中使用 Shiny 渲染 Kable

R Shiny中的Plotly分组条形图

R语言|canvasXpress—动态图首选