编辑默认功能:在R中更改kernlab中绘图函数的默认颜色

时间:2014-07-24 02:14:40

标签: r colors svm kernlab generic-function

根据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)

但是,我想更改背景渐变的默认颜色。有什么建议怎么做?我已经研究了编辑(情节),但是对于通用函数来说,我不够自在地知道要改变什么。谢谢!

1 个答案:

答案 0 :(得分:1)

如果您使用showMethods("plot")然后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. &#34;编辑功能。见What ways are there to edit a function in R?