将ggrepel长标签移至绘图线的右侧

时间:2019-05-10 03:19:07

标签: r ggplot2 ggrepel

我希望将标签完全移至绘图线的右侧。我不希望进一步扩展x轴。我只需要创造空间。我该怎么做?


library(tidyverse)
library(ggrepel)

df <- tibble(
  x = as.Date(c("1990-01-01", "2000-01-01")),
  y = c(1, 3)
)

lbls <- filter(df, x == "2000-01-01")


ggplot(df, aes(x = x, y = y)) +
  geom_line() +
  geom_label_repel(data = lbls, label = "Hello there I am a very long label") + 
  theme_minimal() 

1 个答案:

答案 0 :(得分:1)

添加hjustexpand似乎可以解决问题:

ggplot(df, aes(x = x, y = y)) +
  geom_line() +
  geom_label_repel(
    data = lbls, 
    label = "Hello there I am a very long label", 
    hjust = -0.05
  ) + 
  scale_x_date(
    expand = expand_scale(mult = c(0, 1.5)),
    date_labels = "%Y",
    breaks = seq.Date(min(df$x), max(df$x), "5 years")
  ) +
  theme_minimal() +
  theme(panel.grid.minor.x = element_blank())

如果您在x轴上的日期间隔不同,则hjust参数可能会不同。对于展开,c(0, 1.5)的意思是“不要对x轴的最小值进行任何调整,而将x轴的最大值再扩展到当前范围的1.5倍”。在1990年至2000年之间的10年中,又增加了15年。

enter image description here