展开缩放/轴的顶部以包含文本

时间:2014-01-05 18:18:06

标签: r ggplot2

我试图在图表的每个方面注释最高值。

我无法弄清楚如何删除y轴底部的额外空间而不将文本剪切到最高值之上。

A)是否存在scale_y_continuous(expand=c(0,0))的非对称版本?

B)或者,有没有办法让ggplot包含文本作为图表范围的一部分?

# a simple dataset
count <- 40
data <- data.frame(
  category = sample(LETTERS[1:3], count, TRUE),
  x = rnorm(count),
  y = abs(rnorm(count))
)

# find the highest value in each category
require(plyr)
data <- data[order(-data$y),]
topValues <- ddply(data, .(category), head, 1)

require(ggplot2)
ggplot(data) +
  geom_line(aes(x=x, y=y)) +
  geom_text(data=topValues, aes(x=x, y=y, label=y)) + # label the highest y value
  # add vjust=-1 to put text above point if possible
  facet_grid(category ~ ., scale="free") +
  scale_x_continuous(expand=c(0,0)) +
  scale_y_continuous(expand=c(0,0))

sample output

2 个答案:

答案 0 :(得分:2)

答案来自baptiste

只需将此调用添加到绘图中,即可在文本顶部显示空白点:

geom_blank(data=topValues, aes(x=x, y=y*1.1, label=y))

答案 1 :(得分:0)

您可以使用vjust的{​​{1}}参数来调整标签相对于geom_textx坐标的垂直位置:

y

enter image description here