是否可以在 Rmarkdown 中使用 pgfplots 呈现为 HTML?

是否可以在 Rmarkdown 中使用 pgfplots 呈现为 HTML?

tikz当 Rmarkdown 文件以 PDF 格式呈现时,代码可以正确呈现(这很有意义)。为了使其在 HTML 文件中工作,需要将代码放入 R 块中,并使用附加选项engine = "tikz"使其工作。

我正在尝试使用该包生成图表pgfplots。就像tikz,当 .Rmd 文件以 PDF 格式呈现时,它会生成图表,但似乎没有任何引擎选项使其以 HTML 格式工作,因为engine = "tikz"会产生错误。

有没有办法pgfplots在编织为 HTML 文件的 Rmarkdown 文件中生成可视化效果?

我的最小可重复示例:

---
title: "Hello World"
author: "Me"
date: "February 17, 2015"
output: html_document
header-includes:
- \usepackage{tikz}
- \usepackage{pgfplots}
---

## TikZ picture
- Here is a TikZ picutre

\begin{tikzpicture}
\draw (0,0) circle (2cm);
\end{tikzpicture}

- Here is another TikZ picutre

\begin{tikzpicture}
\begin{axis}[xmax=9,ymax=9, samples=50]
  \addplot[blue, ultra thick] (x,x*x);
  \addplot[red,  ultra thick] (x*x,x);
\end{axis}
\end{tikzpicture}

答案1

你可以使用tex4ht它来转换由 Knitr 和 Pandoc 从 RMarkdown 转换而来的 TeX 文件。它支持 TikZ 和大多数 LaTeX 包。

如果你想将 TikZ 代码转换为 SVG,最好使用特殊的驱动程序,该驱动程序需要手动安装不幸的是。要请求驱动程序,请在文件中添加一行.rmd

---
title: "Hello World"
author: "Me"
date: "February 17, 2015"
output: html_document
header-includes:
- \ifdefined\HCode\def\pgfsysdriver{pgfsys-dvisvgm4ht.def}\fi
- \usepackage{tikz}
- \usepackage{pgfplots}
---

## TikZ picture
- Here is a TikZ picutre

\begin{tikzpicture}
\draw (0,0) circle (2cm);
\end{tikzpicture}

- Here is another TikZ picutre

\begin{tikzpicture}
\begin{axis}[xmax=9,ymax=9, samples=50]
  \addplot[blue, ultra thick] (x,x*x);
  \addplot[red,  ultra thick] (x*x,x);
\end{axis}
\end{tikzpicture}

然后可以手动转换文件:

make4ht -f html5+preprocess_input sample.rmd "svg"

制作4小时是 的编译脚本tex4ht-f html5+preprocess_input选项执行make4ht可以处理 RMD 源的扩展。

这是生成的 HTML 文档:

在此处输入图片描述

相关内容