【问题标题】:Editing default functions: Changing the default color of plot function in kernlab in R编辑默认函数:在 R 中更改 kernlab 中绘图函数的默认颜色
【发布时间】:2014-09-15 10:31:23
【问题描述】:

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

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

【问题讨论】:

    标签: r colors svm kernlab generic-function


    【解决方案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. "就地编辑函数。见What ways are there to edit a function in R?

    【讨论】:

      猜你喜欢
      • 2021-05-04
      • 1970-01-01
      • 2014-10-04
      • 2017-09-28
      • 2013-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多