如何在 r 中修复:plot.new 尚未被调用
使用R时可能遇到的错误是:
Error in plot.xy(xy.coords(x, y), type = type, ...):
plot.new has not been called yet
当您尝试执行要求 R 中已存在绘图但不存在绘图的操作时,会出现此错误。
以下示例展示了如何在实践中纠正此错误。
示例 1:如何使用lines()修复错误
假设我们尝试在 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
我们收到错误,因为如果不先在 R 中创建路径,就无法使用lines()函数。
为了纠正这个错误,我们可以首先创建一个散点图,然后使用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)))
请注意,我们没有收到错误,因为我们在使用lines()函数之前首先使用了plot( )函数。
示例 2:如何使用 abline() 纠正错误
假设我们尝试在 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
我们收到错误,因为如果不先在 R 中创建绘图,我们就无法使用abline()函数。
为了纠正这个错误,我们可以首先创建一个散点图,然后使用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)
请注意,我们没有收到错误,因为我们在使用abline()函数之前首先使用了plot()函数。
其他资源
以下教程解释了如何修复 R 中的其他常见错误:
如何修复 R:意外的字符串常量
如何修复 R:ExtractVars 中的模板公式无效
如何在 R 中修复:参数既不是数字也不是逻辑:返回 na