如何修复plot.window(...)中的错误:需要有限的'xlim'值

2,142 阅读2分钟

你在使用R时可能遇到的一个错误是:

Error in plot.window(...) : need finite 'xlim' values

当你试图在R中创建一个绘图,并在X轴上使用字符向量或只有NA值的向量时,这个错误就会发生。

下面的例子显示了在实践中可能发生这种错误的两种不同情况。

例1:字符向量的错误

假设我们试图用下面的代码来创建一个散点图:

#define data
x <- c('A', 'B', 'C', 'D', 'E', 'F')
y <- c(3, 6, 7, 8, 14, 19)

#attempt to create scatterplot
plot(x, y)

Error in plot.window(...) : need finite 'xlim' values

我们收到一个错误,因为我们用于X轴数值的向量是一个字符向量。

为了解决这个错误,我们只需要为X轴提供一个数字向量:

#define two numeric vectors
x <- c(1, 2, 3, 4, 5, 6)
y <- c(3, 6, 7, 8, 14, 19)

#create scatterplot
plot(x, y)

因为我们为x轴提供了一个数字向量,所以我们能够创建散点图而没有任何错误。

例子 2: 含有NA值的矢量的错误

假设我们试图用下面的代码来创建一个散点图:

#define data
x <- c(NA, NA, NA, NA, NA, NA)
y <- c(3, 6, 7, 8, 14, 19)

#attempt to create scatterplot
plot(x, y)

Error in plot.window(...) : need finite 'xlim' values

我们收到了一个错误,因为我们用于X轴数值的向量是一个只有NA值的向量。

为了解决这个错误,我们只需要为x轴提供一个数字向量:

#define two numeric vectors
x <- c(1, 5, 9, 13, 19, 22)
y <- c(3, 6, 7, 8, 14, 19)

#create scatterplot
plot(x, y)

再一次,我们能够成功地创建一个散点图,而且没有任何错误,因为我们为x轴使用了一个数字矢量。

其他资源

下面的教程解释了如何修复R中的其他常见错误:

如何修复R错误:意外的字符串常数
如何修复R错误:提供给连续刻度的离散值
如何修复R错误:参数不是数字或逻辑:返回na