0

我需要从 ggplot 中突出显示 geom_point 图中的一个点。由于它是一个广泛的数据集,因此我使用以下代码对需要分析的行进行了切片,这给了我:

jpp1 <- my_data %>% slice(52:51)

输出:

Date   equity company  press    Categorization  Year Month Event
  <chr>   <dbl> <chr>    <chr>    <chr>          <dbl> <chr> <dbl>
1 05/18…   162. JPMorgan States … Negative        2021 May       1
2 05/19…   161. JPMorgan NA       NA                NA NA       NA

为了分析这些信息,我用下面的代码分散了一个ggplot:

ggplot(data = jpp1) + geom_point(mapping = aes(equity, Date))

我需要突出显示第 52 行,即 y 轴上的日期 05/18/21。我已经尝试过使用 gghighlight,但我无法做到。

4

1 回答 1

0

使用下面的示例数据集df,它是您数据的一部分并添加了假行,我们可以:

  1. 数据操作(日期应该是我使用lubridate包的日期
  2. highlight根据您要突出显示的内容添加列或法线。
  3. 定义你的颜色my_colors
  4. geom_pointgeom_point(size = 3, aes(colour = highlight))
  5. 分配颜色scale_color_manual
library(tidyverse)
library(lubridate)

jpp1 <- df %>% 
    mutate(Date = mdy(Date)) %>% 
    mutate(highlight = ifelse(Date == "2021-05-18", "highlight", "normal"))
    
my_colors <- c("highlight" = "red", "normal" = "black")

ggplot(data = jpp1, aes(x = Date, y = equity)) +
    geom_point(size = 3, aes(colour = highlight)) +
    scale_color_manual("Status", values = my_colors) 

数据:

df <- tribble(
~Date,   ~equity, ~company,  
"05/18/21",   162., "JPMorgan", 
"05/19/21",   161., "JPMorgan", 
"05/20/21",   160., "JPMorgan", 
"05/21/21",   159., "JPMorgan")

在此处输入图像描述

于 2021-08-04T18:45:00.913 回答