我想知道我是否可以在.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
图,那就足够了。
答案 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")
并获得:
请注意,您必须手动添加字幕和标签。也许Yihui可以被说服将这更好地整合到knitr中,或者可能有一种方法使用一些knitr钩子。无论如何,概念被证明......