【问题标题】:R Markdown - SparkTables not renderingR Markdown - SparkTables 不呈现
【发布时间】:2017-02-01 22:05:43
【问题描述】:

我正在尝试使用 Rmarkdown 渲染 sparktable。但输出总是以原始 html 或 tex 格式输出。这取决于我是呈现 PDF 还是 HTML。不知道在这里做什么?

library(sparkTable)
data("AT_Soccer")
content <- list(
   function(x) {sum(x)},
   function(x) {round(sum(x),2)},
   function(x) {round(sum(x), 2)},
   newSparkLine(lineWidth = 2,pointWidth = 6),
   newSparkBar()
)
names(content) <- c("Points","ShotGoal","GetGoal","GoalDiff","winLose")
vars <- c("points","shotgoal","getgoal","goaldiff","wl")
stab <- newSparkTable(AT_Soccer,content,vars)
export(stab, outputType = "html") ### For HTML R-Markdown files
export(stab, outputType = "tex") #### For PDF R-Markdown files

我的输出(用于 html 文件)如下所示:

pdf输出为:

我正在尝试获取实际的火花表。我已经能够像这样渲染实际的表格:

 showSparkTable(stab)

但是,这会在 Shiny 框架中打开 spark 表。我正在尝试使用 spark 表生成多个 rmarkdown 文档。

这个例子来自:https://journal.r-project.org/archive/2015-1/templ-kowarik-meindl.pdf。第 29 页。

HTML 解决方案

设置这个对我有用。感谢马丁。尽管如此,仍然停留在pdf上。

   knitr::opts_chunk$set(results = 'asis')

【问题讨论】:

  • 使用区块选项results = 'asis'
  • 这在我编织到 html 时有效,那么 pdf 呢?谢谢!
  • 如果您想要 PDF 文档,为什么要使用 outputType = "html"?! outputType = 'tex' 怎么样?
  • 我只是想以 HTML 和 PDF 格式重新创建 spark 表。我在输出 PDF 时确实更改了 outputType = 'tex',但 sparktable 没有呈现。

标签: r r-markdown sparklines sparktable


【解决方案1】:

在稍微研究了文档之后,我总结了我学到的关于在 Rmd 文档中包含 sparkTables 的知识:

1.对于 HTML 文档 (outputType = 'html'):

正如我所说,使用块选项results = 'asis'


2。对于 PDF 文档 (outputType = 'tex'):

对于 PDF 文档,您还需要上述选项。 但是如果你不使用它,你会看到由export() 生成的纯 LaTeX。 在该输出的最底部,您会发现一个重要提示:

## Information: please do not forget to add the following command before \begin{document} in your tex-fi
##
## \newcommand{\graph}[3]{ \raisebox{-#1mm}{\includegraphics[height=#2em]{#3}}}

所以我们在这里要做的就是

  • 在我们的序言中包含这行 LateX,
  • 在代码块中添加results = 'asis'
  • 并将export()的参数infonote设置为FALSE

最后一点可以防止 LaTeX 编译器抛出另一个错误(即我们已经定义了命令 \graph)。

以下是 PDF 文档的工作示例:

---
title: "Plotting Plots Under Code"
author: "Martin"
date: "February 1, 2017"
output: pdf_document
header-includes:
  - \newcommand{\graph}[3]{ \raisebox{-#1mm}{\includegraphics[height=#2em]{#3}}}
---


```{r setup, echo = F, warning = F, message = F, results = 'asis'}
library(sparkTable)
data('AT_Soccer')
content <- list(
   function(x) {sum(x)},
   function(x) {round(sum(x), 2)},
   function(x) {round(sum(x), 2)},
   newSparkLine(lineWidth = 2, pointWidth = 6),
   newSparkBar()
)
names(content) <- c('Points', 'ShotGoal', 'GetGoal', 'GoalDiff', 'winLose')
vars <- c('points', 'shotgoal', 'getgoal', 'goaldiff', 'wl')
stab <- newSparkTable(AT_Soccer, content, vars)
export(stab, outputType = 'tex', infonote = F)
```

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-14
    • 2021-12-21
    • 2019-03-04
    • 2020-06-23
    相关资源
    最近更新 更多