渲染一个 Shiny 的仪表板信息框......没有 Shiny 的仪表板

标签 r shiny shinydashboard infobox

我正在开发一个基于标准布局的 Shiny 应用程序( fluidpage() ,我无法更改它),我需要向用户显示一些 react 性 KPI,即 颜色、图标和文字 取决于某些计算的结果。这种信息的理想格式是像 infoBox() 这样的对象。从 Shinydashboard 就像这样:

enter image description here

当然,当我把这段代码放在一个流体页面中时,它会失去它的样式:

infoBox("Accuracy",  "50%",  icon = icon("ok", lib = "glyphicon"), color = "yellow")

enter image description here

我试过的:
  • 在我的流体页面应用程序中添加一个仪表板页面,它可以工作,但我无法删除它周围的菜单、标题和其他内容。
  • 尝试自定义不是很好的文本输出:
    enter image description here
  • 我不知道如何很好地添加字形。

  • 你有什么解决方案要实现吗?
    谢谢,

    最佳答案

    您可以从 AdminLTE 复制 CSS并创建一个新的 css 文件。我复制了信息框组件的内容,以及 bg-yellow类(class)。请注意,为了使用其他颜色,您还必须复制相应的类,或者使用您自己的 css 为您的元素提供自定义颜色。

    为了做一个工作示例,我包含了 CSS 内联。当然,更简洁的解决方案是创建一个单独的 CSS 文件。如果您不熟悉如何操作,可以找到说明 here .我希望这有帮助!

    library(shiny)
    library(shinydashboard)
    
    ui <- shinyUI(fluidPage(
      tags$head(
        tags$style(HTML("/*
     * Component: Info Box
                        * -------------------
                        */
                        .info-box {
                        display: block;
                        min-height: 90px;
                        background: #fff;
                        width: 100%;
                        box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
                        border-radius: 2px;
                        margin-bottom: 15px;
                        }
                        .info-box small {
                        font-size: 14px;
                        }
                        .info-box .progress {
                        background: rgba(0, 0, 0, 0.2);
                        margin: 5px -10px 5px -10px;
                        height: 2px;
                        }
                        .info-box .progress,
                        .info-box .progress .progress-bar {
                        border-radius: 0;
                        }
                        .info-box .progress .progress-bar {
                        background: #fff;
                        }
                        .info-box-icon {
                        border-top-left-radius: 2px;
                        border-top-right-radius: 0;
                        border-bottom-right-radius: 0;
                        border-bottom-left-radius: 2px;
                        display: block;
                        float: left;
                        height: 90px;
                        width: 90px;
                        text-align: center;
                        font-size: 45px;
                        line-height: 90px;
                        background: rgba(0, 0, 0, 0.2);
                        }
                        .info-box-icon > img {
                        max-width: 100%;
                        }
                        .info-box-content {
                        padding: 5px 10px;
                        margin-left: 90px;
                        }
                        .info-box-number {
                        display: block;
                        font-weight: bold;
                        font-size: 18px;
                        }
                        .progress-description,
                        .info-box-text {
                        display: block;
                        font-size: 14px;
                        white-space: nowrap;
                        overflow: hidden;
                        text-overflow: ellipsis;
                        }
                        .info-box-text {
                        text-transform: uppercase;
                        }
                        .info-box-more {
                        display: block;
                        }
                        .progress-description {
                        margin: 0;
                        }
    
                        .bg-yellow,
                        .callout.callout-warning,
                        .alert-warning,
                        .label-warning,
                        .modal-warning .modal-body {
                          background-color: #f39c12 !important;
                        }
    
                        "))
      ),
    
      headerPanel("New Application"),
    
      sidebarPanel(),
    
      mainPanel(
        infoBox("Accuracy",  "50%",  icon = icon("ok", lib = "glyphicon"), color = "yellow")
      )
    )
    )
    
    server <- function(input,output,session)
    {}
    
    shinyApp(ui,server)
    

    关于渲染一个 Shiny 的仪表板信息框......没有 Shiny 的仪表板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47844228/

    相关文章:

    r - ggplot2 用日期注释构面错误

    r - 将函数应用于因子(参与者)的每个级别,以根据 R 中标准差中的均值距离去除异常值

    r - 对存储为字符串的数字进行 R 数据表列的自定义排序

    shiny - Shiny 中的嵌套 fluidRow 布局

    r - 在使用 dcase 时,我们如何在因子变量中显示 0 观察值的水平为 0

    r - 更高效的 .RData?

    r - 添加 SSL 和 apache 后, Shiny 的服务器断开应用程序?

    r - R/光泽中的多项选择框-添加滚动条

    r - 用串扰过滤两个表

    R Shiny 。没有适用于 'mutate' 的方法应用于类 "c('reactiveExpr', 'reactive' , 'function' ) 的对象"