我正在基于 HTML 模板构建一个闪亮的应用程序,我想将 plotly 用于图表。我正在努力将图表插入模板。
以下代码工作正常:
library(shiny)
library(plotly)
shinyApp(
ui <- fluidPage(plotlyOutput("plot1")),
server <- function(input, output) {
p <- plot_ly(mtcars, x = ~mpg, y = ~wt, type = 'scatter', mode = 'markers')
output$plot1 <- renderPlotly({p})
}
)
但是,当我将应用程序更改为使用模板时,我既不能使用renderPlotly
也不能使用renderUI
.
<!doctype html>
<html lang="en">
<head>
<script src="shared/jquery.js" type="text/javascript"></script>
<script src="shared/shiny.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="shared/shiny.css"/>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="w3.css">
</head>
<body>
<h1>HTML Template UI</h1>
<div id="plot1" class="shiny-plot-output" style="width: 100%; height: 300px; border: 1px solid red"></div>
<div id="plot2" class="shiny-html-output" style="width: 100%; height: 300px; border: 1px solid blue"></div>
</body>
</html>
应用程序.R
library(shiny)
library(plotly)
shinyApp(
ui <- htmlTemplate("template.html"),
server <- function(input, output) {
p <- plot_ly(mtcars, x = ~mpg, y = ~wt)
output$plot1 <- renderPlotly({p})
output$plot2 <- renderUI(HTML(paste(htmltools::tagList(list(p)))))
}
)
有什么方法可以在基于 HTML 模板的 Shiny 应用程序中使用 plotly 吗?