Получение R участков в LaTeX?
Я новичок как в R, так и в LaTeX и только недавно нашел, как построить стандартный график временных рядов с использованием R и сохранить его в виде изображения png. Я беспокоюсь о том, что сохранение его в виде изображения, а затем внедрение его в LaTeX будет масштабировать его и делать его уродливым.
есть ли способ сделать R plot()
функция выводит векторную графику и вставляет ее в LaTeX? Я полный новичок в обоих, поэтому, пожалуйста, будьте нежны :) фрагменты кода высоко ценятся!
4 ответа:
Шейн на месте, вы хотите потеть. В итоге.
как новичок, вы можете лучше отделить задачу, хотя. Для этого, сделайте следующее:
- открыть устройство:
pdf("figures/myfile.pdf", height=6, width=6)
.- построить свой объект R:
plot(1:10, type='l', main='boring')
-- и помните, что решетка и ggplot нуждаются в явномplot
.- важно: закройте устройство:
dev.off()
для завершения работы с файлом.- необязательно: проверьте файл pdf.
- в LaTeX, используйте
usepackage{graphicx}
в заголовке документа, используйте\includegraphics[width=0.98\textwidth]{figures/myfile}
чтобы включить рисунок, созданный ранее, и обратите внимание, что расширение файла не является обязательным.- программа
pdflatex
и наслаждайтесь.
я бы рекомендовал
tikzDevice
пакет для производства продукции для включения в документы LaTeX:http://cran.r-project.org/web/packages/tikzDevice/index.html
tikzDevice преобразует графику, полученную в R, в код, который может быть интерпретирован пакетом LaTeX
tikz
. TikZ обеспечивает очень хорошую систему векторного рисования для LaTeX. Некоторые хорошие примеры вывода TikZ находятся в: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.преимущества по сравнению с
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 для набора всего текста в ваших графиках.