Получение R участков в LaTeX?


Я новичок как в R, так и в LaTeX и только недавно нашел, как построить стандартный график временных рядов с использованием R и сохранить его в виде изображения png. Я беспокоюсь о том, что сохранение его в виде изображения, а затем внедрение его в LaTeX будет масштабировать его и делать его уродливым.

есть ли способ сделать R plot() функция выводит векторную графику и вставляет ее в LaTeX? Я полный новичок в обоих, поэтому, пожалуйста, будьте нежны :) фрагменты кода высоко ценятся!

4 65

4 ответа:

Шейн на месте, вы хотите потеть. В итоге.

как новичок, вы можете лучше отделить задачу, хотя. Для этого, сделайте следующее:

  1. открыть устройство: pdf("figures/myfile.pdf", height=6, width=6).
  2. построить свой объект R:plot(1:10, type='l', main='boring') -- и помните, что решетка и ggplot нуждаются в явном print вокруг plot.
  3. важно: закройте устройство:dev.off() для завершения работы с файлом.
  4. необязательно: проверьте файл pdf.
  5. в LaTeX, используйте usepackage{graphicx} в заголовке документа, используйте
    \includegraphics[width=0.98\textwidth]{figures/myfile} чтобы включить рисунок, созданный ранее, и обратите внимание, что расширение файла не является обязательным.
  6. программа pdflatex и наслаждайтесь.

я бы рекомендовал tikzDevice пакет для производства продукции для включения в документы LaTeX:

http://cran.r-project.org/web/packages/tikzDevice/index.html

tikzDevice преобразует графику, полученную в R, в код, который может быть интерпретирован пакетом LaTeX tikz. TikZ обеспечивает очень хорошую систему векторного рисования для LaTeX. Некоторые хорошие примеры вывода TikZ находятся в:

http://www.texample.net/

The tikzDevice может использоваться как любое другое графическое устройство R:

require( tikzDevice )

tikz( 'myPlot.tex' )

plot( 1, 1, main = '\LaTex\ is $\int e^{xy}$' )

dev.off()

обратите внимание, что обратные косые черты в макросах LaTeX должны быть удвоены, поскольку R интерпретирует одну обратную косую черту как escape-символ. Чтобы использовать сюжет в документе LaTeX, просто включите его:

\include{path/to/myPlot.tex}

The pgfSweave комплектация Sweave функциональность, которая может обрабатывать вышеуказанный шаг для вас. Убедитесь, что ваш документ содержит \usepackage{tikz} где-то в преамбуле LaTeX.

http://cran.r-project.org/

преимущества по сравнению с pdf() являются:

  • шрифт меток и подписей в ваших рисунках всегда соответствует шрифту, используемому в вашем документе LaTeX. Это обеспечивает единый внешний вид вашего документа.

  • Вы имеете всю силу наборщика латекса доступного для создания математическая аннотация и может использовать произвольный код LaTeX в вашем тексте рисунка.

недостатки являются:

  • он не масштабируется хорошо для обработки участков с большим количеством компонентов. Это такие вещи, как persp() участки больших матриц. Число сдвигов графических элементов может привести к замедлению LaTeX до обхода или исчерпанию памяти.

  • пакет в настоящее время помечен как бета-версия. Это означает, что интерфейс или функциональность пакета могут быть изменены, если авторы найдут для этого веские причины.

я должен закончить этот пост отрицая, что я являюсь автором и tikzDevice и pgfSweave пакеты так что мое мнение может быть предвзятым. Тем не менее, я использовал оба пакета для подготовки нескольких академических докладов в прошлом году и был очень доволен результатами.

вы можете рассмотреть возможность использования Sweave. Есть много документации, доступной для этого на сайте Sweave (и в других местах). Он имеет очень простой синтаксис: просто поместите ваш код между <<>>= и @.

вот простой пример, который заканчивается в таком виде:

\documentclass[a4paper]{article}

\title{Sweave Example 1}
\author{Friedrich Leisch}

\begin{document}

\maketitle

In this example we embed parts of the examples from the
\texttt{kruskal.test} help page into a \LaTeX{} document:

<<>>=
data(airquality)
library(ctest)
kruskal.test(Ozone ~ Month, data = airquality)
@
which shows that the location parameter of the Ozone 
distribution varies significantly from month to month. Finally we
include a boxplot of the data:

\begin{center}
<<fig=TRUE,echo=FALSE>>=
boxplot(Ozone ~ Month, data = airquality)
@
\end{center}

\end{document}

чтобы построить документ, вы можете просто позвонить R CMD Sweave file.Rnw или выполните команду Sweave(file) в р.

Это обман вопроса, так что я не могу найти.

но: http://r-forge.r-project.org/projects/tikzdevice/ -- TikZ вывод из r и http://www.rforge.net/pgfSweave/ код tikz через sweave.

использование tikz даст вам внешний вид, совместимый с остальной частью вашего документа, плюс он будет использовать latex для набора всего текста в ваших графиках.

EDIT получение латекса в R Plots