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()
结果:
尽管我试图通过par
以及plot
和axis
删除它,但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)
答案 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)