首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >编辑默认函数:在R中更改kernlab中的打印函数的默认颜色

编辑默认函数:在R中更改kernlab中的打印函数的默认颜色
EN

Stack Overflow用户
提问于 2014-07-24 10:14:40
回答 1查看 265关注 0票数 0

根据内核实验室文档中的示例,plot为SVM模型的决策权重和边界绘制了一个很好的图形。

代码语言:javascript
运行
复制
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)

但是,我想更改背景渐变的默认颜色。有什么建议要怎么做吗?我研究过edit(plot),但对泛型函数不太熟悉,不知道要更改什么。谢谢!

EN

回答 1

Stack Overflow用户

发布于 2014-07-24 10:53:40

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

代码语言:javascript
运行
复制
[...]
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)))
[...]

并使用它们进行绘图:

代码语言:javascript
运行
复制
[...]
filled.contour(xr, yr, matrix(as.numeric(preds), 
    nrow = length(xr), byrow = TRUE), col = mycols,
[...]

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

你能做的是

  1. 复制plot()函数,并重写它,这样您就可以覆盖默认颜色。
  2. 给包的维护者写了一封电子邮件,并告诉他添加此功能。如果你已经在适当的地方重写了plotting function.
  3. "Edit函数,可能会给他发一个补丁。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24924054

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档