【问题标题】:R Shiny not showing plot until after several page refreshesR Shiny 直到几页刷新后才显示情节
【发布时间】:2019-11-22 09:15:38
【问题描述】:

我是 Shiny 的新手,一直在开发一个显示绘图图表的网络应用程序;我仍在本地机器上开发应用程序。当我在打开 RGui 后第一次运行应用程序时,Web 应用程序运行但不呈现图表,即使我单击了“绘制”按钮也是如此。我必须刷新网页一次或两次,然后图表才会呈现。图表呈现后,在该 R 会话期间问题就消失了。刷新页面或重新启动闪亮程序将继续呈现图表,直到 RGui 关闭。下次我打开 RGui 并运行应用程序时,该问题可靠地再次出现。

我在闪亮和失败的渲染上搜索的所有现有问题和答案都没有回答我的问题。

在多次尝试找出程序中的错误后,我将其归结为这段代码,看起来(对我来说)它应该可以正常工作,但仍然存在问题:

library(shiny)
library(plotly)

ui = fluidPage(
  plotlyOutput("Plot"),
  actionButton("drawPlotButton", "Draw")
)

server = function(input, output)
{
  output$Plot = renderPlotly({
    input$drawPlotButton
    return(plot_ly(mtcars, x = ~hp, y = ~mpg, type = "scatter", mode = "markers"))
  })
}

shinyApp(ui = ui, server = server)

我不知道我是否遗漏了一些简单的东西或什么。感谢所有帮助。

【问题讨论】:

  • 这段代码在我的机器上运行正常,使用Rstudio Version 1.2.1114, R version 3.5.0 (I should update soon..), shiny_1.2.0 & plotly_4.9.0。你在运行什么版本?你可以运行sessionInfo()来查找
  • @JonnyPhelps 我正在运行R version 3.5.3、plotly_4.9.0 和shiny_1.3.2 在他的回答中看到@RK1 也没有问题,我想知道我的设置是否存在某种故障。 ..
  • 可能只是 gui 的问题。在 Rstudio 中,您可以要求在浏览器中打开它。如果您尝试更改用于查看应用程序的内容,也许可以探索这是否是一个问题

标签: r shiny


【解决方案1】:

通常对我来说运行良好,就像在初始化时渲染的情节一样。 但是,如果您的目标是仅在单击 绘制 按钮时绘制图形,那么:

你需要添加一个eventReactive方法

见r Shiny action button and data table output

library(shiny)
library(plotly)

ui = fluidPage(
  plotlyOutput("Plot"),
  actionButton("drawPlotButton", "Draw")
)

server = function(input, output)
{
  plot_d <- eventReactive(input$drawPlotButton, {
    plot_ly(mtcars, x = ~hp, y = ~mpg, type = "scatter", mode = "markers")
  })

  output$Plot = renderPlotly({
    plot_d()
  })
}

shinyApp(ui = ui, server = server)

【讨论】:

  • 虽然eventReactive 是我不知道的,但这里的主要问题只是在初始化时绘图没有呈现。由于您没有遇到此问题,我不得不想知道为什么我的设置可能会损坏。谢谢!
  • 酷,@JonnyPhelps 提出了一个有效的观点,值得在浏览器中查看该应用程序并查看错误是否仍然存在
猜你喜欢
  • 2014-11-13
  • 2022-01-21
  • 2019-07-12
  • 2021-08-12
  • 2021-12-03
  • 1970-01-01
  • 1970-01-01
  • 2016-04-06
  • 2018-05-13
相关资源
最近更新 更多