我有一个数据表dt
,如下所示:
time col_A col_B diff
1: 930 9925642 10025714 100098.53
2: 931 9925642 10025714 100098.53
3: 932 9925642 10025714 100098.53
4: 933 9925642 10025714 100098.53
5: 934 9925642 10025714 100098.53
---
237: 1456 9949509 10029605 80095.54
238: 1457 9949509 10029605 80095.54
239: 1458 9949509 10029605 80095.54
240: 1459 9949509 10029605 80095.54
241: 1500 9949509 10029605 80095.54
使用以下代码,我可以生成一个图:
idx <- 1:nrow(dt)
g <- ggplot(data = dt, aes(x = idx)) +
geom_line(aes(y = col_A, group = 1, colour = "A"))
geom_line(aes(y = col_B, group = 2, colour = "B")) +
geom_vline(xintercept = dt[, .I[diff == max(diff)]], color = "black") +
scale_color_manual(values = c("A" = "red", "B" = "blue")
g
但是上面的黑线并不是我想要的,我想要的是用蓝色和红色的给这条线盖上盖子,并添加一个文本标签来显示最大的差值,就像这样:
我怎样才能实现这一点?谢谢
1条答案
按热度按时间nle07wnf1#
您可以在此处使用
geomtextpath
中的geom_textsegment
:问题中的示例数据不足以进行演示,因此以下是用于上述示例的可重现数据集: