无法删除plot.gbm中的y轴标签

时间:2014-09-04 21:03:41

标签: r plot axis-labels gbm

gbm.plot中this问题设置轴宽度后的运行问题;我现在直接使用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()

结果: yaxislabel

尽管我试图通过par以及plotaxis删除它,但y轴标签仍然存在。我可以尝试挖掘函数并更改此(和类似的)行:

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 = ""),
    ...))

...但是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)

1 个答案:

答案 0 :(得分:3)

问题是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) 

enter image description here