使用 geom_label() 添加指向重要点的线

Posted

技术标签:

【中文标题】使用 geom_label() 添加指向重要点的线【英文标题】:Add line pointing to important point with geom_label() 【发布时间】:2021-11-02 00:28:56 【问题描述】:

我正在制作折线图。我想通过添加一个带有指向线上点的线的文本标签来突出显示图表上的一个点。

使用 R sunspot.year 数据的可重现示例:

dat <- data_frame(NumSunSpots = sunspot.year, Year = c(1700:1988))

dat %>% 
ggplot(aes(Year, NumSunSpots))+
geom_line()+
geom_label(aes(x = 1952, y = 175, label ="Look at what is happening!"), vjust = 1, hjust = 1)

Image example

【问题讨论】:

请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。 我认为这很清楚......我的具体问题是创建一个文本标签,其中一条线指向图表上的一个点。我还为不想阅读的人制作了一张图片。我认为没有比这更直接的了哈哈 【参考方案1】:

使用geom_segment 作为简单的箭头:

玩弄 x、y、xend 和yend 以将其带到所需的位置:

dat <- data_frame(NumSunSpots = sunspot.year, Year = c(1700:1988))

dat %>% 
    ggplot(aes(Year, NumSunSpots))+
    geom_line()+
    geom_label(aes(x = 1952, y = 175, label ="Look at what is happening!"), vjust = 1, hjust = 1) +
    geom_segment(aes(x = 1900, y = 250, xend = 1950, yend = 200),
                     arrow = arrow(length = unit(0.5, "cm")))

【讨论】:

以上是关于使用 geom_label() 添加指向重要点的线的主要内容,如果未能解决你的问题,请参考以下文章

页面添加锚点的三种方式

ggplotly 中 geom_label 的替代方案

我可以使用 Lattice auto.key 或 key 来制作带有点的图例和其他数据的线吗?

chart.js 折线图不显示超过图表中某个点的线

最接近一组点的线[重复]

如何将使用 geom_label() 制作的标签的文本居中,其垂直位置已被 vjust 更改? (ggplot2 包)