[英]How can I adjust axis' scale(or intervals)?
我想更改軸的比例(或間隔)。
另一方面,我對此有些麻煩。
這是我實現的代碼,如下所示。
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)
但是,我要做的是將x軸比例從0調整為22。
因此,盡管我按以下方式進行了添加的代碼,但是它沒有用。
#### 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))
請讓我知道該怎么做。
一直謝謝
以下是使用ggplot()
從gg_both
數據幀開始重建圖並添加刻度線的方法:
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度量的符號着色。
垂線:
垂直虛線表示重要變量的最大最小深度。
水平線(本文未提及,但在源代碼中 ):
...我們可以在MD選擇點放置一條水平線。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.