我正在创建一个闪亮的小应用程序,以基于用户输入的plot_ly()显示仿真结果(动画需要绘图)。它利用navbarpage()来显示主页(在此我解释其原理)和模拟页面(在其中实际显示应用程序)。
要创建主页,我创建了一个.Rmd文件并编成html。不幸的是,似乎includeHTML()
和renderPlotly()
存在某种JavaScript冲突,因此无法渲染。不幸的是,我很不了解HTML或javascript。
一个简单(几乎代表)版本:
# Define UI for application that draws a histogram
ui <- fluidPage(
navbarPage("RCV", position = "fixed-top", collapsible = TRUE,
tabPanel("Home",
includeHTML("www/yourFav.html")),
tabPanel("Simulation",
plotlyOutput("plot")
)
)
# Define server logic required to draw a histogram
server <- function(input, output, session){
output$plot <- renderPlotly({
plot_ly(data = cars,
x = ~mgp,
y = ~wt)
})
}
您的任何建议都会受到好评!
最好,布伦南
includeHTML
用于HTML片段。将iframe
用于完整的HTML页面。 HTML文件必须位于www子文件夹中,并且必须将其传递给src
的tags$iframe
参数而没有www/
前缀。
library(shiny)
library(plotly)
ui <- fluidPage(
navbarPage("RCV", position = "fixed-top", collapsible = TRUE,
tabPanel("Home",
tags$iframe(src = "rcv_homePage.html",
width = "600", height = "500",
style = "margin-top: 70px;")),
tabPanel("Simulation",
plotlyOutput("plot")
)
)
)
server <- function(input, output, session){
output$plot <- renderPlotly({
plot_ly(data = cars,
x = ~mgp,
y = ~wt)
})
}
shinyApp(ui, server)