我正在使用ggplot和plotly为闪亮的应用程序构建图。我的数据跨越数年,但是用户可以控制日期范围,并且一次只查看少量数据。我正在尝试使用geom_segments表示事件的持续时间(具有开始和结束日期的事件)。我的问题是,除非开始日期和结束日期都在用户选择的视图范围内,否则该事件根本不会显示在绘图上。
例如,如果xend日期不在选定的视图范围内,是否可以使geom_segments出现并看起来像是在图的侧面继续?
谢谢!
更新: 相反,使用coord_cartesian似乎是正确的方法,但是现在我得到了以下视图: Plot
答案 0 :(得分:1)
您需要使用coord_cartesian
函数来限制绘图,但仍要保持画线...
df2 <- expand.grid(
lineend = c('round', 'butt', 'square'),
linejoin = c('round', 'mitre', 'bevel'),
stringsAsFactors = FALSE
)
df2 <- data.frame(df2, y = 1:9)
ggplot(df2, aes(x = 1, y = y, xend = 2, yend = y, label = paste(lineend, linejoin))) +
geom_segment(
lineend = df2$lineend, linejoin = df2$linejoin,
size = 3, arrow = arrow(length = unit(0.3, "inches"))
) +
geom_text(hjust = 'outside', nudge_x = -0.2) +
# scale_x_continuous(limits=c(0.5,1.5)) +
coord_cartesian(xlim=c(0.5,1.5))
因此,从#
中移除scale_x_continuous
来查看区别。