更改 gbm 部分图上的 x 和 y 标签
Posted
技术标签:
【中文标题】更改 gbm 部分图上的 x 和 y 标签【英文标题】:Change x and y labels on a gbm partial plot 【发布时间】:2017-03-22 15:28:32 【问题描述】:我在更改 gbm 模型的部分图上的 x 和 y 标签时遇到问题。我需要为期刊文章重命名它们。
我读了这个并创建了如下的情节:
library(gbm)
final<- readRDS(final_gbm_model)
summary(final, n.trees=final$n.trees)
这里是总结输出:
var rel.inf
ProbMn50ppb ProbMn50ppb 11.042750
ProbDOpt5ppm ProbDOpt5ppm 7.585275
Ngw_1975 Ngw_1975 6.314080
PrecipMinusETin_1971_2000_GWRP PrecipMinusETin_1971_2000_GWRP 4.988598
N_total N_total 4.776950
DTW60YrJurgens DTW60YrJurgens 4.415016
CVHM_TextZone CVHM_TextZone 4.225048
RiverDist_NEAR RiverDist_NEAR 4.165035
LateralPosition LateralPosition 4.036406
CAML1990_natural_water CAML1990_natural_water 3.720303
PctCoarseMFUpActLayer PctCoarseMFUpActLayer 3.668184
BioClim_BIO12 BioClim_BIO12 3.561071
MFDTWSpr2000Faunt MFDTWSpr2000Faunt 3.383900
PBot_krig PBot_krig 3.362289
WaterUse2 WaterUse2 3.291040
AVG_CLAY AVG_CLAY 3.280454
Age_yrs Age_yrs 3.144734
MFVelSept2000 MFVelSept2000 3.064030
AVG_SILT AVG_SILT 2.882709
ScreenLength ScreenLength 2.683542
HydGrp_C HydGrp_C 2.666106
AVG_POR AVG_POR 2.563147
MFVelFeb2000 MFVelFeb2000 2.505106
HiWatTabDepMin HiWatTabDepMin 2.421521
RechargeAnnualmmWolock RechargeAnnualmmWolock 2.252706
我可以如下创建一个部分依赖图:
plot(final,"ProbMn50ppb",n.trees=final$n.trees)
但是,如果我尝试设置标签参数,则会出现以下错误:
plot(final,"ProbMn50ppb",n.trees=final$n.trees,ylab="LNNO3")
Error in plot.default(X$X1, X$y, type = "l", xlab = x$var.names[i.var], :
formal argument "ylab" matched by multiple actual arguments
如何更改 y 轴和 x 轴标签?
【问题讨论】:
感谢您尝试提供您的数据,但我们不允许个人云链接,因为存在恶意软件并且它们会随着时间的推移而中断。此外,作为一种最佳做法,为了避免文件损坏,我建议您为 RDS 文件提供“.RDS”的扩展名。 好的,谢谢!有没有更好的方法来提供这样的数据? 通常最好在您的代码中重新创建您可以创建的内容,并dput()
任何其他内容。这样它就很容易重现并包含所有类/元数据。
【参考方案1】:
plot.gbm
函数将自己的名称传递给通用绘图函数,因此两者发生冲突。因此,您将无法在该模式下以您想要的方式自定义绘图。但是当您设置return.grid=TRUE
时,作者确实提供了一个替代方案。它不会构建绘图,而是会输出数据本身。然后,您可以将其用于任何绘图,包括 ggplot2。
plotdata <- plot(gbm1, return.grid=TRUE)
plot(plotdata, type="l", ylab="ylab", xlab="xlab")
帮助(gbm)中的示例数据
【讨论】:
这比我想到的解决方案要好得多,那就是修改源代码(因为plot.gbm
包括默认实验室和...
,这就是问题所在) .【参考方案2】:
您还可以在绘图之前(或在函数中)更改 gbm 对象本身:
your_gbm_obj$var.names[index] = "axis label"
【讨论】:
以上是关于更改 gbm 部分图上的 x 和 y 标签的主要内容,如果未能解决你的问题,请参考以下文章
Matplotlib 在所有子图上显示 x-ticks 和唯一的 y 标签