我目前的闪亮应用效果很好,但我正在使用流畅的页面环境:
ui.R
----
shinyUI(fluidPage(
fluidRow(
column(3,
...long list of inserts...
),
column(3,
... list of a few insterts...
),
column(6,
... plot ...
)
))
现在,因为在第一列中有如此长的插入列表,我想将绘图输出固定到位,因此它会随着屏幕向下滚动。 有任何想法吗?流动页面是错误的环境吗?
答案 0 :(得分:1)
您可以使用Bootstrap' data-spy
指令和affix
类:
library("shiny")
library("ggplot2")
server <- function(input, output, session) {
output$plot <- renderPlot({
ggplot(iris, aes(Sepal.Width, Sepal.Length)) + geom_point()
})
}
long_list <- do.call(tagList, lapply(seq(50), function(ix) {
id <- paste0("x", ix)
numericInput(id, id, 1L)
}))
short_list <- do.call(tagList, lapply(seq(10), function(ix) {
id <- paste0("y", ix)
numericInput(id, id, 1L)
}))
ui <- fluidPage(
tags$head(
tags$style(HTML("
.affix {
top:50px;
position:fixed;
}
"))
)
, fluidRow(
column(3, long_list),
column(3, short_list),
column(6, div(`data-spy`="affix", `data-offset-top`="5", plotOutput("plot")))
)
)
shinyApp(ui = ui, server = server)
答案 1 :(得分:1)
我是Shiny / R的新手,但我认为你也可以使用fixedPanel
:)
https://shiny.rstudio.com/reference/shiny/latest/absolutePanel.html
以下是also works for me使用fixedPanel
的mlegge代码的编辑版本:)
library("shiny")
library("ggplot2")
server <- function(input, output, session) {
output$plot <- renderPlot({
ggplot(iris, aes(Sepal.Width, Sepal.Length)) + geom_point()
})
}
long_list <- do.call(tagList, lapply(seq(50), function(ix) {
id <- paste0("x", ix)
numericInput(id, id, 1L)
}))
short_list <- do.call(tagList, lapply(seq(10), function(ix) {
id <- paste0("y", ix)
numericInput(id, id, 1L)
}))
ui <- fluidPage(
fluidRow(
column(3, long_list),
column(3, short_list),
column(6, fixedPanel(top = 10, right = 10, width = "45%", plotOutput("plot")))
)
)
shinyApp(ui = ui, server = server)