0

根据 kernlab 文档中的示例, plot 很好地描绘了 SVM 模型的决策权重和边界。

require(kernlab)
x<- rbind(matrix(rnorm(n=120,mean=-1,sd=2),,2),matrix(rnorm(120,mean=3,sd=2),,2))
y <- matrix(c(rep(1,60),rep(-1,60)))
svp <- ksvm(x,y,type="C-svc",kernel="vanilladot")
plot(svp,data=x)

但是,我想更改背景渐变的默认颜色。任何建议如何做到这一点?我已经研究过编辑(绘图),但对通用函数不太满意,不知道要改变什么。谢谢!

4

1 回答 1

1

如果您检查showMethods("plot")and then getMethod("plot", c("ksvm", "missing")),您会看到绘图函数创建了自己的颜色:

[...]
mycols <- c(hcl(0, 100 * (nl:0/nl)^1.3, 90 - 40 * 
   (nl:0/nl)^1.3), rev(hcl(260, 100 * (nl:0/nl)^1.3, 
   90 - 40 * (nl:0/nl)^1.3)))
[...]

并将它们用于绘图:

[...]
filled.contour(xr, yr, matrix(as.numeric(preds), 
    nrow = length(xr), byrow = TRUE), col = mycols,
[...]

这意味着您不能轻易更改颜色,它们被硬编码到ksvm plot().

你能做的是

  1. 复制plot()函数并重写它,这样您就可以覆盖默认颜色。
  2. 给包的维护者写一封电子邮件,告诉他添加这个特性。如果您已经重写了绘图功能,可能会向他发送补丁。
  3. “就地编辑函数。请参阅有哪些方法可以在 R 中编辑函数?
于 2014-07-24T02:53:39.883 回答