Создание рисунка тикз с двумя сюжетами подряд - PullRequest
6 голосов
/ 05 мая 2011

У меня есть вопрос, касающийся создания двух графиков подряд, используя R с устройством Package tikz для отправки tikz в Latex. То, что я хочу сделать, это построить 2 графика в ряд. Сначала я создал сюжеты в обстановке par(mfrow=c(1,2)). Но это плохо работает, потому что графики при печати с использованием латекса похожи на вертикальные прямоугольники. Я хочу получить две картинки подряд, которые будут квадратичными. Итак, что я сделал дальше, я создал макет:

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)

и построил два графика. Результат является квадратичным (это хорошо), но когда я добавляю подпись к двум графикам (в латексе), это далеко от графика. Что я должен делать? Любые мысли приветствуются!

Ответы [ 2 ]

6 голосов
/ 05 мая 2011

Вы указали уважение = ИСТИНА, так что это означает, что ваши графики в устройстве занимают только половину высоты (если используются значения по умолчанию на устройстве tikz), а остальная часть высоты заполняется пробелами. Когда вы добавляете заголовок, он смещается от графиков на этот пробел. Когда вы открываете устройство tikz, установите высоту и ширину так, чтобы высота была почти вдвое меньше ширины, и вы должны были получить намного меньше пробелов в конце, и заголовок был бы ближе к графикам.

2 голосов
/ 10 мая 2011

Как уже упоминал Грег, вы должны отрегулировать ширину и высоту холста графика, если вы хотите, чтобы квадратные графики, но не хотели, чтобы 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

...