如何解决如何在可反应条形图中绘制负值?
让我的负条形图出现在我的 reactable
表中时遇到了一些困难。我在下面有示例代码,正如您将看到的,绘制了我的正值,但没有绘制负值。我被困在我缺少的东西上,所以任何帮助将不胜感激。
谢谢。
library(tidyverse)
library(htmltools)
library(reactable)
bar_chart_pos_neg <- function(label,value,height = "16px",pos_fill = "green",neg_fill = "red") {
pos_chart <- div(style = list(flex = "1 1 0"))
neg_chart <- div(style = list(flex = "1 1 0"))
width <- value
if (value < 0) {
bar <- div(style = list(marginLeft = "8px",background = neg_fill,width = width,height = height))
chart <- div(style = list(display = "flex",alignItems = "center",justifyContent = "flex-end"),label,bar)
neg_chart <- tagAppendChild(neg_chart,chart)
} else {
bar <- div(style = list(marginRight = "8px",background = pos_fill,alignItems = "center"),bar,label)
pos_chart <- tagAppendChild(pos_chart,chart)
}
div(style = list(display = "flex"),neg_chart,pos_chart)
}
data <- data.frame(
Spread = c(3.8741435,-10.7573310,6.8234219,10.1194614,3.6772631,-4.2870001,4.9933226,2.6914581,-7.0133144,4.9004934,-8.6499655,-1.4826557,-0.2060462,0.3289249,-2.1613399,-4.5594886)
)
reactable(data,bordered = TRUE,columns = list(
Spread = colDef(
name = "Spread",cell = function(value) {
label <- paste0(round(value)," pts")
bar_chart_pos_neg(label,value)
},align = "center",minWidth = 400
)
))
解决方法
宽度的值应为正。
width <- abs(value)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。