在knnr中使用Rnw中的ggvis

时间:2014-11-28 17:09:03

标签: r latex rstudio knitr ggvis

我想知道我是否可以在.Rnw中使用ggvis和knitr。我在RStudio Version 0.98.1091中尝试了以下代码。但它没有用。

\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 个答案:

答案 0 :(得分:5)

export_png功能可以从ggvis对象创建PNG图像。

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

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

sudo npm -g install vega

使用节点包管理器全局安装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

请注意,您必须手动添加字幕和标签。也许Yihui可以被说服将这更好地整合到knitr中,或者可能有一种方法使用一些knitr钩子。无论如何,概念被证明......