创建一个连续2个图的tikz图片

时间:2011-05-05 14:38:31

标签: r statistics tikz

我有一个关于连续创建两个图的问题,使用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中)添加一个标题时,它远离图形。我该怎么办?任何人都很感激!

2 个答案:

答案 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}

结果图如下:

Example of using Layout