这里有一些数据。
library(ggplot2)
df <- structure(list(date = structure(c(18851, 19958, 18933, 18949,
18976, 19074, 19304, 19570, 19713, 19766, 20032), class = "Date"),
event = c("Census data released", "Johnson v. WEC filed in state court",
"People's Map Commission releases final proposal", "Gov. Evers vetoes maps",
"SCOWIS receives proposed maps", "SCOTUS rules Evers' map unconstitutional",
"Election held using legislature's map", "Protasiewicz begins term",
"SCOWIS strikes down existing maps & invites proposals",
"Legislature passes Evers' map", "Election held using Evers' map"
)), row.names = c(NA, -11L), class = c("tbl_df", "tbl", "data.frame"
))
我是这样规划的。
df |>
ggplot(aes(x = 0, y = date)) +
geom_line() +
geom_point() +
ggrepel::geom_label_repel(aes(label = str_wrap(event, 30)),
hjust = -0.2, direction = "y", seed = 3)
请注意,标签的第二行在换行时与第一行文本的对齐方式不一致。
如何才能使包装标签的后续行以与标签第一行相同的对齐方式开始?
注意:ggrepel::geom_label_repel
为了清楚起见,我使用了,但是用 显示了相同的包装行为ggplot2::geom_label
。
hjust
[0, 1] 以外的值不受官方支持(据我所知),可能会导致异常,例如本例。使用hjust = 0
然后使用例如nudge_x
将位置向右移动,或调整这些参数以获得所需的结果。基本上,你应该利用职位来获得你想要的东西,而不是利用理由。