我使用set_options(width =“auto”,height =“auto”,resizable = FALSE)来自动调整ggvis图表的大小.当图表是列函数中唯一的元素时,它工作正常,但如果我添加其他元素,图表会不断调整大小.
我知道html有一个max-height属性可能会阻止这种行为,但是这个属性在ggivs中不可用.
这是我的例子:
ui.R
library(shiny)
library(ggvis)
shinyUI(fluidPage(
fluidRow(titlePanel("Old Faithful Geyser Data")),
fluidRow(
column(12,
tags$h1("hello"),
ggvisOutput('test1')
)
)
)
)
server.R
library(shiny)
library(ggvis)
shinyServer(function(input, output) {
cars %>%
ggvis(~speed) %>%
layer_bars() %>%
set_options(width="auto", height= "auto", resizable=FALSE) %>%
bind_shiny("test1", "test1_ui")
})
我使用的是Firefox 47.0
最佳答案 根据
documentation:
Note that height=”auto” should only be used when the plot is placed within a div that has a fixed height; if not, automatic height will not work, due to the way that web browsers do vertical layout.
我们可以通过修改你的ui.R来实现这个目的,为包含ggvis图的div设置一个固定的高度.例如:
shinyUI(fluidPage(
fluidRow(titlePanel("Old Faithful Geyser Data")),
fluidRow(
column(12,
tags$h1("hello"),
div(style='height:400px;', # We define a fixed height of 400px
ggvisOutput('test1')
)
)
)
)
)