在散点图中突出显示向量中的特定点

Highlight specific points from vector in scatterplot

我有一个包含两列的数据框 df,它们使用 ggplot 绘制在散点图中。现在我把曲线分成了区间。区间的切点在向量r中。我现在想突出显示这些点以改进间隔的可视化。我正在考虑为这些间隔点着色,甚至在将垂直线添加到图中时对间隔进行分段……我尝试了一些命令,但它们对我不起作用。 这是我的数据框的样子的想法: d 是第一个列,e 是第二个实例数。

   d      e
   1      4
   2      4
   3      5
   4      5
   5      5
   6      4
   7      2
   8      3
   9      1
  10      3
  11      2
  12      3
  13      3
  14      3
  15      3
  16      3
  17      3
  18      4

我的矢量 r 显示了设置间隔边界的位置。

7
8
9
10
11
12
18

知道怎么做吗?谢谢!

你可以试试tidyverse。这个想法是使用“mutateand%in%, then color by the resutling logical vectorgr”找到重叠点。我还添加了垂直线来说明 "intervals".

library(tidyverse)
d %>% 
  mutate(gr=d %in% r) %>% 
  ggplot(aes(d,e, color=gr)) + 
   geom_vline(xintercept=r, alpha=.1) +
   geom_point()

编辑:如果没有 tidyverse,您可以使用

添加 gr
d$gr <- d$d %in% r
ggplot(d, aes(d,e, color=gr)) ...

数据

d <- read.table(text="  d      e
   1      4
                2      4
                3      5
                4      5
                5      5
                6      4
                7      2
                8      3
                9      1
                10      3
                11      2
                12      3
                13      3
                14      3
                15      3
                16      3
                17      3
                18      4", header=T)
r <- c(7:12,18)