Проблема в том, что ваш лишний <
в вашем фиговом куске.
Это заставляет его выглядеть как <fig=TRUE
, так что fig
на самом деле не установлено в TRUE должным образом.Вы заметите, что в вашем .tex
файле тоже нет нужных includegraphics
строк.
Почему вы получаете Rplots.pdf
немного сложно, но о нем стоит знать.Во-первых, каждый блок, который создает графику, выполняется дополнительное время для каждого желаемого графического типа.Так что, если вы просто создадите PDF-файл (я думаю, по умолчанию), он будет запущен дважды;если вы создадите PDF и EPS, он будет запущен три раза.При первом запуске он запускается без открытия графического устройства;Я на самом деле не уверен, почему это работает в то время, но это так.Для нескольких файлов необходимо запускать его отдельно, каждый из которых открывается по очереди.
Таким образом, рекомендуется делать то, что вы делали, и запускать весь код, создающий фигуру, в одном фрагменте и просто изобразить фигуру вкусок с fig=TRUE
;это минимизирует код, который запускается несколько раз.Однако, будьте осторожны, если вы используете случайные числа или что-то увеличиваете в fig=TRUE
чанках;поскольку он запускается несколько раз, его поведение, вероятно, будет не таким, как вы ожидаете.
Во-вторых, когда код, создающий графику, запускается без указания графического устройства, графический тип по умолчанию открывается в любом случае, чтобы код работална.Когда вы работаете в интерактивном режиме, всплывающие окна с картинками.При неинтерактивном запуске по умолчанию обычно открывается файл PDF, а по умолчанию используется имя Rplots.pdf
.Поскольку это происходит со всеми фрагментами, которые создают фигуры, этот файл в конечном итоге является многостраничным pdf со всеми фигурами, которые вы в нем создали.
Наконец, методы, которые создают фигуру с использованием кода R вместо fig=TRUE
механизм иногда может быть предпочтительным, чтобы код запускался только один раз;обычно это немного больше бухгалтерии, хотя это можно минимизировать, создавая функции, которые помогут.Очевидно, что пакет AFLP (см. Ответ Тьерри) имеет такие функции, хотя я никогда не использовал его.Совсем не сложно написать свой собственный, хотя, если хотите, похоже на то, что рекомендуется в Sweave FAQ A.9 для создания нескольких графиков одновременно.
Наконец (peersв хрустальный шар ...), я вижу, что вы используете Emacs в режиме Rnw, где при наборе <
вы получите <<>>=
с курсором в центре, поэтому при наборе <<
вы получите <<<>>=
.