วิธีแก้ไขใน 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

เราได้รับข้อผิดพลาดเนื่องจากเราไม่สามารถใช้ฟังก์ชัน lines() โดยไม่สร้างเส้นทางใน R ก่อน

เพื่อแก้ไขข้อผิดพลาดนี้ ขั้นแรกเราสามารถสร้างแผนภูมิกระจายแล้วใช้ฟังก์ชัน 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))) 

โปรดทราบว่าเราไม่ได้รับข้อผิดพลาดเนื่องจากเราใช้ฟังก์ชัน plot() ก่อนใช้ฟังก์ชัน lines()

ตัวอย่างที่ 2: วิธีการแก้ไขข้อผิดพลาดด้วย abline()

สมมติว่าเรากำลังพยายามสร้าง Scatterplot ด้วยเส้นแนวนอนตรงใน 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

เราได้รับข้อผิดพลาดเนื่องจากเราไม่สามารถใช้ฟังก์ชัน abline() โดยไม่สร้างพล็อตใน R ก่อน

เพื่อแก้ไขข้อผิดพลาดนี้ ขั้นแรกเราสามารถสร้างแผนภูมิกระจายแล้วใช้ฟังก์ชัน 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)

โปรดทราบว่าเราไม่ได้รับข้อผิดพลาดเนื่องจากเราใช้ฟังก์ชัน plot() ก่อนใช้ฟังก์ชัน abline()

ที่เกี่ยวข้อง: วิธีใช้ aline() ใน R เพื่อเพิ่มเส้นตรงให้กับเส้นทาง

แหล่งข้อมูลเพิ่มเติม

บทช่วยสอนต่อไปนี้จะอธิบายวิธีแก้ไขข้อผิดพลาดทั่วไปอื่น ๆ ใน R:

วิธีแก้ไขใน R: ค่าคงที่สตริงที่ไม่คาดคิด
วิธีแก้ไขใน R: สูตรเทมเพลตไม่ถูกต้องใน ExtractVars
วิธีแก้ไขในอาร์กิวเมนต์ R: ไม่ใช่ทั้งตัวเลขหรือตรรกะ: return na

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *