R-风格ggplot轴(R-style axes with ggplot)

2019-06-24 23:18发布

使用ggplot,是有可能得到“R风格的”不原点满足而不是由两个断开的范围,如下面的例子X / Y轴?

这里的原因主要是为了获得ggplot地块旁边看是一致的纯-R的。

Answer 1:

试试这个,

library(ggplot2)

d <- data.frame(x=1:10, y=rnorm(10))

base_breaks_x <- function(x){
  b <- pretty(x)
  d <- data.frame(y=-Inf, yend=-Inf, x=min(b), xend=max(b))
  list(geom_segment(data=d, aes(x=x, y=y, xend=xend, yend=yend), inherit.aes=FALSE),
       scale_x_continuous(breaks=b))
}
base_breaks_y <- function(x){
  b <- pretty(x)
  d <- data.frame(x=-Inf, xend=-Inf, y=min(b), yend=max(b))
  list(geom_segment(data=d, aes(x=x, y=y, xend=xend, yend=yend), inherit.aes=FALSE),
       scale_y_continuous(breaks=b))
}

ggplot(d, aes(x,y)) +
  geom_point() +
  theme_bw() +
  theme(panel.border = element_blank(),
       panel.grid.major = element_blank(),
       panel.grid.minor = element_blank()) +
  base_breaks_x(d$x) +
  base_breaks_y(d$y)

编辑:一个相关的问题已经被讨论的ggtheme包,并有可能提供一个清洁的解决方案(无需显式地提供数据给中断功能)。



文章来源: R-style axes with ggplot
标签: r ggplot2