我想用ggplot2画一条时间线.一些事件同时发生,并且ggplot2倾向于将它们一个接一个地画在一起,使得只有一个事件保持可见.
以下是事件的示例表:
library(tidyverse)
events <-
tribble(
~group, ~name, ~start, ~end, ~color,
"group1", "first event", "2023-09-19", "2023-11-19", "color1",
"group1", "in parallel", "2023-09-19", "2023-11-19", "color2",
"group1", "later", "2024-09-01", "2024-09-21", "color1"
) |>
mutate(start=lubridate::ymd(start),
end=lubridate::ymd(end))
以下是目前为止的ggplot2命令:
ggplot(events,
aes(xmin=start, xmax=end,
ymin=group, ymax=group,
col=color)) +
scale_x_date() +
geom_rect(linewidth=3)
请注意,第二个事件绘制在第一个事件的顶部,因此用户看不到它:
plot of the timeline with first event not being visible个
如何使这两个事件都可见?
我try 了ggplot2提供的所有位置调整,希望它们中的任何一个都能在显示正确的开始日期和结束日期的同时绘制两个事件.position_dodge()
听起来像是自然而然的 Select ,但它会改变事件在x轴上的位置,从而使情节变得不正确.