includeHTML与renderPlotly冲突

问题描述 投票:0回答:1

我正在创建一个闪亮的小应用程序,以基于用户输入的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)
  })

}

您的任何建议都会受到好评!

最好,布伦南

r shiny plotly
1个回答
0
投票

includeHTML用于HTML片段。将iframe用于完整的HTML页面。 HTML文件必须位于www子文件夹中,并且必须将其传递给srctags$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)
© www.soinside.com 2019 - 2024. All rights reserved.