关于this问题在gbm.plot中设置轴宽的问题;我现在直接使用plot.gbm,似乎无法删除y轴标签,该标签似乎是在plot.gbm函数代码中设置的。
png(filename="name.png",width=4*480, height=4*480, units="px", pointsize=80, bg="white", res=NA, family="", type="cairo-png")
par(mar=c(2.6,2,0.4,0.5), fig=c(0,1,0.1,1), las=1, lwd=8, bty="n", mgp=c(1.6,0.5,0))
plot.gbm(my_gbm_model,1,return.grid=FALSE, write.title=F,lwd=8, ylab=F, axes=F, ylabel=FALSE, ylabel="")
axis(1, lwd.ticks=8, lwd=8, labels=FALSE)
axis(2, lwd.ticks=8, lwd=8, labels=NA, ylab=FALSE,ylabel=FALSE)
dev.off()结果:

Y轴标签仍然在那里,尽管我的所有atempts通过par、plot和axis删除它。我可以尝试钻研这个函数并修改以下(和类似的)行:
print(stripplot(X1 ~ temp | X2 * X3, data = X.new,
xlab = x$var.names[i.var[i[1]]],
ylab = paste("f(", paste(x$var.names[i.var[1:3]], collapse = ","), ")", sep = ""),
...))...but I've been advised against such practices.有什么想法吗?为什么会起作用?简单地说,函数覆盖了设置?
可重复性:
#core data csv: https://drive.google.com/file/d/0B6LsdZetdypkWnBJVDJ5U3l4UFU
#(I've tried to make these data reproducible before and I can't work out how to do so)
library(dismo)
samples <- read.csv("data.csv", header = TRUE, row.names=NULL)
my_gbm_model <- gbm.step(data=samples, gbm.x=1:6, gbm.y=7, family = "bernoulli",
tree.complexity = 2, learning.rate = 0.01, bag.fraction = 0.5)发布于 2014-09-04 21:35:38
问题是plot.gbm不是一个类似R的函数。因为任何人都可以提交一个包给CRAN,所以不需要他们遵循传统的R模式,这看起来就像这里发生的事情一样。如果您使用示例数据执行plot.gbm操作,您将看到最终的绘图工作是在
plot(X$X1, X$y, type = "l", xlab = x$var.names[i.var], ylab = ylabel)而ylabel是在紧接它之前设置的,没有禁用它的选项。作者没有提供任何标准的方法来抑制这个特殊绘图函数的ylab。
在这种情况下,最简单的方法可能是减少左边框,这样标签就可以打印出地块。看上去
par("mar"=c(5,2.2,4,2)+.1, fig=c(0,1,0.1,1), las=1, lwd=8, bty="n")
plot.gbm(my_gbm_model,1,return.grid=FALSE, write.title=F,lwd=8, ylab="", axes=F)
axis(1, lwd.ticks=8, lwd=8, labels=FALSE)
axis(2, lwd.ticks=8, lwd=8, labels=FALSE)

https://stackoverflow.com/questions/25674951
复制相似问题