如何调整轴的刻度(或间隔)?

时间:2018-06-03 06:12:04

标签: r ggplot2

我想改变轴的比例(或间隔)。

另一方面,我遇到了一些麻烦。

这是我的代码,我已经实现了以下内容。

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))

请让我知道如何做我想做的事。

永远感谢。

1 个答案:

答案 0 :(得分:1)

以下是如何使用gg_bothggplot()数据框开始重建情节,并添加勾号:

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")

vimp

解释(摘自ggRandomForests: Random Forests for Regression)arXiv论文:

  • 颜色和对角线:

      

    红色虚线上的点数相等,下面的点数具有更高的VIMP,上面的点数具有更高的最小深度排名。变量由VIMP度量的符号着色。

  • 垂直线:

      

    垂直虚线表示重要变量的最大最小深度。

  • 水平线(本文未提及,但它在source code中):

      

    ...我们可以在MD选择点放置一条水平线。