我有一个关于连续创建两个图的问题,使用R with Package tikz device将tikz发送到Latex。我想要做的是,连续绘制2个图表。我首先要做的是创建par(mfrow=c(1,2))
氛围中的情节。但是这不好用,因为当使用Latex打印时,Plots就像垂直矩形。我想要的是连续两张图片是二次的。所以我接下来做了什么,我创建了一个布局:
Layout<- matrix(c(1, 2), nrow = 1, ncol=2, byrow = TRUE)
nf <- layout(mat = Layout, widths = c(1,1),heights = c(1,1), respect = TRUE)
layout.show(nf)
并绘制了两张图。结果是二次的(这很好),但是当我为两个图(在Latex中)添加一个标题时,它远离图形。我该怎么办?任何人都很感激!
答案 0 :(得分:6)
你指定了respect = TRUE,这意味着你的设备中的图只占用了一半的高度(如果在tikz设备上使用默认值),其余的高度用空格填充。添加标题时,它会通过该空格偏离图形。当你打开tikz设备时,设置高度和宽度,使高度接近宽度的一半,你最终应该减少很少的空白,并且标题将更接近图。
答案 1 :(得分:2)
正如格雷格所提到的,如果你想要方形图但是不希望R填充空白的大边框,你必须调整绘图画布的宽度和高度。
以下是使用Sweave的最小示例:
\documentclass{article}
\usepackage{Sweave}
\usepackage{tikz}
<<echo=FALSE,results=hide>>=
require(tikzDevice)
@
\begin{document}
\begin{figure}
<<echo=FALSE,results=hide>>=
# Standard LaTeX article class has a \textwidth of ~4.5in
# Therefore, divide by 2 to get the right height.
tikz('layout-ex.tex', width = 4.5, height = 2.25)
Layout<- matrix(c(1, 2), nrow = 1, ncol=2, byrow = TRUE)
nf <- layout(mat = Layout, widths = c(1,1),heights = c(1,1), respect = TRUE)
layout.show(nf)
dev.off()
@
\centering
\input{layout-ex}
\label{fig:layout-ex}
\caption{A layout with two sub-figures}
\end{figure}
\end{document}
结果图如下: