很高兴看到图例超过18行。
将输出包装在wellPanel(style ='overflow-y:scroll;')中看起来像是正确的函数,但不起作用。
library(shiny)
shinyApp(
ui <- fluidPage(
splitLayout(cellWidths = c('20%', '30%', '50%'),
sliderInput('mySldr' , value = 4 , min = 1 ,
label = 'how many groups ?', max = 44 ), # max 52 > 44
plotOutput( 'myLgnd' ),
plotOutput( 'myPlt' )
)
),
server <- function(input, output, session) {
n <- reactive({ input$mySldr })
theD <- reactive({ matrix(runif( 5*n() ), nrow = 5,
dimnames = (list( 1:5, rep(letters,2)[ 1:n() ] ))) })
output$myLgnd <- renderPlot({
legend( x = 'center', legend = colnames( theD() ),
fill = rainbow( n() ) ) })
output$myPlt <- renderPlot({
matplot( x = c(2001:2005), type = 'o', xlab = '', ylab = '',
y = theD() , col = rainbow( n() ) ) })
}
)
任何对滚动图例的帮助将不胜感激。谢谢。
答案 0 :(得分:0)
不是很健壮,但这适用于您的示例:
div(
style = "overflow-y: auto; overflow-x: hidden",
plotOutput( 'myLgnd' )
),
和
output$myLgnd <- renderPlot({
par(mar = c(0,0,0,0))
legend( x = 'center', legend = colnames( theD() ),
fill = rainbow( n() ) ) }, height = function(){170+10*ncol(theD())})
经过多次试错后,我发现了值170
和10
。也许有更好的价值。
最好使用plotly
来制作图形。