我希望将标签完全移至绘图线的右侧。我不希望进一步扩展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()
答案 0 :(得分:1)
添加hjust
和expand
似乎可以解决问题:
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年。