在R Shining应用程序中使用滚动条进行大型绘图
我想在Shiny应用程序中为绘图添加一个滚动条,但只显示垂直滚动条,而不显示水平滚动条。我在这里附加了一个有最少元素的闪亮小应用程序来演示这个问题在R Shining应用程序中使用滚动条进行大型绘图,r,plot,shiny,scrollbar,horizontal-scrolling,R,Plot,Shiny,Scrollbar,Horizontal Scrolling,我想在Shiny应用程序中为绘图添加一个滚动条,但只显示垂直滚动条,而不显示水平滚动条。我在这里附加了一个有最少元素的闪亮小应用程序来演示这个问题 cat("\014") unlink(".RData") rm(list=ls(all.names = TRUE)) # A basic shiny app with a plotOutput shinyApp( ui = fluidPage( sidebarLayout( sidebarPanel(
cat("\014")
unlink(".RData")
rm(list=ls(all.names = TRUE))
# A basic shiny app with a plotOutput
shinyApp(
ui = fluidPage(
sidebarLayout(
sidebarPanel(
),
mainPanel(
column(6,(div(style='width:200px;overflow-x: scroll;height:200px;overflow-y: scroll;',
uiOutput("plot"))) )
)
)
),
server = function(input, output) {
output$plot <- renderUI({
output$plot2 <- renderPlot(plot(cars))
plotOutput('plot2')
})
}
)
cat(“\014”)
取消链接(“.RData”)
rm(list=ls(all.names=TRUE))
#带有打印输出的基本闪亮应用程序
shinyApp(
ui=fluidPage(
侧边栏布局(
侧栏面板(
),
主面板(
列(6),(div(style='width:200px;overflow-x:scroll;height:200px;overflow-y:scroll;',
输出(“绘图”))
)
)
),
服务器=功能(输入、输出){
输出$plot默认的renderPlot(width=“auto”)
使其从默认的plotOutput(width=“100%”)继承宽度
。这意味着绘图是按照div的大小绘制的,这里您给出的是200px,因此不需要溢出。如果您明确指定renderPlot(width=300)
的宽度或plotOutput(width=“300px”)
(注意前者是整数,后者是字符),则溢出将激活
shinyApp(
ui=fluidPage(
侧边栏布局(
侧栏面板(
),
主面板(
列(6),(div(style='width:200px;overflow-x:scroll;height:200px;overflow-y:scroll;',
输出(“绘图”))
)
)
),
服务器=功能(输入、输出){
输出$plot默认的renderPlot(width=“auto”)
使其从默认的plotOutput(width=“100%”)继承宽度
。这意味着绘图是按照div的大小绘制的,这里您给出的是200px,因此不需要溢出。如果您明确指定renderPlot(width=300)
的宽度或plotOutput(width=“300px”)
(注意前者是整数,后者是字符),则溢出将激活
shinyApp(
ui=fluidPage(
侧边栏布局(
侧栏面板(
),
主面板(
列(6),(div(style='width:200px;overflow-x:scroll;height:200px;overflow-y:scroll;',
输出(“绘图”))
)
)
),
服务器=功能(输入、输出){
输出$plot非常感谢。您的解决方案解决了我的问题。@XiaoweiMa很棒!请您将我的解决方案标记为已回答?@。抱歉,网站不允许我给您正面反馈:“记录声誉低于15的人投的票,但不要更改公开显示的帖子分数。”非常感谢。您的解决方案解决了我的问题。@XiaoweiMa太好了!您能将我的解决方案标记为已回答吗?@。对不起,网站不允许我给您正面反馈:“记录声誉低于15的人的投票,但不要更改公开显示的帖子分数。”
shinyApp(
ui = fluidPage(
sidebarLayout(
sidebarPanel(
),
mainPanel(
column(6,(div(style='width:200px;overflow-x: scroll;height:200px;overflow-y: scroll;',
uiOutput("plot"))) )
)
)
),
server = function(input, output) {
output$plot <- renderUI({
output$plot2 <- renderPlot(plot(cars),width=300) # either will
plotOutput('plot2',width='300px') # work
})
}
)