【问题标题】:R - Use TileMaker in Shiny AppsR - 在闪亮的应用程序中使用 TileMaker
【发布时间】:2016-10-23 18:59:27
【问题描述】:

我想在我的闪亮应用程序中添加一些 TileMaker 元素,使其成为更好的仪表板(但我没有使用 shinydashboard 结构)。有关最小示例,请参阅下面的 server.R 和 ui.R:

Server.R

library(shiny)
library(TileMaker)
shinyServer(function(input, output) {

Tilemaker<-renderPlot({

  Button1 <- ButtonMaker(Color = 2,Value = 3.57,Subtitle = "Times apple eaten")
  Button2 <- ButtonMaker(Color = 3,Value = 13.7,Subtitle = "Nutritional value")
  Button3 <- ButtonMaker(Color = 4,Value = 1,Subtitle = "Yumminess factor")
  Button4 <- ButtonMaker(Color = 5,Size=1,Value = 5,Subtitle = "Inconsistencies")
  Div1 <- DivMaker(Title = "Quantativity factors",Buttons = paste(Button1,Button2))
  Div2 <- DivMaker(Title = "Implementation procedures",Buttons = paste(Button3,Button4))
  TileMaker(MainTitle = "Hello",Divs = paste(Div1,Div2), FileName = "123.html")
  browseURL("123.html")
 })  
})

ui.R

library(shiny)
shinyUI(fluidPage(
mainPanel(
      navlistPanel(
    tabPanel("Tilemaker",h1("Tilemaker"),plotOutput(Tilemaker))
   )
  )
 ) 
)

我已经搜索了一段时间,但没有相关的讨论,我尝试了 renderplotrenderimage 但都没有工作。 TilmeMaker 是另一种渲染类型还是不能在闪亮的应用程序中使用?任何建议表示赞赏。谢谢。

【问题讨论】:

    标签: r dashboard shiny


    【解决方案1】:

    你需要renderUI(如果你想在服务器端创建Tile)并且不需要保存(如帮助中所述

    "如果您只想要 HTML 代码(适合插入 仪表板或其他文档,您可以使用 Divs"

    )

    示例

    library(shiny)
    library(TileMaker)
    server=shinyServer(function(input, output) {
    
      output$Tilemaker<-renderUI({
    
        Button1 <- ButtonMaker(Color = 2,Value = 3.57,Subtitle = "Times apple eaten")
        Button2 <- ButtonMaker(Color = 3,Value = 13.7,Subtitle = "Nutritional value")
        Button3 <- ButtonMaker(Color = 4,Value = 1,Subtitle = "Yumminess factor")
        Button4 <- ButtonMaker(Color = 5,Size=1,Value = 5,Subtitle = "Inconsistencies")
        Div1 <- DivMaker(Title = "Quantativity factors",Buttons = paste(Button1,Button2))
        Div2 <- DivMaker(Title = "Implementation procedures",Buttons = paste(Button3,Button4))
        return( list(h1("Hello"),HTML(Div1,Div2)))
      })  
    })
    
    ui=shinyUI(fluidPage(
      mainPanel(
        navlistPanel(
          tabPanel("Tilemaker",h1("Tilemaker"),uiOutput("Tilemaker"))
        )
      )
    ) 
    )
    
    shinyApp(ui,server)
    

    【讨论】:

    • 上面的代码完美的解决了这个问题,现在Tilemaker和shiny已经很好的整合了。
    猜你喜欢
    • 2016-12-20
    • 1970-01-01
    • 1970-01-01
    • 2018-10-25
    • 2020-06-16
    • 2016-05-27
    • 2020-11-16
    • 2014-04-11
    • 2021-12-08
    相关资源
    最近更新 更多