在 Shiny 中使用格式 table table 手动设置条件格式边界
Manually set conditional formatting boundaries with a formattable table in Shiny
我有以下 Shiny 应用程序:
library(shiny)
list1 <- c(0.2,0.8,0.5)
list2 <- c("element1", "element2", "element3")
df <- data.frame(list1, list2)
UI <- fluidPage(
formattableOutput("table1")
)
Server <- function(input, output) {
output$table1 <- renderFormattable({
formattable(df, list(
list1 = color_tile("green", "red")
))
})
}
shinyApp(ui = UI, server = Server)
现在 table 有某种条件格式。这行得通。但是,我希望能够自己设置格式的界限。所以 fe - 低边界(绿色)应该是 0,上边界(红色)应该是 1.
有什么关于如何做到这一点的建议吗?
我找不到任何使用格式化表函数手动设置条件格式边界的方法。但是,边界似乎始终设置为给定列的最小值和最大值,因此您可以通过硬编码两行来解决此问题,其中包含所需的最小值和最大值,然后像这样使用 CSS 隐藏它们:
CSS:
/*
* www/styles.css
*/
table tr:nth-child(-n + 2) {
display: none;
}
回复:
library(shiny)
list1 <- c(0.0,1.0,0.2,0.8,0.5)
list2 <- c("", "", "element1", "element2", "element3")
df <- data.frame(list1, list2)
UI <- fluidPage(
includeCSS("www/styles.css"),
formattableOutput("table1")
)
Server <- function(input, output) {
output$table1 <- renderFormattable({
formattable(df, list(
list1 = color_tile("green", "red")
))
})
}
shinyApp(ui = UI, server = Server)
请注意,只有当您要显示的值都在零和一之间时,此修复程序才会起作用。如果您使用该范围之外的任何内容,边界将重置为新的 min/max.
我有以下 Shiny 应用程序:
library(shiny)
list1 <- c(0.2,0.8,0.5)
list2 <- c("element1", "element2", "element3")
df <- data.frame(list1, list2)
UI <- fluidPage(
formattableOutput("table1")
)
Server <- function(input, output) {
output$table1 <- renderFormattable({
formattable(df, list(
list1 = color_tile("green", "red")
))
})
}
shinyApp(ui = UI, server = Server)
现在 table 有某种条件格式。这行得通。但是,我希望能够自己设置格式的界限。所以 fe - 低边界(绿色)应该是 0,上边界(红色)应该是 1.
有什么关于如何做到这一点的建议吗?
我找不到任何使用格式化表函数手动设置条件格式边界的方法。但是,边界似乎始终设置为给定列的最小值和最大值,因此您可以通过硬编码两行来解决此问题,其中包含所需的最小值和最大值,然后像这样使用 CSS 隐藏它们:
CSS:
/*
* www/styles.css
*/
table tr:nth-child(-n + 2) {
display: none;
}
回复:
library(shiny)
list1 <- c(0.0,1.0,0.2,0.8,0.5)
list2 <- c("", "", "element1", "element2", "element3")
df <- data.frame(list1, list2)
UI <- fluidPage(
includeCSS("www/styles.css"),
formattableOutput("table1")
)
Server <- function(input, output) {
output$table1 <- renderFormattable({
formattable(df, list(
list1 = color_tile("green", "red")
))
})
}
shinyApp(ui = UI, server = Server)
请注意,只有当您要显示的值都在零和一之间时,此修复程序才会起作用。如果您使用该范围之外的任何内容,边界将重置为新的 min/max.