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

R语言lattice绘图添加panel.lmbands报panel参数重复错误如何解决?

报错原因

代码中重复为xyplot传入了panel参数,第一次指定为panel.lmbands,第二次又定义了自定义面板函数,R无法匹配优先级,因此抛出参数冲突错误。

修正方案

将panel.lmbands的调用整合到自定义面板函数内部,删除重复的panel参数即可,完整可运行代码如下:

library(lattice)
library(tidyverse)
library(hydroGOF)
library(mosaic)
library(latticeExtra)

summ <- iris %>% 
  group_by(Species) %>% 
  summarise(Rsq = cor(Sepal.Length, Petal.Length)^2,
            RMSE = rmse(Sepal.Length, Petal.Length),
            NSE = NSE(Sepal.Length, Petal.Length)) %>% 
  mutate_if(is.numeric, round, digits=2)

summ$ann <- lapply(1:nrow(summ), function(i) with(summ[i, ], 
            c(bquote(R^2 == .(Rsq)), bquote(RMSE == .(RMSE)), bquote(NSE == .(NSE))))
)

xyplot(Petal.Length ~ Sepal.Length | Species, data = iris, pch = 23, 
       layout=c(3,1), 
       band.lty = c(conf =2, pred = 1), 
       band.lwd =c(conf =1, pred = 1),
       npts = 500,
       scales=list(cex=c(1.4,1.4), alternating=1, relation = "free"),
       xlab = list(label="Sepal Length", fontsize=20),
       ylab = list(label="Petal Length", fontsize=20),
       panel = function(x, y, ...) {
         i <- panel.number()
         # 调用panel.lmbands完成散点、回归线、置信/预测区间绘制
         panel.lmbands(x, y, ...)
         # 叠加拟合指标标注
         panel.key(as.expression(summ$ann[[i]]), points = FALSE)
       })
效果说明

运行后将生成3个并排的分面图,每个分面包含鸢尾花对应亚种的散点、回归拟合线、虚线置信区间、实线预测区间,同时自动标注对应分面的R²、RMSE、NSE三个拟合指标,完全符合预期需求。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 07:27:03