在ggplot中为点添加索引

时间:2018-02-19 15:50:43

标签: r ggplot2

我有一个基本的情节,有少量的点。我想用数字索引标记点,然后在图例中获得点的完整描述。这些常见于地图上,如以下示例所示:

https://www.southampton.ac.uk/assets/imported/transforms/site/location/PDFMap/34014A36B0B34544AE5937646323D1AE/highfield_campus.pdf

但是,ggplot中似乎没有内置函数来添加索引。这是基本概念的MWE:

df <- data.frame(x = 6:10, y = 6:10, id = 1:5)
df$label <- paste0("Label", df$id)

library(ggplot)

# Basic plot
ggplot(df, aes(x, y)) +
  geom_point() +
  geom_label(aes(label = id), nudge_x = 0.2)

enter image description here

到目前为止,我所尝试的是通过美学将索引标签映射到该点。这样,它创建了一个图例如下:

ggplot(df, aes(x, y)) +
  geom_point(aes(fill = label)) +
  geom_label(aes(label = id), nudge_x = 0.2)

enter image description here

这接近正确的索引,但理想情况下,图例形状将显示数字计数而不是相同的形状。以下是潜在最终结果的手动编辑:

enter image description here

有没有人知道如何以优雅的方式做到这一点?

之前有一个未回答的问题与此类似:Add numbers to ggplot legend

1 个答案:

答案 0 :(得分:0)

我对此问题的最佳解决方法:

  1. 在原始数据集中创建一个新列,用于连接ID和标签
  2. 使用新列作为图例的美学
  3. 隐藏图例键
  4. 这是代码:

    .gitattributes

    enter image description here

    虽然有兴趣听到其他方法,但仍然感觉有点混乱。