Подтвердить что ты не робот

Plot.new еще не вызван

Почему это происходит?

plot(x,y)
yx.lm <- lm(y ~ x)
lines(x, predict(yx.lm), col="red")

Ошибка в plot.xy(xy.coords(x, y), type = type, ...):       plot.new еще не вызывается

4b9b3361

Ответ 1

Некоторые действия, которые, возможно, не представлены в видимом коде, закрыли интерактивное экранное устройство. Это можно сделать либо с помощью "click" на кнопке закрытия. (Может также быть сделано дополнительным dev.off() при построении графика на графическом устройстве. Это может произойти, если вы вставляете в команду многострочной графики, у которой есть dev, off() в конце, но ошибки при открытии внешнего устройства, но затем имеет hte dev.off() на отдельной строке, чтобы он случайно закрывал интерактивное устройство).

Некоторые (большинство?) R-реализаций запускают экранное графическое устройство, которое открывается автоматически, но если вы его закроете, вам нужно его повторно инициализировать. В Windows может быть window(); на Mac, quartz(); и в окне linux, x11(). Вам также может потребоваться выполнить команду plot.new(). Я просто следую приказам. Когда я получаю эту ошибку, я выдаю plot.new(), и если я не вижу окно графика, я выпускаю quartz(). Затем я начинаю сначала с новой команды plot(., ., ...) и любых дополнительных дополнений к изображению на экране.

Ответ 2

В моем случае я пытался вызвать plot(x, y) и lines(x, predict(yx.lm), col="red") в двух отдельных фрагментах в файле Rmarkdown. Он работал без проблем при запуске куска куском, но соответствующий документ не вяжется. После того, как я переместил все вызовы построения за один кусок, проблема была решена.

Ответ 3

У меня была та же проблема... Моя проблема заключалась в том, что я закрывал окно кварца после графика (x, y). Как только я оставил его открытым, строки, которые ранее приводили к ошибкам, просто добавили вещи в мой сюжет (как и предполагалось). Надеюсь, это может помочь некоторым людям, которые приходят на эту страницу.

Ответ 4

Как новичок, я столкнулся с той же "проблемой".

В новых условиях: когда вы вызываете plot(), окно графика получает фокус, и вы не можете вводить дополнительные команды в R. Это когда вы заключаете, что вы должны закрыть окно графика, чтобы вернуться к R. Однако некоторые команды, такие как identify(), действуют на открытые/активные окна графика. Когда identify() не может найти открытое/активное окно графика, оно выдает это сообщение об ошибке.

Однако вы можете просто щелкнуть по окну R, не закрывая окно графика. Затем вы можете ввести больше команд в подсказке R, например identify() и т.д.

Ответ 5

Если кто-то использует функцию print (например, с mtext), сначала изобразите нулевой график:

plot(0,type='n',axes=FALSE,ann=FALSE)

а затем напечатайте с помощью newpage = F

print(data, newpage = F)