1

我正在构建一个小的 Shiny 应用程序,其中mainPanel包含一个tabsetPanel,其中一个选项卡是人力车 rChart。如果我没有选项卡并且只显示 rChart,一切都很好,但是当 rChart 包含在选项卡中时,选项卡总是比图表短,从而施加滚动条。

我用省略号缩写了下面的代码,以专注于重要部分:

ui.R:

shinyUI(pageWithSidebar(

  headerPanel("..."),

  sidebarPanel(...),

  mainPanel(
    tabsetPanel(
      tabPanel("Plot",
        div(id = "myplot",
            includeCSS("rickshaw.css"),
            showOutput("plot", "rickshaw"))
      ),
      tabPanel("Raw Data", tableOutput("table"))
    )
  )
))  # end shinyUI

服务器.R:

# some preprocessing up here

shinyServer(function(input, output) {

  # generate checkbox options from preprocessed data
  output$modelSelection <- renderUI({...})

  # make the rickshaw rChart
  output$plot <- renderChart2({

    chart <- Rickshaw$new()
    chart$layer(value ~ datetime, group = "variable", data = select.frame, type="area")
    chart$set(width = 600,
              height = 400,
              slider = TRUE)
    return(chart)
  })

  # make the raw output
  output$table <- renderTable({...})    
})

从哪里来rickshaw.cssrenderChart2这个 github bug来启用交互性。

所以问题是,虽然在chart$setDOES 中的高度有效,但实际的选项卡总是略短,强制滚动条(当 时仍然如此slider=FALSE)。

过去,我在选项卡式 ggplot 上遇到过类似的问题,这是通过将高度参数传递给该参数来解决的,该参数plotOutput不是showOutput.

我发现这些显然适用于 morris.js 的 修复程序,但我无法正确调整它们。

还有其他人在人力车和标签面板方面取得了更好的成功吗?我正在使用rCharts_0.4.2shiny_0.8.0开启R version 3.0.2 (2013-09-25)

4

1 回答 1

2

将高度设置为百分比,例如:

 chart$set(width = 600
          ,height = "100%"
          ,slider = TRUE)

您可能还想对tabPanel

 tabPanel("Plot",
           div(id = "myplot", style = "display:inline;position:absolute"
               ,showOutput("plot", "rickshaw"))
 ),
于 2014-01-15T02:57:34.770 回答