0

gbm.plot で軸幅を設定するこの問題に続く実行中の質問。現在、plot.gbm を直接使用していますが、plot.gbm 関数コード内で設定されているように見える y 軸ラベルを削除できないようです。

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

pary 軸のラベルは、 andplotとを使用して削除しようとしても、まだ残ってい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 に答える