qplot ggplot не выполняется при поиске

Давайте предположим, что у меня есть 2 исходных файла, первый из которых называется example1.r и второй example2.r (нижеприведенный).

example1.r

plot(1:10,1:10)

example2.r

qplot(1:10,1:10)

Когда я использую example1.r, график рисуется. Однако это не так, когда я использую example2.r. Какое решение здесь?

(qplot в example2.r является функцией ggplot2)

1 ответ

Решение

Обновление:

  • .R файлы: source вариант print.eval=TRUE приведет к поведению печати результата оценки, как в интерактивной командной строке.

source("Script.R", print.eval=TRUE)

  • Файлы.Rnw: knitr по умолчанию эмулирует поведение интерактивной командной строки по отношению к. print ING. Обратите внимание, что knitr может быть указан как двигатель Sweaving также для виньеток пакета R.


Это мой оригинальный ответ. Но обратите внимание, что этот обходной путь сейчас ИМХО полностью устарел (и он всегда был хорош только для небольшой ленивой ниши).

Это знаменитый FAQ 7.22: Почему не работает решетка / решетчатая графика?,

Для сеточной графики, такой как ggplot2 или lattice, вам необходимо напечатать графический объект, чтобы фактически нарисовать его.

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

print (qplot (1 : 10, 1 : 10))

Кроме того, вы можете переопределить qplot сделать печать:

qplot <- function (x, y = NULL, z = NULL, ...) {
  p <- ggplot2::qplot (x = x, y = y, z = z, ...)
  print (p)
}

(это меняет метки оси на x и y).

Я использую этот подход в виньетках, где я хочу писать код точно так, как его вводит пользователь в интерактивном сеансе.

Другие вопросы по тегам