Вопрос

Я пытаюсь создать отчет о переплетении, содержащий графику, выполненную с помощью ggplot2.Хотя я ищу какую-то среду на долгосрочную перспективу — здесь я просто использую простой файл .Rnw, который содержит только код и сюжет.

 \documentclass[a4paper]{article}
 \SweaveOpts{echo=FALSE}
 \usepackage{a4wide}

  \begin{document}

  \begin{figure}[htbp]
  \begin{center}
 <<>>=
 library(ggplot2)
 x=rnorm(100)
 qplot(x)

 @
 \caption{My Graph}
 \end{center}
  \end{figure}
\end{document}

К сожалению, график не создан, я получаю только поврежденные файлы .pdf и .eps.Хотя я получаю хороший файл .tex, который, похоже, работает, за исключением графики.Для его создания я использую следующий базовый код:

 Sweave("myfile.Rnw")

Я только что нашел в сети старую публикацию, в которой обсуждались проблемы с прозрачностью и sweave/ggplot2, но ничего, что могло бы помочь.Я также попробовал расслабленный пакет, который тоже не помог.Кстати, есть какие-нибудь новости по упаковке Декумара?

Это было полезно?

Решение

qplot() создает объекты, а не графический вывод.Может показаться, что так и происходит, когда вы его запускаете, но это потому, что без присваивания R автоматически печатает выходные данные qplot().Чтобы интегрировать его в Sweave, либо оберните print() вокруг qplot(), или назначьте вывод qplot() к чему-то, затем заверните это в print().

...
<<fig = T, echo = F>>=
 library(ggplot2)
 x=rnorm(100)
 p <- qplot(x)
 print(p)
@
...

Это должно сработать.я использую ggplot2 графика в моих документах Sweave постоянно.

Другие советы

Вы должны обернуть его вокруг print(), чтобы сделать его работать в Sweave.

На самом деле, пока оба предыдущих ответа верны, ваша проблема - это что-то еще.

Вам необходимо убедиться, что весь блок кода находится слева от страницы (кроме iundentation в функциях).Опять же, я понятия не имею, почему, но это вызывает проблемы для Sweave.

После обеспечения того, чтобы весь код (и заголовок / нижний колонтитул для куска кода) находились слева от страницы (и добавляя оператор печати), а затем ваш пример работает для меня.

Кстати, я сегодня узнал, что вы можете создать окружающую среду вокруг вашего кода в Sweave Documents (которые я не осознавал, и спасет меня много времени).Хороший добрый стоги, преподавая вам что-то новое, даже если вы отвечаете на вопрос!

Надеюсь, это поможет.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top