添加具有许多彼此接近的数据点的标签

时间:2019-06-04 05:32:14

标签: r plot

我想在数据点旁边添加标签。我知道这个问题已经在该站点上得到了多次回答,并且text函数的效果很好,但是当有许多重叠的数据点时,我还有其他技巧可以与R base函数一起使用来使标签可见吗?下面是一个用数字标签绘制的数据示例,但其中大多数无法区分。

散点图:

enter image description here

1 个答案:

答案 0 :(得分:3)

假设您有:

library(gapminder); library(ggplot2)
ggplot(gapminder[gapminder$year == 2007,],
        aes(gdpPercap, lifeExp, label = country)) +
  geom_text(check_overlap = T)

enter image description here 围绕过度绘制文本的一些常用技术:

1)如果您不介意丢失一些内容,请使用check_overlap:

ggplot(gapminder[gapminder$year == 2007,],
        aes(gdpPercap, lifeExp, label = country)) +
  geom_text(check_overlap = T)

enter image description here

2)ggrepel的{​​{1}}将迭代微移文本以减少/消除重叠。在这种情况下,点数太大,我不得不缩小字体以使其完全起作用。

geom_text_repel

enter image description here

3)如果沿线绘制,则可能会定期采样点:

ggplot(gapminder[gapminder$year == 2007,],
    aes(gdpPercap, lifeExp, label = country)) +
  ggrepel::geom_text_repel(size = 2, box.padding = 0.01)

有无采样:

enter image description here

enter image description here