You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用R语言rsm包绘制三向量等高线图在RStudio运行报错问题

RStudio中rsm包等高线绘图报错解决方案

报错原因

该报错由命名空间冲突导致:
原生R控制台启动时仅默认加载R基础包,调用contour方法时会优先匹配rsm包为lm类模型适配的S3方法contour.lm,可以正常识别线性回归模型对象完成绘图。
而RStudio启动时会默认加载一批常用扩展包,部分扩展包也注册了同名的contour方法,优先级高于rsm包的方法,最终调用了基础包的contour.default方法——该方法仅接受矩阵格式的z值输入,无法识别lm模型对象,因此抛出错误:

Error in contour.default(z.lm, x ~ y) : no proper 'z' matrix specified

解决方案

最稳妥无副作用的方案是直接明确指定调用rsm包的contour方法,避免冲突,仅需修改最后一行绘图代码即可。

修正后完整代码

library(rsm)

x<-c(5.64,5.64,5.64,6.32,6.99,7.66,6.11,6.11,5.92,5.63)
y<-c(0.09,0.12,0.15,0.24,0.29,0.33,0.16,0.18,0.17,0.15)
z<-c(10.43,3.83,15.74,0,0,0,15.38,22.98,10.76,16.74)

z.lm <- lm(z ~ poly(x, y, degree=2))

# 强制调用rsm包的适配方法,规避命名冲突
rsm::contour(z.lm, x ~ y)

其他可选方案:

  • 绘图前先卸载再重新加载rsm包,让其方法优先级置顶:
    detach("package:rsm", unload = TRUE)
    library(rsm)
    
  • 在RStudio设置中关闭默认加载的无关扩展包,从根源避免冲突。

内容的提问来源于stack exchange,提问作者Diego

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 17:18:04