Jak naprawić w r: plot.new nie został jeszcze wywołany


Błąd, który możesz napotkać podczas korzystania z R, to:

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

Ten błąd występuje, gdy próbujesz wykonać akcję, która wymaga, aby fabuła już istniała w R, ale żadna fabuła nie istnieje.

Poniższe przykłady pokazują, jak w praktyce skorygować ten błąd.

Przykład 1: Jak naprawić błąd za pomocą linii()

Załóżmy, że próbujemy wykreślić dopasowaną linię regresji w R:

 #createdata
df <- data. frame (x=c(1, 2, 2, 3, 5, 6, 8, 8, 9, 9, 10, 11, 12, 15, 15),
                 y=c(2, 3, 3, 4, 5, 5, 6, 7, 8, 8, 9, 10, 16, 19, 28))

#fit polynomial regression model
model <- lm(y~poly(x, 2), data=df)

#define new sequence of x-values
new_x <- seq(min(df$x), max(df$y))

#attempt to plot fitted regression line
lines(new_x, predict(model, newdata = data. frame (x=new_x))) 

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

Otrzymujemy błąd, ponieważ nie możemy użyć funkcjilines () bez uprzedniego utworzenia ścieżki w R.

Aby naprawić ten błąd, możemy najpierw utworzyć wykres punktowy, a następnie użyć funkcjilines () :

 #create data
df <- data. frame (x=c(1, 2, 2, 3, 5, 6, 8, 8, 9, 9, 10, 11, 12, 15, 15),
                 y=c(2, 3, 3, 4, 5, 5, 6, 7, 8, 8, 9, 10, 16, 19, 28))

#fit polynomial regression model
model <- lm(y~poly(x, 2), data=df)

#define new sequence of x-values
new_x <- seq(min(df$x), max(df$y))

#create scatterplot of x vs. y values
plot(y~x, data=df)

#attempt to plot fitted regression line
lines(new_x, predict(model, newdata = data. frame (x=new_x))) 

Zauważ, że nie otrzymujemy błędu, ponieważ najpierw użyliśmy funkcji plot() przed użyciem funkcjilines () .

Przykład 2: Jak poprawić błąd za pomocą abline()

Załóżmy, że próbujemy utworzyć wykres rozrzutu z prostą poziomą linią w R:

 #create data
df <- data. frame (x=c(1, 2, 2, 3, 5, 6, 8, 8, 9, 9, 10, 11, 12, 15, 15),
                 y=c(2, 3, 3, 4, 5, 5, 6, 7, 8, 8, 9, 10, 16, 19, 28))

#attempt to add horizontal line at y=10
abline(a=10, b=0, lwd=2)

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

Otrzymujemy błąd, ponieważ nie możemy użyć funkcji abline() bez uprzedniego utworzenia wykresu w R.

Aby naprawić ten błąd, możemy najpierw utworzyć wykres punktowy, a następnie użyć funkcji abline() :

 #createdata
df <- data. frame (x=c(1, 2, 2, 3, 5, 6, 8, 8, 9, 9, 10, 11, 12, 15, 15),
                 y=c(2, 3, 3, 4, 5, 5, 6, 7, 8, 8, 9, 10, 16, 19, 28))

#create scatterplot of x vs. y
plot(y~x, data=df)

#add horizontal line at y=10
abline(a=10, b=0, lwd=2)

Zauważ, że nie otrzymujemy błędu, ponieważ najpierw użyliśmy funkcji plot() przed użyciem funkcji abline() .

Powiązane: Jak używać funkcji aline() w R do dodawania linii prostych do ścieżek

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak naprawić inne typowe błędy w R:

Jak naprawić w R: nieoczekiwana stała łańcuchowa
Jak naprawić w R: Nieprawidłowa formuła szablonu w ExtractVars
Jak naprawić w R: argument nie jest ani numeryczny, ani logiczny: return na

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *