我有一个关于连续创建两个图的问题,使用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中)添加一个标题时,它远离图形.我该怎么办?任何thougts表示赞赏!
你指定了respect = TRUE,这意味着你的设备中的图只占用了一半的高度(如果在tikz设备上使用默认值),其余的高度用空格填充.添加标题时,它会通过该空格偏离图形.当你打开tikz设备时,设置高度和宽度,使高度接近宽度的一半,你最终应该减少很少的空白,标题将更接近图.
正如 Greg 提到的,如果您想要方形图但不希望 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}
结果图如下所示:
