gpt4 book ai didi

r - 是否有更改 plot.svm 硬编码标题的解决方法?

转载 作者:行者123 更新时间:2023-12-05 03:15:11 25 4
gpt4 key购买 nike

考虑以下代码。我正在尝试传递参数 main 以将绘图标题更改为“FooBar”,但它似乎被硬编码为“SVM Classification Plot”。我还尝试使用函数调用 title 但这具有覆盖两个标题的效果,这是更不可取的。有什么解决方法吗?

library(e1071)



pdf("Play.pdf")
# Generate data
set.seed(1)
x=matrix(rnorm(200*2),ncol=2)
x[1:100,]=x[1:100,]+2
x[101:150,]=x[101:150,]-2
y=c(rep(1,150),rep(2,50))
dat=data.frame(x=x,y=as.factor(y))

train=sample(200,100)

svmfit=svm(y~.,data=dat[train,],kernel="radial", cost=1, gamma=1)
plot(svmfit,dat[train,], main="FooBar")

dev.off()

最佳答案

主标题是硬编码的,所以你需要修改函数的代码。

为了避免弄乱包,我建议在全局环境中创建该函数的副本并使用它。

例如:

myplotSVM <- e1071:::plot.svm
environment(myplotSVM) <- .GlobalEnv
fix(myplotSVM)

然后将函数定义更改为:

function (x, data, formula = NULL, fill = TRUE, grid = 50, slice = list(), 
symbolPalette = palette(), svSymbol = "x", dataSymbol = "o",
main="SVN classification plot", ...)

然后,在第 56 行

plot.title = title(main = main, # <----- change this part!!! 
xlab = names(lis)[2], ylab = names(lis)[1]),
...)

因此标题将是SVN 分类图,或者您提供的任何作为main 参数

您现在可以将其用作

myplotSVM(svmfit,dat[train,], main="FooBar")

关于r - 是否有更改 plot.svm 硬编码标题的解决方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20089714/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com