使用 Sparkline 包将迷你图添加到 R 数据表的多列

问题描述 投票:0回答:1

我正在尝试将迷你图添加到 R 中数据表的多个列。我能够正确渲染单个迷你图列,但是当我尝试根据与第一列不同的基础数据在第二列中渲染迷你图时,相同的迷你图显示在第二列中。我想 fnDrawCalback 选项中需要一些代码片段,但我无法找到解决我的问题的太多内容。

这是一个可重现的示例,适用于单个迷你图(有效)和两个迷你图(只需重复两列中的第一个迷你图)

# create data with single sparkline column
library(sparkline)
library(DT)
spark_data <- data.frame(
  id = c('spark1', 'spark2'),
  spark = c(
    spk_chr(values = 1:3, elementId = 'spark1'),
    spk_chr(values = 3:1, elementId = 'spark2')
  )
)

tbl <- datatable(spark_data, escape = F,
                 rownames = F
  , options = list(fnDrawCallback = htmlwidgets::JS('function(){
                                                           HTMLWidgets.staticRender();
                                                              }'))
)

spk_add_deps(tbl)


# create data with two sparkline columns
library(sparkline)
library(DT)
spark_data <- data.frame(
  id = c('spark1', 'spark2'),
  spark = c(
    spk_chr(values = 1:3, elementId = 'spark1'),
    spk_chr(values = 3:1, elementId = 'spark2')
  ),
  second_spark = c(spk_chr(values = 3:1, elementId = 'spark1'),
                   spk_chr(values = 1:3, elementId = 'spark2'))
)

tbl <- datatable(spark_data, escape = F,
                 rownames = F
  , options = list(fnDrawCallback = htmlwidgets::JS('function(){
                                                           HTMLWidgets.staticRender();
                                                              }'))
)

spk_add_deps(tbl)

r dt htmlwidgets sparklines
1个回答
0
投票

删除“elementId”参数似乎可以解决我的问题。

© www.soinside.com 2019 - 2024. All rights reserved.