6

我有一个关于连续创建两个图的问题,使用 R 和 Package tikz 设备将 tikz 发送到 Latex。我想要做的是,连续绘制 2 个图表。我首先做的是在par(mfrow=c(1,2))氛围中创造情节。但这并不好用,因为在使用 Latex 打印时,绘图就像垂直矩形。我想要的是连续获得两张二次方的图片。所以我接下来做了什么,我创建了一个布局:

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 中)添加标题时,它与图表相去甚远。我该怎么办?任何想法表示赞赏!

4

2 回答 2

6

您指定了尊重=TRUE,这意味着您在设备中的绘图仅占高度的一半(如果在 tikz 设备上使用默认值),其余的高度用空格填充。当您添加标题时,它会从图中偏移该空格。当你打开 tikz 设备时,设置高度和宽度,使高度接近宽度的一半,最后你应该得到更少的空白,并且标题将更接近绘图。

于 2011-05-05T15:24:43.197 回答
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}

结果图如下所示:

使用布局示例

于 2011-05-10T16:10:04.340 回答