【问题标题】:Adding a sparkline to a flextable in R将迷你图添加到 R 中的 flextable
【发布时间】:2021-03-06 12:00:58
【问题描述】:

我正在尝试将迷你图与我为报告创建的弹性表一起使用。不幸的是,我无法让函数 tabwid() 工作,将其转换为 HTML 小部件。它被引用为 flextable v0.4.0 的一部分,但它不在 v0.5 中。

我在下面的文档中注意到 tabwid() 函数已被弃用: https://www.rdocumentation.org/packages/flextable/versions/0.4.0/topics/tabwid

v0.5 中是否有等效功能?如果没有,还有其他方法可以在 sparktable 中使用 sparkline 函数吗?

我注意到在 2016 年与 flextable 的开发人员进行了一次对话,其中描述的代码包括 tabwid() 函数。我找不到替代方案,如果提供任何指导,我将不胜感激。

https://github.com/davidgohel/flextable/issues/1

上面链接中引用的代码如下:

#devtools::install_github("davidgohel/oxbase") #devtools::install_github("davidgohel/flextable")

#devtools::install_github("htmlwidgets/sparkline")

库(dplyr) 库(oxbase) 库(flextable) 库(sparkline)

mtcars %>% group_by(cyl) %>% summarise( hp = spk_chr( 惠普,类型=“框”, chartRangeMin=0, chartRangeMax=max(mtcars$hp) ), mpg = spk_chr( mpg,类型=“框”, chartRangeMin=0, chartRangeMax=max(mtcars$mpg) ) ) %>% flextable() %>% tabwid() %>% spk_add_deps()

如果这不可能,有没有其他人找到一种方法将迷你图添加到弹性表中(例如,通过另一个包?)?

提前感谢您提供的任何指导!

【问题讨论】:

    标签: r flextable sparklines


    【解决方案1】:

    使用 github 上的开发版,您可以执行以下操作 - 这些不是交互式图形:

    # remotes::install_github("davidgohel/flextable")
    library(data.table)
    library(magrittr)
    library(flextable)
    
    # data prep ----
    z <- as.data.table(iris)
    z <- z[, list(
      Sepal.Length = mean(Sepal.Length, na.rm = TRUE),
      z = list(.SD$Sepal.Length)
    ), by = "Species"]
    
    # flextable ----
    ft <- flextable(
      data = z,
      col_keys = c("Species", "Sepal.Length", "box", "density", "line")
    ) %>%
      compose(j = "box", value = as_paragraph(
        plot_chunk(
          value = z, type = "box",
          border = "white", col = "transparent", 
          width = 1.5, height = .4
        )
      )) %>%
      compose(j = "line", value = as_paragraph(
        plot_chunk(value = z, type = "line", col = "white", 
                   width = 1.5, height = .4)
      )) %>%
      compose(j = "density", value = as_paragraph(
        plot_chunk(value = z, type = "dens", col = "white", 
                   width = 1.5, height = .4)
      )) %>%
      theme_vader() %>%
      align(j = c("box", "density", "line"), align = "center", part = "all") %>%
      autofit()
    ft
    

    【讨论】:

    • 这很有帮助,谢谢!也请接受我很长时间的回复延迟。我将浏览这段代码,看看我是否可以将它也用于我正在处理的表格。就我而言,我有一张表格,显示了特定地区的新冠状病毒病例数。然后,我想添加一个显示每天新病例数的闪光,以将当前数字放在上下文中。我很快就会更仔细地看!谢谢!
    猜你喜欢
    • 2013-08-02
    • 2022-12-23
    • 2017-12-24
    • 2021-08-19
    • 1970-01-01
    • 2010-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多