Функция R ggplot и строки вместе не работают, каждый раз посылая разные предупреждающие сообщения - PullRequest
0 голосов
/ 13 февраля 2019

Я пытаюсь представить две разные информации на одном графике.Когда я использую ggplot для построения первого набора данных, он отображается правильно.Затем я пытаюсь добавить второй набор данных, используя lines(), и он не появляется на графике.

R отправляет два разных сообщения об ошибках в зависимости от того, создается ли график первым в сеансе, или я пытаюсь построить его во второй (и далее) раз:

Error in plot.xy(xy.coords(x, y), type = type, ...) : 
  plot.new has not been called yet 

Warning messages:
1: In doTryCatch(return(expr), name, parentenv, handler) :
  invalid graphics state
2: In doTryCatch(return(expr), name, parentenv, handler) :
  invalid graphics state

Когда я использую "plot "функция для построения первого набора данных, а затем" линий ", чтобы добавить второй набор данных, это работает.Некоторые происходит в R и RStudio.Я уже:
-используемый plot.new()
-используемый dev.off()
-открытый новый сеанс
-переустановка ggplot2
-переустановка RStudio
-переустановка R и RStudio
- измененные наборы данных - некоторые происходят в каждом наборе данных, даже в самых простых.

x1<-c(1:100)
y1<-c(1:100)
y2<-c(50:149)
ymin<-min(y1,y2)
x1y1<-data.frame(x1,y1)
ggplot(x1y1, aes(x1,y1))+geom_line()
lines(x1,y2)

Приведенный выше код приводит к построению графика y1 (x1), но y2 (x1) не появляется, и одна из ошибок выводится на экран.

plot(x1,y1)
lines(x1,y2)

Над кодом работает нормально, и обаотображаются наборы данных.

Я хотел бы знать, почему lines() не работает после ggplot.

1 Ответ

0 голосов
/ 14 февраля 2019

Проблема в том, что вы пытаетесь наложить базовую команду plot() на ggplot.ggplot построен так, что вы можете наложить несколько geoms друг на друга.

library(ggplot2)
x1 <- c(1:100)
y1 <- c(1:100)
y2 <- c(50:149)
ymin <- min(y1,y2)
x1y1 <- data.frame(x1, y1)
ggplot() + 
  geom_line(x1y1, aes(x1, y1), color = "blue") + 
  geom_line(aes(x = x1, y = y2), color = "red")

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...