Отобразить графику в отчете с функцией Sweave: просто отобразить итоговый отчет, а не промежуточный файл - PullRequest
0 голосов
/ 26 сентября 2019

Я хорошо знаю R, но начинаю с Sweave.

Я создаю отчет в Rstudio из нескольких сценариев:

  • graphic.R , в котором определенграфика, созданная с помощью ggplot2, называется graph_1 .Я хочу отобразить это в отчете.
  • script.Rnw , содержащий код Latex и Sweave.Я вызываю graph_1 для отображения моей графики.
  • main.R скрипт, который выполняет код .Rnw и, следовательно, создает отчет.

В графике.R

library(ggplot2)
graph_1 <- ggplot(data=iris, aes(x = Sepal.Length, y = Sepal.Width)) + geom_point(aes(color=Species, shape=Species))

В скрипте.Rnw

\documentclass[french,12pt]{article}
\begin{document}

 ... no important...

\begin{figure}[h]
  \begin{center}
   << fig=TRUE, echo=FALSE, height = 2.5>>=
    graph_1
    @
 \caption{caption figure 1}
 \label{graph_1}
  \end{center}
\end{figure}
\end{document}

В main.R

Sweave("script.Rnw", encoding="UTF-8")
tools:::texi2dvi(file="script.tex"), pdf=TRUE)

Все в порядке: мой отчет (.pdf) создается в папке.Но у меня также есть файл: «script-001.pdf», содержащий мою графику, которая добавлена ​​в ту же папку.

Мне нужен только окончательный отчет, а не промежуточный файл: так что не файл 'script-001.pdf.Кто-нибудь знает, возможно ли это?

Спасибо,

1 Ответ

2 голосов
/ 27 сентября 2019

Файл рисунка необходим, чтобы LaTeX мог включить его.Но вы можете безопасно удалить его после запуска Sweave и LaTeX.

Мне не нравится, что мой рабочий каталог также завален промежуточными PDF-файлами.Таким образом, я попал в папку с именем figures.С помощью Sweave вы можете сделать это, установив подходящий префикс:

\SweaveOpts{prefix.string=figures/fig}

Вам также необходимо создать папку figure, чтобы она работала.

И личная рекомендация: вы можетехочу взглянуть на knitr - это более мощная современная версия Sweave - на мой взгляд.

...