我想改变轴的比例(或间隔)。
另一方面,我遇到了一些麻烦。
这是我的代码,我已经实现了以下内容。
install.packages("randomForestSRC")
install.packages("ggRandomForests")
library(randomForestSRC)
library(ggRandomForests)
data(pbc, package="randomForestSRC")
pbc.na <- na.omit(pbc)
set.seed(123)
rsf <- rfsrc(Surv(days, status)~., data=pbc.na,
ntree=500, nplist=1, importance=T, proximity=T)
out.vs <- var.select (rsf)
gg_md <- gg_minimal_depth(out.vs)
gg_both <- gg_minimal_vimp(gg_md)
plot(gg_both)
在这种情况下,图表可以像这样显示。 rendered page
但是,我想要做的是将x轴刻度从0调整到22为1。
因此,虽然我已经执行了如下添加的代码,但它没有用。
#### It doest not work.
plot(gg_both)+
ggplot2::scale_x_continuous(breaks=seq(0, 22, 1))
### It is working but no information about positive $ negative VIMP, dashed lines, etc.
ggplot2::ggplot(gg_both, ggplot2::aes(x=vimp, y=names))+
ggplot2::geom_point(color="black")+
ggplot2::scale_x_continuous(breaks=seq(0, 22, 1))
请让我知道如何做我想做的事。
永远感谢。
答案 0 :(得分:1)
以下是如何使用gg_both
从ggplot()
数据框开始重建情节,并添加勾号:
library(tidyverse)
max_pos <- gg_both %>% filter(col=="+") %>% select(vimp) %>% max
min_neg <- gg_both %>% filter(col=="-") %>% select(vimp) %>% min
vline <- (min_neg - max_pos) / 2 + max_pos
ggplot(gg_both, aes(x=vimp, y=reorder(names, depth), color=col)) +
geom_point() +
scale_x_continuous(breaks=1:22, labels=1:22) +
geom_abline(slope=1, lty=2, color="red") +
geom_vline(xintercept = vline, lty=2, color="red") +
geom_hline(yintercept = attr(gg_both, "modelsize") + .5, lty=2, color="red")
解释(摘自ggRandomForests: Random Forests for Regression
)arXiv论文:
颜色和对角线:
红色虚线上的点数相等,下面的点数具有更高的VIMP,上面的点数具有更高的最小深度排名。变量由VIMP度量的符号着色。
垂直线:
垂直虚线表示重要变量的最大最小深度。
水平线(本文未提及,但它在source code中):
...我们可以在MD选择点放置一条水平线。