使用R绘制事件序列数据图表

时间:2018-09-09 11:16:08

标签: r ggplot2 charts sequence

我是R的图表工具的新手,我怀疑可以通过R轻松完成任务。我使用以下脚本制作了事件序列的步骤折线图:

p = ggplot(data=NULL, aes(stepStartTime, index, group=robot, color=effStatus))+
  geom_step(data=robots)+
  scale_y_reverse(lim=c(65,2))+ 
   theme(
     legend.position="none",
     axis.ticks = element_blank(), 
     axis.text.x = element_blank(), 
     axis.text.y = element_blank(), 
     axis.title.x = element_blank(), 
     axis.title.y = element_blank(),
     panel.background = element_rect(fill = 'transparent', colour = NA),
     plot.background = element_rect(fill = 'transparent', colour = NA)
 )
p + scale_color_manual(values=c("#00ff00", "#0080ff", "#ff0000" )) 

结果是这样的:

.

我希望它显示的是将每个事件作为这样的图表上的谨慎点显示。 X轴是时间轴:.

图表数据如下表所示。低效事件应显示为红色标记:

.

1 个答案:

答案 0 :(得分:2)

这听起来像是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())

enter image description here

附录re:手册颜色问题: 要为每个机器人添加特定的颜色(有效时),为无效的机器人添加特殊的颜色,您可以预先创建一个新变量,例如mutate(my_color = if_else(effStatus == "Inefficient", "Inefficient", robot)。指定颜色后,然后引用my_color代替robot

要获取特定颜色,请使用scale_color_manual

https://ggplot2.tidyverse.org/reference/scale_manual.html