情节图表显示ERROR太多开放设备闪亮

时间:2016-07-14 19:59:16

标签: r shiny plotly

我有大约10个从ggplot转换的情节图在我的闪亮应用程序中,每10秒刷新一次。 Plotly工作正常,几次刷新,但后来显示ERROR太多开放设备。

我的代码如下(简称只显示一个图表):

server.R

pullData是从数据库中提取数据的函数。

library(lubridate)
library(shinyjs)
library(ggplot2)
library(plotly)
server <- function(input, output, session) {


d <- reactive({
  invalidateLater(10000, session)
  pullData() %>% filter(!is.na(time))
})

output$Run <- renderPlotly({
 pdf(NULL)
 ggplotly(ggplot(d(), aes(x = as.POSIXlt(time) , y = mile)) +
   geom_point() +
   theme_bw() +
   xlab('Time') +
   ylab('mile'))
})

ui.R

library(shinydashboard)
library(shiny)
library(shinyjs)
library(plotly)

ui <- dashboardPage(

  dashboardHeader(title = "Analytics DashBoard")
  ,skin = 'green'
    ,dashboardSidebar(
      tags$head(
      tags$style(HTML("
                      .sidebar { height: 90vh; overflow-y: auto; }
                      " )
      )
    ),
#       sidebarSearchForm(label = "Search...", "searchText", "searchButton"),
      sidebarMenu(


        , menuItem("Real Time Graphs", tabName = "RealTimeG", icon = icon("cog"))


      )

    )


   ,dashboardBody(
     tabItems(
     ,tabItem(
        tabName = "RealTimeG"


       ,fluidRow(
         box(
         title = "total Run Time"
         ,plotlyOutput("Run")
         , width = 6
         )
       )
   )
))

什么是问题?以及如何解决?

1 个答案:

答案 0 :(得分:3)

我遇到了同样的问题。我在dev.off()函数中使用renderPlotly解决了这个问题。尝试做这样的事情:

utput$Run <- renderPlotly({
 pdf(NULL)
 g<-ggplotly(ggplot(d(), aes(x = as.POSIXlt(time) , y = mile)) +
 geom_point() +
 theme_bw() +
 xlab('Time') +
 ylab('mile'))
 dev.off()
 g
 })

每次刷新绘图时,看起来像创建/打开(不确定)新的图形设备。你可以通过在闪亮的应用中打印dev.list()来检查这一点。几次刷新后你会得到这样的东西:

RStudioGD       png       pdf       pdf       pdf       pdf       pdf       pdf       pdf       pdf 
        2         3         4         5         6         7         8         9        10        11 
  pdf       pdf       pdf       pdf       pdf       pdf       pdf       pdf       pdf       pdf 
   12        13        14        15        16        17        18        19        20        21 
  pdf       pdf       pdf       pdf       pdf       pdf       pdf       pdf       pdf       pdf 
   22        23        24        25        26        27        28        29        30        31 
  pdf       pdf       pdf       pdf       pdf       pdf       pdf       pdf       pdf       pdf 
   32        33        34        35        36        37        38        39        40        41 
  pdf       pdf       pdf       pdf       pdf 
   42        43        44        45        46