добавьте расстояние заполнения в color_bar в таблице таблицы форматирования

#r #r-markdown #kable #kableextra #formattable

Вопрос:

есть ли какой-либо способ увеличить расстояние отступа справа налево в цветовой панели. Как вы можете видеть в коде, реализация color_bar3 допускает расстояние заполнения в px, однако я, похоже, не нахожу опции для обычной цветовой панели. Я хотел бы добавить отступ 10 в color_bar, так же, как он был добавлен в color_bar3.

 color_bar3 <- function (color = "#49CA69", fun = "proportion", ...)
{
  fun <- match.fun(fun)
  formatter("span", style = function(x) style(display = "inline-block",
                                              `border-radius` = "5px", `padding-left` = "10px",
                                              `background-color` = csscolor(color),
                                              width = percent(fun(as.numeric(gsub(",", "", x)), ...))))
}

library("htmltools")
library("webshot")  
library(formattable)
library(htmlwidgets)
DF <- data.frame(Ticker=c("", "", "", "IBM", "AAPL", "MSFT"),
                 Name=c("Dow Jones", "Samp;P 500", "Technology", 
                        "IBM", "Apple", "Microsoft"),
                 Value=accounting(c(15988.08, 1880.33, 50, 
                                    130.00, 97.05, 50.99)),
                 Change=percent(c(-0.0239, -0.0216, 0.021, 
                                  -0.0219, -0.0248, -0.0399)))

################################## FUNCTIONS ##################################
unit.scale = function(x) (x - min(x)) / (max(x) - min(x))
export_formattable <- function(f, file, width = "100%", height = NULL, 
                               background = "white", delay = 0.2)
{
  w <- as.htmlwidget(f, width = width, height = height)
  #Remove row height!
  w <- htmlwidgets::prependContent(w, tags$style("td { padding: 0px  !Important;}"))
  path <- html_print(w, background = background, viewer = NULL)
  url <- paste0("file:///", gsub("\\", "/", normalizePath(path)))
  webshot(url,
          file = file,
          selector = ".formattable_widget",
          delay = delay)
}
###############################################################################

FT <- formattable(DF, align =c("l","c","r","c"), list(
  Name=formatter("span", 
                 style = x ~ ifelse(x == "Technology", style(font.weight = "bold"), NA)), #NOT APPLIED when we output to PNG with the function!
  #Value = color_tile("white", "orange"),
  Value = color_bar("orange" , fun = unit.scale
  ),
  Change = formatter("span", 
                     style = x ~ style(color = ifelse(x < 0 , "red", "green"), "font.size" = "18px"), 
                     x ~ icontext(ifelse(x < 0, "arrow-down", "arrow-up"), x)
  )),
  table.attr = 'class="table table-striped" style="font-size: 18px; font-family: Calibri"')

FT %>%
  formattable() %>%
  as.htmlwidget() %>%
  prependContent(tags$style("tr:nth-child(odd) {background-color: #e6e6e6 !important;}")) %>%
  prependContent(tags$style("tr:nth-child(even) {background-color: #999999 !important;}"))
 

Комментарии:

1. Можете ли вы также опубликовать свой код YAML? Я вижу, что вы выполняете HTMLwidget, но не уверены, пытаетесь ли вы сделать это в определенном формате вывода, для которого могут потребоваться разные конфигурации. Спасибо

2. Где это находится? сгенерированный файл?