2014-11-06 9 views
18

Я хочу масштабировать блестящий сюжет до высоты окна. Этот related SO question использует только абсолютные спецификации высоты в пикселях, когда предпочтительнее height = 100%. Я отмечаю в документации, что absolutePanel может достичь этого с помощью своих аргументов top, bottom, left, right, но затем вы потеряете боковую панель, и в любом случае график (при масштабировании по ширине), кажется, игнорирует доступную высоту.Масштабирование блестящих участков до высоты окна

Я предполагаю, что это связано с html quirk, что означает, что вам нужно получить высоту с переменной javascript innerHeight. Но я не понимаю, как реализовать решение в блеске, чтобы получить ui.R, чтобы использовать это. Благодарен за любые указатели.

Базовая модель приложения для развития:

ui.R

library(shiny) 
shinyServer(
    function(input, output) { 
    output$myplot <- renderPlot({ 
     hist(rnorm(1000)) 
    }) 
    } 
) 

server.R

library(shiny) 
pageWithSidebar(
    headerPanel("window height check"), 
    sidebarPanel(), 
    mainPanel(
    plotOutput("myplot") 
) 
) 

ответ

22

Использование CSS3. Объявите свой рост в единицах просмотра. http://caniuse.com/#feat=viewport-units. Вы должны быть в состоянии объявить их с помощью height аргумента в plotOutput однако shiny::validateCssUnit оленьей коже признать их, так что вы можете вместо того, чтобы объявить их в заголовке стиля:

library(shiny) 
runApp(
    list(server= function(input, output) { 
    output$myplot <- renderPlot({ 
     hist(rnorm(1000)) 
    }) 
    } 
    , ui = pageWithSidebar(
    headerPanel("window height check"), 
    sidebarPanel(
     tags$head(tags$style("#myplot{height:100vh !important;}")) 
    ), 
    mainPanel(
     plotOutput("myplot") 
    ) 
) 
) 
) 

Это не будет работать в блестящей браузере, но должен работать правильно в главного браузера.

enter image description here

+0

пятно на, спасибо Джон – geotheory

+0

У меня аналогичная проблема, но так как я использую 'navbarPage' я не могу показаться, чтобы получить CSS работать http://stackoverflow.com/questions/30179621/how-can-i-display-my-plot-without-toolbars-in-shiny –

+0

Я пытался использовать этот подход, но на графиках добавлен 'height = 400px', который, кажется, переопределяет высоту, указанную в 'тег'. Любые подсказки? – TheComeOnMan

Смежные вопросы