Звучит как работа для geom_point
вместо geom_step
, поскольку вы хотите показать каждую точку данных в виде отметки.
Некоторые поддельные данные:
library(dplyr); library(lubridate)
df <- tibble(
robot = sample(2*1:33, 1E4, replace = TRUE),
stepStartTime = ymd_hm(201809090000) +
runif(1E4, 0, 60*60*24),
effStatus = sample(c("Efficient", "Inefficient"),
1E4, replace = TRUE)
)
Сюжет их:
ggplot(df, aes(stepStartTime, robot, color = effStatus)) +
geom_point(size = 2, shape = 'I') +
scale_y_reverse(breaks = 2*1:33) +
theme_minimal() +
theme(panel.grid.major.y = element_blank(),
panel.grid.minor.y = element_blank())
Приложение re: manual colors question:
Чтобы добавить определенный цвет для каждого робота (если он эффективен) и специальный цвет для неэффективного, вы можете заранее создать новую переменную, например, mutate(my_color = if_else(effStatus == "Inefficient", "Inefficient", robot)
. Затем укажите my_color
вместо robot
при указании цвета.
Чтобы получить определенные цвета, используйте scale_color_manual
:
https://ggplot2.tidyverse.org/reference/scale_manual.html