如何在 Shiny 中显示没有工具栏的绘图?

2023-11-20

这个问题是一个延伸this问题。

我正在 Shiny 中绘制一个相当大的 ggplot 。

Using renderPlot(width = 1500, height = 1000, ...我能够展示整个情节;但是,我现在右侧有一个滚动条。我想扩展 FluidRow 中列的高度,而不是有这个滚动条。

enter image description here

据我了解,Shiny(又名 bootstrap)应该动态调整 FluidRow 的高度,以适应绘图的大小。为什么我的可见区域这么小?滚动条很好,但我希望整个情节都可见。

UI.R

source("helper.R")    
shinyUI(fluidPage(theme='test.css',

    fluidRow(
    column(2, 
           fluidRow(
             h3("Select Customer:"),
                    wellPanel(class="info", numericInput(inputId="num", label="Select ID:", value=NaN),
                              if(show_age_slider=='Yes'){textOutput("")},
                              if(show_edu_slider=='Yes'){textOutput("")},
                              if(show_gender_buttons=='Yes'){textOutput("")}
                    ))),

    #do.call will call the navbarPage function with the arguments in the tabs list
    shinyUI(fluidRow(
      column(12,
             "", 
             do.call(navbarPage,tabs)
    ))))))

SERVER.R

library("shiny")
library("ggplot2")

DF_for_plotting <- structure(list(col1 = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0), col2 = c(100, 
                                                                                   100, 61.9433678425096, 10.7823906941804, 4.18175346165306, 3.24251454697229, 
                                                                                   6.68573373055455, 14.945119260922, 18.9296271776082, 11.0742379220636
), col3 = c(100, 100, 100, 12.8418470680653, 5.31239161296286, 
            4.42025167250118, 10.699998838647, 27.5067118056336, 20.6360723198699, 
            13.1476876837599), col4 = c(100, 100, 100, 100, 100, 100, 100, 
                                        100, 100, 100)), .Names = c("col1", "col2", "col3", "col4"), row.names = c("one", 
                                                                                                                   "two", "three", "four", "five", "six", "seven", "eight", "nine", 
                                                                                                                   "ten"), class = "data.frame")


hex=c("#CC0000", "#90BD31", "#178CCB")
textsize=c(8)

############## shiny server starts here: #######################################################################
shinyServer(function(input, output) {  

# begin the observe() block
observe(


lapply(seq(1:number_of_tabs),function(i) output[[paste0("plot",i)]] <- renderPlot(width = 1500,
                                                                                  height = 1000,{   #<-- lapply will fill up each tab and create one ggplot

  plotindex <<- 0
  list_of_ggplots <<- list() #although we only have one tab, we could easily extend to having multiple tabs
  p <- ggplot()

breaks=c(0, 25, 50, 75, 100, 115, 130)
break_labels=c("0%", "25%", "50%", "75%", "100%")

number_of_variables <- 10

### inner loop
  for (varnum in seq(1:number_of_variables)){ #<-- We need to make all three segments for all three variables for this tab

    p <- p + scale_y_discrete(breaks = seq(10), labels = c("one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten"))



    p <- p + geom_segment(data=DF_for_plotting, aes_q(x=DF_for_plotting$col1[varnum], xend=DF_for_plotting$col2[varnum]-0.001, y=varnum, yend=varnum, colour='impaired'), size=textsize*2.5) +
      geom_segment(data=DF_for_plotting, aes_q(x=DF_for_plotting$col2[varnum], xend=DF_for_plotting$col3[varnum]-0.001, y=varnum, yend=varnum, colour='normal'), size=textsize*2.5) +
      geom_segment(data=DF_for_plotting, aes_q(x=DF_for_plotting$col3[varnum], xend=DF_for_plotting$col4[varnum]-0.001, y=varnum, yend=varnum, colour='optimal'), size=textsize*2.5)
    p <- p + scale_color_manual(values=c(impaired=hex[1], normal=hex[2], optimal=hex[3], white='#ffffff'), name="Function Key")
#    p <- p + theme(plot.margin=unit(c(0,0,0,0), "cm"))
#    p <- p + theme(panel.margin=unit(c(0,0,0,0), "cm"))

            list_of_ggplots[["to_UI"]] <<- p # this is strange but true; apparently any arbitrary key works for inserting the plot into the list_of_ggplots
}   
      print(list_of_ggplots)  #<-- to send out to UI
})
)


) #<-- end of observe function
}  #<-- end of brace in shinyserver function
)  #<-- end the shinyserver function

helper.R

show_gender_buttons='No'
show_edu_slider='No'
show_age_slider='No'
##############################################
### this part is to create the UI properly ###

#tab_names <- c("", tab_names)
#make a list of all the arguments you want to pass to the navbarPage function
tabs<-list()


#first element will be the title, empty in our case
tabs[[1]]=""

#add all the tabPanels to the list
for (j in 2:(number_of_tabs+1)){
     tabs[[j]]=tabPanel(tab_names[j],plotOutput(paste0("plot",j-1)))}

################################################

你没有发布你的theme.css,但问题可能是 cssoverflow参数设置为scroll为了div将绘图保存在应用程序的 CSS 中。如果 div 对于其内容来说太小,这会强制滚动条。

默认height for a plotOutput设置为 400px,所以在你的renderPlot如果将高度设置为 1000,如果将 div 的溢出设置为滚动,您将获得一个滚动条。

尝试设置高度参数plotOutput1000px 或更多,例如:

#add all the tabPanels to the list
for (i in 2:(number_of_tabPages+1)){
  tabs[[i]]=tabPanel(paste0("Tab",i-1),plotOutput(paste0("plot",i-1),height="1100px"))

}

应该给出这样的东西:

enter image description here

您还可以尝试查找设置的内容overflow to scroll对于这个分区。我只是怀疑这一点,因为当代码运行时没有theme.css它看起来很好,无需更改您的代码。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Shiny 中显示没有工具栏的绘图? 的相关文章

  • 如何使用 ggplot2 对曲线下的区域进行着色

    我一直在尝试使用 ggplot2 生成类似于此 R 图形的绘图 xv lt seq 0 4 0 01 yv lt dnorm xv 2 0 5 plot xv yv type l polygon c xv xv lt 1 5 1 5 c y
  • 将 DOCTYPE 添加到 Scala XML 的最简单方法?

    我怎样才能在 Scala XML 中制作这个最小的 HTML5 p p 当然 在 Scala 中制作类似 HTML 的 XML 很简单 gt val html p p html scala xml Elem p p 但是 我怎样才能注入DO
  • 从 DOM 中删除后,动态添加的 JavaScript 脚本会继续执行

    因此 我正在创建一个 SPA 并使用 AJAX 将 HTML 页面加载到我网站的索引页面中 问题是 当包含我的一个页面时 它似乎会徘 徊并执行其中的 JavaScript 代码 即使它随后从 DOM 中删除 索引 html 正文 div d
  • SVG 坐标与变换矩阵

    我想在矩形元素上实现像 svg edit 这样的功能 旋转矩形 调整大小 Drag 旋转 SVG 矩形效果很好 但是当我想调整矩形大小时 它就会出现问题 坐标不正确 我使用变换矩阵来旋转targetelement setAttribute
  • scrapy获取同一个类的第n个子文本

    我附上了一张照片 我面临的问题是获取同一类的第一个元素 我想得到 adxHeader gt adxExtraInfo 1st one gt adxExtraInfoPart 1st one gt a text 我编写了以下代码但不起作用 任
  • 使用 2 个向量参数翻转函数

    我想对需要 2 个向量参数的函数应用滚动 这是使用 data table 的示例 不起作用 library data table df lt as data table cbind data frame x 1 100 y 101 200
  • data.table 的包装函数

    我有一个已经使用 data frame 上下文编写的项目 为了缩短计算时间 我尝试利用 data table 的速度 我的方法是构造包装函数 读取帧 将它们转换为表 进行计算 然后转换回帧 这是一个简单的例子 FastAgg lt func
  • 滚动时静态标题

    我编写了一个主页 现在我正在尝试构建一个标题 该标题是静态的 就像在滚动内容时不滚动一样 当内容位于其下方时 它应该保持在顶部 我找到了这个解决方案here https stackoverflow com questions 9677894
  • 如何更改引导弹出窗口箭头边框颜色而不填充它?

    我想更改弹出箭头的边框颜色 当我应用边框颜色时 箭头本身填充了颜色 我只想为弹出框主体的箭头边框提供颜色 p Click on button to see Popover p a href class btn btn primary pop
  • 当我尝试转发电子邮件时,时事通讯无法隐藏 Gmail 上的响应内容

    我正在尝试写一份时事通讯 但当我测试时 我无法隐藏响应式内容GMail On Outlook and Yahoo一切正常 但如果我尝试转发电子邮件 隐藏的内容就会可见 我测试使用 putsmail https putsmail com gt
  • NodeJS 无法加载 css 文件

    所以我正在尝试制作一个 NodeJS 服务器 并且我尝试保留尽可能少的附加组件 但是 我遇到了一个问题 我似乎无法加载任何内容CSS我调用的文件HTML文件 该调用似乎确实由服务器处理 但它不会显示在浏览器中 My 网络服务器 js fil
  • Django 1.6 的静态文件

    我花了一整天但没有任何作用 我在这里看到了至少 20 篇关于同一主题的帖子 它们各不相同 有不同的建议 但没有一个对我有用 使用 Python 2 7 运行 Django 1 6 我正在尝试从 django 教程加载民意调查应用程序的 cs
  • 转换 SVG 过滤器

    我正在尝试创建一个像 SVG 圆圈上的阴影这样的材质设计 我希望当您单击圆圈时 这个阴影能够以良好的过渡来增长 但目前我正在努力弄清楚是否可以为这种过渡设置动画 所以我希望有人能够提供帮助 我添加了一个到目前为止所得到的小例子 一个带有阴影
  • Bootstrap:下拉菜单无法通过 jQuery 单击打开

    我正在创建一个包含多行的表 所有行都有一个 选项 按钮 该按钮应该显示下拉上下文菜单 为了使代码更短 我使用了一个div以便将其重用为上下文菜单的通用标记 我正在使用 Bootstrap 5 1 3 和 jQuery 3 6 0 以下是我的
  • 闪亮:在 downloadHandler 中使用 validate()

    我有一个闪亮的应用程序 单击按钮后会打印报告 报告创建是通过 downloadHandler 函数进行的 我希望在导出报告之前有一个强制输入字段 合适的 Shiny 函数是 validate https shiny rstudio com
  • 页面不会居中对齐

    我遇到了 CSS 问题 http www luukratief design nl dump parallax index html http www luukratief design nl dump parallax index htm
  • 有不同图像尺寸的缩略图 Bootstrap

    我想要包含不同大小和不同文本量的图像的缩略图 但我希望它们都具有相同的大小 像这样来自 Bootstrap 站点的示例 http getbootstrap com components thumbnails custom content 下
  • 使用 JavaScript 从 URL 变量读取来加载不同的 CSS 样式表

    我试图在我的 WordPress 博客上使用两个不同的样式表 以便在通过 Web 访问页面时使用一个样式表 而在通过我们的 iOS 应用程序访问博客内容时使用另一个样式表 现在 我们将 app true 附加到来自 iOS 应用程序的 UR
  • R 中的点图每行有多个值

    我有以下 R 输入文件 car 1 car 2 car 3 car2 1 car2 2 car2 3 然后 我使用以下命令来绘制图表 autos data 点图 autos data V2 autos data V1 但这将每个汽车和 ca
  • 使用faceting()时如何连接geom_point()和geom_line?

    我有一个问题 但我在互联网上没有找到任何相关信息 我很高兴得到一些提示 我有一个数据集 其中 x 轴是离散的 但我想将这些点相互连接 我可以做到 我的问题是当我添加分面选项时 我无法再将这些点相互链接起来 我找到了一个替代方案 但看起来不太

随机推荐

  • 什么时候2个虚拟地址可以映射到同一个物理地址?

    这里有一个操作系统 计算机体系结构问题 我正在阅读有关缓存的内容 了解如何虚拟索引缓存是减少地址转换时间的选项 我遇到了以下情况 Virtual cache difficulties include Aliasing Two differe
  • 从 .ui 文件生成 .h 和 .cpp

    假设我有文件about ui 我怎样才能使 关于 h 和 关于 cpp 从我的 ui文件 我必须创建一个 moc文件也 我怎么能够compile创建后看看是否一切都正确发生 如果自动生成不起作用 就像我的情况 您可以使用 uic 手动生成头
  • 如何命名 R 图中由垂直线分隔的 x 轴部分(包 ggplot2)?

    我创建了一个堆积面积图ggplot2并添加了垂直线在某些位置上x axis 我现在想命名sections由这些垂直线分隔开 它的一个示例可能看起来像示例图中所示 也欢迎其他解决方案 我有一个向量breaks x axis 以及间隔名称的向量
  • 为什么ndb中required和default是互斥的?

    在旧的 google appengine 数据存储区 API 中 必需 和 默认 可以一起用于属性定义 使用ndb我得到一个 ValueError repeated required and default are mutally excl
  • 扩展 JFrame 与在程序内创建它

    在使用 Swing 制作应用程序时 我见过人们执行以下两件事之一来创建 JFrame 哪种方法更好 为什么 我是 Java 和编程的初学者 我唯一的学习来源是书籍 YouTube 和 Stack Overflow import import
  • XML 规范化算法在直接调用时与作为 xml 数字签名的一部分调用时给出两个不同的结果?

    当我直接规范化某些 xml 时 与在对其执行数字签名时 在对 xml 进行散列之前也执行相同的规范化算法 相比 我得到了同一个 xml 文档的两个不同的哈希值 我发现数字签名规范化在规范化时包括新行字符 n 和空格字符 而直接算法则不包括
  • 共享对象 (.so)、静态库 (.a) 和 DLL (.so) 之间的区别?

    我参与了一些关于 Linux 中的库的争论 并且想确认一些事情 据我了解 如果我错了 请纠正我 我稍后会编辑我的帖子 在构建应用程序时有两种使用库的方法 静态库 a 文件 在链接时 整个库的副本被放入最终应用程序中 以便调用应用程序始终可以
  • 为什么 WebSocket 被屏蔽?

    我正在遵循 MDN 提供的指南编写 WebSocket 服务器 该指南非常简单易懂 然而 在遵循本教程后 我遇到了来自客户端的 WebSocket 消息发送的框架 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4
  • 将下拉列表转换为单选按钮而不修改 HTML

    所以这是一种特殊情况 我有一个插件 由于合同原因我无法修改 它显示一组下拉菜单 我需要它来显示一组单选按钮 是否有一种 js jquery 方法可以将下拉菜单转换为单选按钮 而无需更改 HTML 请记住 我可以添加内容 我只能直接修改插件
  • 坐标压缩

    问题 您有一个 N x N 网格 1 我尝试用 BFS 解决这个问题 但是对于非常大尺寸的网格来说它太慢了 然后我听说了坐标压缩 有人可以解释什么是坐标压缩 它是如何实现的 我在哪里可以了解更多信息 在广阔的场地上几乎没有什么障碍 如果将字
  • 安装后执行Android代码[重复]

    这个问题在这里已经有答案了 可能的重复 android 中有安装事件吗 我只想在 Android 应用程序安装完成后执行一段代码 此后的代码不应在应用程序中执行 谁能告诉我该怎么做 Reagrds Shankar 我尝试了下面的代码来使这项
  • 转换在编译器/机器级别有什么作用?

    我经常想知道转换在编译器或机器级别到底做了什么 它对内存中的0和1有什么作用 谁能指点我一些好的文献 在引用类型之间进行转换时 转换不会修改各个位 它只是指示编译器 运行时在可能的情况下以特定方式解释这些位 如果由于类型不兼容而无法在编译时
  • 您的 Mac 运行的 OS X 版本低于项目的最低部署目标

    我创建了一个可可框架和测试应用程序来检查框架功能 我使用了 10 9 2 osx 版本 它在 10 9 2 上运行良好 当我在 osx 版本 10 8 5 上运行此程序时 出现以下错误 您的 Mac 运行的 OS X 版本低于项目的最低部署
  • 参考类的并行计算

    我有一个相当大的对象列表 我想并行应用一个复杂的函数 但我当前的方法使用了太多内存 我认为参考类可能会有所帮助 但是使用mcapply修改它们似乎不起作用 该函数修改对象本身 因此我用新对象覆盖原始对象 由于该对象是一个列表 而我只修改了其
  • 如何在 SQL Server 2012 中使用 CROSS APPLY 取消透视列

    我想使用 CROSS APPLY 来 UNPIVOT 多个列 列CGL CPL EO应成为覆盖类型 其值CGL CPL EO应该进入列Premium 以及值CGLTria CPLTria EOTria应该进入列Tria Premium de
  • EntityFramework 6 RC1 包含多对多属性失败

    我在代理和代理组之间有多对多关系 伪代码 缩写 public class Agent public virtual List
  • 在 android studio 中不显示 styles.xml

    我在 Windows 中的 Android Studio 中创建了一个应用程序 现在我的资源文件有问题 style xml 它不显示 不存在 检查附图 XML 文件的图像我怎样才能显示它 Thanks android studio 提供的新
  • 如何为 PHP 生成的图像设置默认的“图像另存为”名称?

    我的网站中有一个页面 显示我的 PHP 生成的一些图像 当我右键单击图像并单击 将图像另存为 时 我得到用于生成图像的 php 文件的名称作为默认名称 例如 这是图像的 html img src picture generator php
  • 箭头和 Tab 键在 sbt 1.0.3 控制台中不起作用

    跑步时sbt控制台在 Scala 2 12 4 sbt 1 0 3 MacOS 10 13 1 中 箭头键输出类似 A 的代码 而不是检索最后一个命令 制表符输出制表符而不是自动竞争 如果我直接运行 Scala REPL 或运行sbt然后从
  • 如何在 Shiny 中显示没有工具栏的绘图?

    这个问题是一个延伸this问题 我正在 Shiny 中绘制一个相当大的 ggplot Using renderPlot width 1500 height 1000 我能够展示整个情节 但是 我现在右侧有一个滚动条 我想扩展 FluidRo