鉴于我有 2 个系列 + 图例,实现通用绘图方法的最佳方法是什么?问题是我想为颜色和图例提供一些不错的默认值,但用户应该可以自由更改它:
obj = list(y1 = runif(100, 0, 10), y2 = runif(100, 20, 30))
class(obj) = 'foo'
plot.foo = function(myobj, col1 = 'red', col2 = 'blue', type = 'l', ...)
{
ylim = c(min(obj$y1, obj$y2), max(obj$y1, obj$y2))
plot(myobj$y1, type = type, col = col1, panel.first = grid(col = '#A9A9A9'), ylim = ylim, ...)
lines(myobj$y2, col = col2, type = type, ...)
}
plot(obj)
这看起来不错,但如果我打电话
plot(obj, col = 'black')
它引发了一个错误:
Error in plot.foo(obj, col = "black") :
argument 2 matches multiple formal arguments
有没有办法在不破坏情节协议的情况下处理 2 系列 + 传奇?(另一个问题是同步图例lwd和pch参数)
如果我乘坐 ... arg,CRAN 会拒绝我的包裹吗?谢谢!