问题描述
我想知道是否可以在Shiny中添加一个简单的按钮,以将绘图(特别是ggplot)复制到用户剪贴板。
下面是我到目前为止的代码。当我在Windows中使用R Studio在本地运行该应用程序时,该图确实会复制到我的剪贴板中。但是,首先单击按钮会弹出一个仅包含绘图的新窗口,但是绘图本身已复制到我的剪贴板中。问题是,当我将其部署到Shinyapps.io服务器时,该按钮不起作用-而是使应用程序崩溃(请参见下面的错误日志)。
我想完成的事情:
我当前的代码:
library(ggplot2)
library(shiny)
d <- data.frame(xaxis = c(1,2,3,4,5),ydata = sample(1:500,5))
p <- ggplot(data = d,aes(x = xaxis,y = ydata)) +
geom_line()
ui <- fluidPage(
fluidRow(
plotOutput(outputId = "myplot"),actionButton(inputId = "copyme",label = "copy plot to clipboard")
)
)
server <- function(input,output) {
output$myplot <- renderPlot({
p
})
observeEvent(input$copyme,{
dev.new()
print(p)
savePlot("clipboard")
print("copied")
})
}
shinyApp(ui,server)
shinyapps.io的错误日志:
2020-11-10T16:01:33.648258+00:00 shinyapps[3203167]: Listening on http://127.0.0.1:44881
2020-11-10T16:01:52.749743+00:00 shinyapps[3203167]: Warning: Error in savePlot: can only copy from 'X11(type="*cairo")' devices
2020-11-10T16:01:52.754119+00:00 shinyapps[3203167]: 86: stop
2020-11-10T16:01:52.754120+00:00 shinyapps[3203167]: 85: savePlot
2020-11-10T16:01:52.754121+00:00 shinyapps[3203167]: 84: observeEventHandler [/srv/connect/apps/jrdev/app.R#28]
2020-11-10T16:01:52.754122+00:00 shinyapps[3203167]: 13: runApp
2020-11-10T16:01:52.754122+00:00 shinyapps[3203167]: 12: fn
2020-11-10T16:01:52.754123+00:00 shinyapps[3203167]: 7: connect$retry
2020-11-10T16:01:52.754123+00:00 shinyapps[3203167]: 6: eval
2020-11-10T16:01:52.754123+00:00 shinyapps[3203167]: 5: eval
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)