gpt4 book ai didi

javascript - 使用 JavaScript 使用 htmlOutput 元素作为导出的 PNG 文件的名称

转载 作者:行者123 更新时间:2023-12-01 01:15:46 26 4
gpt4 key购买 nike

下面是一个带有 JavaScript 代码的 Shiny 应用程序的简单示例,可帮助下载绘图。目前下载的 PNG 文件的名称是“plot.png”。我想使用从 htmlOutput("text") 创建的元素添加到 PNG 文件的名称。在这种情况下,名称将为:“2019-01-31plot.png”

library(shiny)
library(plotly)
library(lubridate)

d <- data.frame(X1 = rnorm(50,mean=50,sd=10),
X2 = rnorm(50,mean=5,sd=1.5),
Y = rnorm(50,mean=200,sd=25))

ui <-fluidPage(
title = 'Download Plotly',
sidebarLayout(

sidebarPanel(
htmlOutput("text"),
selectInput("plot_download", "Select plot to download", choices=list("plot1","plot2")),
actionButton('download_plot', "Download")

),

mainPanel(

plotlyOutput('regPlot'),
plotlyOutput('regPlot2'),
tags$script('

document.getElementById("download_plot").onclick = function() {
var plot = $("#plot_download").val();
if(plot == "plot1"){
var gd = document.getElementById("regPlot");
}else{
var gd = document.getElementById("regPlot2");
}
Plotly.Snapshot.toImage(gd, {format: "png"}).once("success", function(url) {
var a = window.document.createElement("a");
a.href = url;
a.type = "image/png";
a.download = "plot.png";
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
});
}
')
)
)
)

server <- function(input, output, session) {

output$text <- renderUI({
eopm <- Sys.Date() - days(day(Sys.Date()))
HTML(paste(eopm))
})

regPlot11 <- reactive({
plot_ly(d, x = d$X1, y = d$X2, mode = "markers")
})
output$regPlot <- renderPlotly({
regPlot11()
})

regPlot222 <- reactive({
plot_ly(d, x = d$X1, y = d$X2, mode = "markers")
})
output$regPlot2 <- renderPlotly({
regPlot222()
})

}

shinyApp(ui = ui, server = server)

[编辑]从@Stéphane Laurent 得到答案后,我遇到了 IE 的问题,而 Firefox 则没有任何问题。欢迎任何想法、建议!

最佳答案

你可以做到

a.download = $("#text").html() + " plot.png";

关于javascript - 使用 JavaScript 使用 htmlOutput 元素作为导出的 PNG 文件的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54783464/

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