一个非常简单的问题...当尝试将绘图渲染为不可见的Error: unable to start png() device
时,我收到一个错误div
(请参见下面的示例)。
我一直在尝试通过创建一个闪亮的模块来解决该问题,但是我不确定该解决这个问题。
我还没有尝试过shinyjs
(如果可以的话很酷,但是如果可能的话,宁愿避免依赖包)。
作为旁注,我想避免在屏幕外/低z顺序下渲染到可见元素中,以更好地了解光泽如何处理隐藏元素。请注意,实际绘图基于隐藏容器div
时可能会变化的反应性内容,并且生成的绘图将需要是交互式的(画笔/悬停/等)。
更新:我已安装Cairo
软件包作为尝试的解决方案,现在收到错误Error: Failed to create Cairo backend
(还尝试直接调用png()
和{ Cairo()
内的{1}},没有任何不同的效果。
obeserve({})
鼠标悬停在网页上会显示两个图。
require(tidyverse)
require(shiny)
a_plot <- tibble(x=1:10,y=rnorm(10)) %>% ggplot(aes(x=x,y=y)) + geom_point()
server <- function(input, session, output) {
output$p1 <- renderPlot({a_plot})
output$p2 <- renderPlot({a_plot})
outputOptions(output,’p2’, suspendWhenHidden=FALSE)
}
ui <- fluidPage(
fluidRow(plotOutput(‘p1’)),
fluidRow(div(id=‘plot_container’, style=‘display: none’, plotOutput(‘p2’))),
withTags(head(script(HTML(‘window.onmouseover = function(event) {document.getElementById(“plot_container”).style.display = “block” }’))))
)
shinyApp(ui=ui, server=server)
on R 3.6.0