2

我希望将标签完全移动到情节线的右侧。我不希望进一步扩展 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() 
4

1 回答 1

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 年。

在此处输入图像描述

于 2019-05-10T04:16:15.127 回答