在使用knitr的Rnw中使用ggvis

3

我想知道在使用knitr时可否在.Rnw中使用ggvis。我已经在中尝试了以下代码,但无效。

\documentclass{book}
\usepackage[T1]{fontenc}
\usepackage{float}
\usepackage{booktabs}
\usepackage{dcolumn}
\usepackage{geometry}
\geometry{verbose,tmargin=2cm,bmargin=2cm,lmargin=2cm,rmargin=2cm}

\begin{document}
\chapter{Test}
\begin{figure}[H]
<< label = Plot1, fig.lp = "Plot1", fig.cap = "Test Plot" >>=
library(ggvis)
p <- mtcars %>% ggvis(x = ~wt, y = ~mpg) %>% layer_points()
print(p)     # Commenting this line will compile the document
@
\end{figure}
\end{document}

它抛出以下错误:
LaTeX errors:
! Missing $ inserted.
<inserted text> 
                $
l.70 \end{kframe}<!--html_
                          preserve--><div id="plot_id298740869-container" cl...
! Please use \mathaccent for accents in math mode.

编辑

注释掉print(p)这一行,文档就可以编译而没有任何错误。

如果有像ggsave()这样的命令来保存ggvis图形将会足够方便。

1个回答

5

可以。

export_png函数可以从ggvis对象创建PNG图像。

它使用node JavaScript解释器,而node需要安装vega包。

在Linux命令行中,我可以这样做:

sudo npm -g install vega

使用 Node 包管理器(npm)全局安装 vega 包。我不知道在 Windows 或 Mac 上如何操作。

完成后,您可以执行以下步骤:

\documentclass{book}
\usepackage[T1]{fontenc}
\usepackage{float}
\usepackage{booktabs}
\usepackage{dcolumn}
\usepackage{geometry}
\geometry{verbose,tmargin=2cm,bmargin=2cm,lmargin=2cm,rmargin=2cm}

\begin{document}
\chapter{Test}
\begin{figure}[H]
<< label = Plot1, fig.lp = "Plot1", fig.cap = "Test Plot" >>=
library(ggvis)
p <- mtcars %>% ggvis(x = ~wt, y = ~mpg) %>% layer_points()
export_png(p,"Plot1.png")    
@
\includegraphics[width=0.8\textwidth]{Plot1.png}
\end{figure}
\end{document}

操作步骤:knit2pdf("gg.Rnw")

执行后,可得到如下结果:

enter image description here

注意,你需要手动添加标题和标签。或者,也许可以通过一些knitr钩子更好地将其集成到knitr中。总之,该概念已经被证明是可行的。


我喜欢使用ggplot2,并经常使用它。但是在ggplot2中有一些功能不可用,特别是顶部的x轴,这在ggvis中是可用的。是否有任何方法可以使用命令将ggvis图保存为pdfpng格式?谢谢。 - MYaseen208
请查看我的编辑。如果有像ggsave()这样的命令可以保存ggvis图形,那就足够了。 - MYaseen208
感谢@Spacedman的帮助。我在等待你的回答。再次感谢。 - MYaseen208
我在哪里可以下载Windows版的vg2png或Vega呢? - skan
也许有人可以在Windows上使用rsvg或svglite包,或者使用DiagrammeRsvg的export_svg函数来实现。但是我无法做到。 - skan
显示剩余9条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接