Como consertar em r: plot.new ainda não foi chamado


Um erro que você pode encontrar ao usar R é:

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

Este erro ocorre quando você tenta executar uma ação que exige que já exista um gráfico em R, mas não existe nenhum gráfico.

Os exemplos a seguir mostram como corrigir esse erro na prática.

Exemplo 1: Como corrigir o erro com linhas()

Suponha que estejamos tentando traçar uma linha de regressão ajustada em 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

Estamos recebendo um erro porque não podemos usar a função lines() sem primeiro criar um caminho em R.

Para corrigir esse erro, podemos primeiro criar um gráfico de dispersão e depois usar a função lines() :

 #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))) 

Observe que não estamos recebendo um erro porque usamos primeiro a função plot() antes de usar a função lines() .

Exemplo 2: Como corrigir um erro com abline()

Suponha que estejamos tentando criar um gráfico de dispersão com uma linha reta horizontal em 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

Estamos recebendo um erro porque não podemos usar a função abline() sem primeiro criar um gráfico em R.

Para corrigir esse erro, podemos primeiro criar um gráfico de dispersão e depois usar a função 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)

Observe que não estamos recebendo um erro porque usamos primeiro a função plot() antes de usar a função abline() .

Relacionado: Como usar aline() em R para adicionar linhas retas a caminhos

Recursos adicionais

Os tutoriais a seguir explicam como corrigir outros erros comuns no R:

Como corrigir em R: constante de string inesperada
Como corrigir em R: fórmula de modelo inválida em ExtractVars
Como consertar em R: o argumento não é numérico nem lógico: return na

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *