利用 R Shiny 数据表中的背景颜色为单元格着色
Utilizing background colors in R Shiny datatable to color cells
您好,我正在使用我的 R Shiny 仪表板使用 NBA 数据来展示前一天比赛中得分最高的前 15 名球员。我有一个简单的 table 设置显示得分和投篮效率,但它非常平淡,我认为在某些单元格上使用背景颜色来做一些事情会很有用PTS,或相对于本赛季平均水平而言效率较高的球员。
下面我粘贴了 table 的截图以及我希望它具有的最后一列,但我还发布了我已经在数据框中计算的其他变量的截图我想着色的。我不想在实际 table 中包含那些额外的变量,但我想使用它们为单元格设置背景色(如果这有意义的话)。数据框称为 top_15_yesterday,我也发布了 R Shiny 输出代码。
output$top_15 <- DT::renderDataTable(datatable(top_15_yesterday, rownames = FALSE,
options = list(searching = FALSE, pageLength = 15,
lengthChange = FALSE, info = FALSE, paging = FALSE)) %>%
formatCurrency(6, currency = "$", interval = 3, mark = ",", digits = 0) %>%
formatPercentage(4, digits = 1))
例如,如果玩家的 ppg_difference 大于 20,则他们的 PTS 单元格应着色为绿色,任何高于 .20 的 ts_difference 应着色为绿色,如果玩家获得his season high (PTS = season_high) 那么他们的 PTS 单元格应该是紫色的。另一方面,如果玩家的 ts_difference 比他们的平均水平低 0.10,则将他们的 TS% 单元格标记为红色。
这只是我想使用的那种着色方案的一般概念,但我不知道如何将其实现到数据中table。我看到的示例没有我想要着色的变量已经在数据框中的设置。如果有人能够跟进并对如何实现这些背景颜色有任何建议,我将不胜感激!
在您的选项中,将您要引用的列设为不可见。 JavaScript
中的第一列为零
options = list(searching = FALSE,
pageLength = 15,
lengthChange = FALSE,
info = FALSE,
paging = FALSE
columnDefs = list(list(targets = c(0, 7, 8, 9, 10, 11),
visible = FALSE)))
关闭 datatable() 并通过管道传输到
formatStyle(columns = 'theColumn',
valueColumns = 'theReferenceColumn',
backgroundColor = styleEqual(levels = c(a vector with the levels),
values = c(a vector with the background colors))
or styleInterval(cuts, values)
您好,我正在使用我的 R Shiny 仪表板使用 NBA 数据来展示前一天比赛中得分最高的前 15 名球员。我有一个简单的 table 设置显示得分和投篮效率,但它非常平淡,我认为在某些单元格上使用背景颜色来做一些事情会很有用PTS,或相对于本赛季平均水平而言效率较高的球员。
下面我粘贴了 table 的截图以及我希望它具有的最后一列,但我还发布了我已经在数据框中计算的其他变量的截图我想着色的。我不想在实际 table 中包含那些额外的变量,但我想使用它们为单元格设置背景色(如果这有意义的话)。数据框称为 top_15_yesterday,我也发布了 R Shiny 输出代码。
output$top_15 <- DT::renderDataTable(datatable(top_15_yesterday, rownames = FALSE,
options = list(searching = FALSE, pageLength = 15,
lengthChange = FALSE, info = FALSE, paging = FALSE)) %>%
formatCurrency(6, currency = "$", interval = 3, mark = ",", digits = 0) %>%
formatPercentage(4, digits = 1))
例如,如果玩家的 ppg_difference 大于 20,则他们的 PTS 单元格应着色为绿色,任何高于 .20 的 ts_difference 应着色为绿色,如果玩家获得his season high (PTS = season_high) 那么他们的 PTS 单元格应该是紫色的。另一方面,如果玩家的 ts_difference 比他们的平均水平低 0.10,则将他们的 TS% 单元格标记为红色。
这只是我想使用的那种着色方案的一般概念,但我不知道如何将其实现到数据中table。我看到的示例没有我想要着色的变量已经在数据框中的设置。如果有人能够跟进并对如何实现这些背景颜色有任何建议,我将不胜感激!
在您的选项中,将您要引用的列设为不可见。 JavaScript
中的第一列为零options = list(searching = FALSE,
pageLength = 15,
lengthChange = FALSE,
info = FALSE,
paging = FALSE
columnDefs = list(list(targets = c(0, 7, 8, 9, 10, 11),
visible = FALSE)))
关闭 datatable() 并通过管道传输到
formatStyle(columns = 'theColumn',
valueColumns = 'theReferenceColumn',
backgroundColor = styleEqual(levels = c(a vector with the levels),
values = c(a vector with the background colors))
or styleInterval(cuts, values)