gpt4 book ai didi

r - plotly 图表显示 ERROR too many open devices in shiny

转载 作者:行者123 更新时间:2023-12-04 11:45:59 31 4
gpt4 key购买 nike

我 Shiny 的应用程序中有大约 10 个从 ggplot 转换而来的绘图,每 10 秒刷新一次。 Plotly 对于少数刷新工作正常,但随后显示错误太多打开的设备。

我的代码如下(只显示一张图):

服务器.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
)
)
)
))

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

最佳答案

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

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
})

每次刷新绘图时,shiny 似乎都会创建/打开(不确定)新的图形设备。你可以通过在 Shiny 的应用程序中打印 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

关于r - plotly 图表显示 ERROR too many open devices in shiny,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38383248/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com