0

在 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轴标签

par尽管我尝试通过and删除它plot,y 轴标签仍然存在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 = ""),
    ...))

...但有人建议我不要这样做。任何想法为什么这可能有效?只是该功能会覆盖设置吗?

再现性:

#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)
4

1 回答 1

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) 

在此处输入图像描述

于 2014-09-04T21:35:38.157 回答