两列/行在ggplot中定位标签

时间:2014-09-03 08:05:06

标签: r ggplot2 label

我在ggplot2中绘制一个图,在y轴上我有组的索引,在x轴上有一些信息。为了便于阅读,我想让标签更大,但随后它们开始重叠。因此,我想将标签分成两列,如图所示,因此它们可以更大。有没有办法在ggplot中这样做?我试过vjust和hjust,但他们似乎只接受适用于所有标签的1个参数。

当前标签:Current Labeling

目标标签:Objective labeling

1 个答案:

答案 0 :(得分:4)

嗯,没有明显的参数负责,至少AFAIK。

但是,为了您的具体目标,我首先想到的是为数字标签添加一些空格。

avoid_overlap <- function(x) 
{
  ind <- seq_along(x) %% 2 == 0
  x[ind] <- paste0(x[ind], "     ")
  x
}
ggplot(mtcars, aes(cyl, mpg)) + geom_point() + 
  scale_y_continuous(breaks = 10:35, labels = avoid_overlap(10:35)) + 
  theme(axis.text.y = element_text(size = 32))

enter image description here

如果网格过于密集,则通过theme使用网格线(次要/主要)进行播放。