如何绘制geom_tile图表

3
我希望创建一个绘图,用于展示每天的工作安排。我需要处理的数据大致如下:
   dput(head (TiNiSWeek, 3))

structure(list(`04:00` = c(0, 0, 0), `04:15` = c(0, 0, 0), `04:30` = c(0, 
0, 0), `04:45` = c(0, 0, 0), `05:00` = c(0, 0, 0), `05:15` = c(0, 
0, 0), `05:30` = c(0, 0, 0), `05:45` = c(0, 0, 0), `06:00` = c(0, 
0, 0), `06:15` = c(0, 0, 0), `06:30` = c(0, 0, 0), `06:45` = c(0, 
0, 0), `07:00` = c(0, 0, 0), `07:15` = c(0, 0, 0), `07:30` = c(0, 
0, 0), `07:45` = c(0, 0, 0), `08:00` = c(0, 0, 2), `08:15` = c(0, 
0, 2), `08:30` = c(0, 0, 2), `08:45` = c(0, 0, 2), `09:00` = c(0, 
2, 2), `09:15` = c(0, 2, 2), `09:30` = c(0, 2, 2), `09:45` = c(0, 
2, 2), `10:00` = c(0, 2, 2), `10:15` = c(0, 2, 2), `10:30` = c(0, 
2, 2), `10:45` = c(0, 2, 2), `11:00` = c(0, 2, 2), `11:15` = c(0, 
2, 2), `11:30` = c(0, 2, 2), `11:45` = c(0, 2, 2), `12:00` = c(0, 
2, 0), `12:15` = c(0, 2, 2), `12:30` = c(0, 2, 2), `12:45` = c(0, 
2, 2), `13:00` = c(0, 2, 2), `13:15` = c(0, 2, 2), `13:30` = c(0, 
2, 2), `13:45` = c(0, 2, 2), `14:00` = c(0, 2, 2), `14:15` = c(0, 
2, 2), `14:30` = c(0, 2, 2), `14:45` = c(0, 2, 2), `15:00` = c(0, 
2, 2), `15:15` = c(0, 2, 2), `15:30` = c(0, 2, 2), `15:45` = c(0, 
2, 2), `16:00` = c(0, 2, 2), `16:15` = c(0, 2, 2), `16:30` = c(0, 
2, 2), `16:45` = c(0, 2, 2), `17:00` = c(0, 2, 0), `17:15` = c(0, 
2, 0), `17:30` = c(0, 2, 0), `17:45` = c(0, 0, 0), `18:00` = c(0, 
0, 0), `18:15` = c(0, 0, 0), `18:30` = c(0, 0, 0), `18:45` = c(0, 
0, 0), `19:00` = c(0, 0, 0), `19:15` = c(0, 0, 0), `19:30` = c(0, 
0, 0), `19:45` = c(0, 0, 0), `20:00` = c(0, 0, 0), `20:15` = c(0, 
0, 0), `20:30` = c(0, 0, 0), `20:45` = c(0, 0, 0), `21:00` = c(0, 
0, 0), `21:15` = c(0, 0, 0), `21:30` = c(0, 0, 0), `21:45` = c(0, 
0, 0), `22:00` = c(0, 0, 0), `22:15` = c(0, 0, 0), `22:30` = c(0, 
0, 0), `22:45` = c(0, 0, 0), `23:00` = c(0, 0, 0), `23:15` = c(0, 
0, 0), `23:30` = c(0, 0, 0), `23:45` = c(0, 0, 0), `00:00` = c(0, 
0, 0), `00:15` = c(0, 0, 0), `00:30` = c(0, 0, 0), `00:45` = c(0, 
0, 0), `01:00` = c(0, 0, 0), `01:15` = c(0, 0, 0), `01:30` = c(0, 
0, 0), `01:45` = c(0, 0, 0), `02:00` = c(0, 0, 0), `02:15` = c(0, 
0, 0), `02:30` = c(0, 0, 0), `02:45` = c(0, 0, 0), `03:00` = c(0, 
0, 0), `03:15` = c(0, 0, 0), `03:30` = c(0, 0, 0), `03:45` = c(0, 
0, 0), `04:00` = c(0, 0, 0), `04:15` = c(0, 0, 0), `04:30` = c(0, 
0, 0), `04:45` = c(0, 0, 0), `05:00` = c(0, 0, 0), `05:15` = c(0, 
0, 0), `05:30` = c(0, 0, 0), `05:45` = c(0, 0, 0), `06:00` = c(0, 
0, 0), `06:15` = c(0, 0, 0), `06:30` = c(0, 0, 0), `06:45` = c(0, 
0, 0), `07:00` = c(2, 0, 0), `07:15` = c(2, 0, 0), `07:30` = c(2, 
0, 0), `07:45` = c(2, 0, 0), `08:00` = c(2, 0, 2), `08:15` = c(2, 
0, 2), `08:30` = c(2, 0, 2), `08:45` = c(2, 0, 2), `09:00` = c(2, 
2, 2), `09:15` = c(2, 2, 2), `09:30` = c(2, 2, 2), `09:45` = c(2, 
2, 2), `10:00` = c(2, 2, 2), `10:15` = c(2, 2, 2), `10:30` = c(2, 
2, 2), `10:45` = c(2, 2, 2), `11:00` = c(2, 2, 2), `11:15` = c(2, 
2, 2), `11:30` = c(2, 2, 2), `11:45` = c(2, 2, 2), `12:00` = c(2, 
2, 0), `12:15` = c(2, 2, 0), `12:30` = c(2, 2, 2), `12:45` = c(2, 
2, 2), `13:00` = c(2, 2, 2), `13:15` = c(2, 2, 2), `13:30` = c(2, 
2, 2), `13:45` = c(2, 2, 2), `14:00` = c(2, 2, 2), `14:15` = c(2, 
2, 2), `14:30` = c(2, 2, 2), `14:45` = c(2, 2, 2), `15:00` = c(2, 
2, 2), `15:15` = c(2, 2, 2), `15:30` = c(2, 2, 2), `15:45` = c(2, 
2, 2), `16:00` = c(2, 2, 2), `16:15` = c(2, 2, 2), `16:30` = c(2, 
2, 2), `16:45` = c(2, 2, 2), `17:00` = c(2, 2, 2), `17:15` = c(0, 
2, 2), `17:30` = c(0, 2, 0), `17:45` = c(0, 2, 0), `18:00` = c(0, 
0, 0), `18:15` = c(0, 0, 0), `18:30` = c(0, 0, 0), `18:45` = c(0, 
0, 0), `19:00` = c(0, 0, 0), `19:15` = c(0, 0, 0), `19:30` = c(0, 
0, 0), `19:45` = c(0, 0, 0), `20:00` = c(0, 0, 0), `20:15` = c(0, 
0, 0), `20:30` = c(0, 0, 0), `20:45` = c(0, 0, 0), `21:00` = c(0, 
0, 0), `21:15` = c(0, 0, 0), `21:30` = c(0, 0, 0), `21:45` = c(0, 
0, 0), `22:00` = c(0, 0, 0), `22:15` = c(0, 0, 0), `22:30` = c(0, 
0, 0), `22:45` = c(0, 0, 0), `23:00` = c(0, 0, 0), `23:15` = c(0, 
0, 0), `23:30` = c(0, 0, 0), `23:45` = c(0, 0, 0), `00:00` = c(0, 
0, 0), `00:15` = c(0, 0, 0), `00:30` = c(0, 0, 0), `00:45` = c(0, 
0, 0), `01:00` = c(0, 0, 0), `01:15` = c(0, 0, 0), `01:30` = c(0, 
0, 0), `01:45` = c(0, 0, 0), `02:00` = c(0, 0, 0), `02:15` = c(0, 
0, 0), `02:30` = c(0, 0, 0), `02:45` = c(0, 0, 0), `03:00` = c(0, 
0, 0), `03:15` = c(0, 0, 0), `03:30` = c(0, 0, 0), `03:45` = c(0, 
0, 0), `04:00` = c(0, 0, 0), `04:15` = c(0, 0, 0), `04:30` = c(0, 
0, 0), `04:45` = c(0, 0, 0), `05:00` = c(0, 0, 0), `05:15` = c(0, 
0, 0), `05:30` = c(0, 0, 0), `05:45` = c(0, 0, 0), `06:00` = c(0, 
0, 0), `06:15` = c(0, 0, 0), `06:30` = c(0, 0, 0), `06:45` = c(0, 
0, 0), `07:00` = c(0, 0, 0), `07:15` = c(0, 0, 0), `07:30` = c(0, 
0, 0), `07:45` = c(0, 0, 0), `08:00` = c(0, 0, 2), `08:15` = c(0, 
0, 2), `08:30` = c(0, 0, 2), `08:45` = c(0, 0, 2), `09:00` = c(0, 
0, 2), `09:15` = c(0, 0, 2), `09:30` = c(0, 2, 2), `09:45` = c(0, 
2, 2), `10:00` = c(0, 2, 2), `10:15` = c(0, 2, 2), `10:30` = c(0, 
2, 2), `10:45` = c(0, 2, 2), `11:00` = c(0, 2, 2), `11:15` = c(0, 
2, 2), `11:30` = c(0, 2, 2), `11:45` = c(0, 2, 2), `12:00` = c(0, 
2, 2), `12:15` = c(0, 2, 2), `12:30` = c(0, 2, 2), `12:45` = c(0, 
2, 2), `13:00` = c(0, 2, 2), `13:15` = c(0, 2, 0), `13:30` = c(0, 
2, 0), `13:45` = c(0, 2, 2), `14:00` = c(0, 2, 2), `14:15` = c(0, 
2, 2), `14:30` = c(0, 2, 2), `14:45` = c(0, 2, 2), `15:00` = c(0, 
2, 2), `15:15` = c(0, 2, 2), `15:30` = c(0, 2, 2), `15:45` = c(0, 
2, 2), `16:00` = c(0, 2, 2), `16:15` = c(0, 2, 2), `16:30` = c(0, 
2, 2), `16:45` = c(0, 2, 2), `17:00` = c(0, 2, 2), `17:15` = c(0, 
2, 0), `17:30` = c(0, 2, 0), `17:45` = c(0, 2, 0), `18:00` = c(0, 
0, 0), `18:15` = c(0, 0, 0), `18:30` = c(0, 0, 0), `18:45` = c(0, 
0, 0), `19:00` = c(0, 0, 0), `19:15` = c(0, 0, 0), `19:30` = c(0, 
0, 0), `19:45` = c(0, 0, 0), `20:00` = c(0, 0, 0), `20:15` = c(0, 
0, 0), `20:30` = c(0, 0, 0), `20:45` = c(0, 0, 0), `21:00` = c(0, 
0, 0), `21:15` = c(0, 0, 0), `21:30` = c(0, 0, 0), `21:45` = c(0, 
0, 0), `22:00` = c(0, 0, 0), `22:15` = c(0, 0, 0), `22:30` = c(0, 
0, 0), `22:45` = c(0, 0, 0), `23:00` = c(0, 0, 0), `23:15` = c(0, 
0, 0), `23:30` = c(0, 0, 0), `23:45` = c(0, 0, 0), `00:00` = c(0, 
0, 0), `00:15` = c(0, 0, 0), `00:30` = c(0, 0, 0), `00:45` = c(0, 
0, 0), `01:00` = c(0, 0, 0), `01:15` = c(0, 0, 0), `01:30` = c(0, 
0, 0), `01:45` = c(0, 0, 0), `02:00` = c(0, 0, 0), `02:15` = c(0, 
0, 0), `02:30` = c(0, 0, 0), `02:45` = c(0, 0, 0), `03:00` = c(0, 
0, 0), `03:15` = c(0, 0, 0), `03:30` = c(0, 0, 0), `03:45` = c(0, 
0, 0), `04:00` = c(0, 0, 0), `04:15` = c(0, 0, 0), `04:30` = c(0, 
0, 0), `04:45` = c(0, 0, 0), `05:00` = c(0, 0, 0), `05:15` = c(0, 
0, 0), `05:30` = c(0, 0, 0), `05:45` = c(0, 0, 0), `06:00` = c(0, 
0, 0), `06:15` = c(0, 0, 0), `06:30` = c(0, 0, 0), `06:45` = c(0, 
0, 0), `07:00` = c(0, 0, 0), `07:15` = c(0, 0, 0), `07:30` = c(0, 
0, 0), `07:45` = c(0, 0, 0), `08:00` = c(0, 0, 2), `08:15` = c(0, 
0, 2), `08:30` = c(0, 0, 2), `08:45` = c(0, 0, 2), `09:00` = c(0, 
2, 2), `09:15` = c(0, 2, 2), `09:30` = c(0, 2, 2), `09:45` = c(0, 
2, 2), `10:00` = c(0, 2, 2), `10:15` = c(0, 2, 2), `10:30` = c(0, 
2, 2), `10:45` = c(0, 2, 2), `11:00` = c(0, 2, 2), `11:15` = c(0, 
2, 2), `11:30` = c(0, 2, 2), `11:45` = c(0, 2, 2), `12:00` = c(0, 
2, 2), `12:15` = c(0, 2, 2), `12:30` = c(0, 2, 2), `12:45` = c(0, 
2, 2), `13:00` = c(0, 2, 0), `13:15` = c(0, 2, 2), `13:30` = c(0, 
2, 2), `13:45` = c(0, 2, 2), `14:00` = c(0, 2, 2), `14:15` = c(0, 
2, 2), `14:30` = c(0, 2, 2), `14:45` = c(0, 2, 2), `15:00` = c(0, 
2, 2), `15:15` = c(0, 2, 2), `15:30` = c(0, 2, 2), `15:45` = c(0, 
2, 2), `16:00` = c(0, 2, 2), `16:15` = c(0, 2, 2), `16:30` = c(0, 
2, 2), `16:45` = c(0, 2, 2), `17:00` = c(0, 2, 2), `17:15` = c(0, 
2, 2), `17:30` = c(0, 2, 2), `17:45` = c(0, 2, 2), `18:00` = c(0, 
0, 2), `18:15` = c(0, 0, 2), `18:30` = c(0, 0, 0), `18:45` = c(0, 
0, 0), `19:00` = c(0, 0, 0), `19:15` = c(0, 0, 0), `19:30` = c(0, 
0, 0), `19:45` = c(0, 0, 0), `20:00` = c(0, 0, 0), `20:15` = c(0, 
0, 0), `20:30` = c(0, 0, 0), `20:45` = c(0, 0, 0), `21:00` = c(0, 
0, 0), `21:15` = c(0, 0, 0), `21:30` = c(0, 0, 0), `21:45` = c(0, 
0, 0), `22:00` = c(0, 0, 0), `22:15` = c(0, 0, 0), `22:30` = c(0, 
0, 0), `22:45` = c(0, 0, 0), `23:00` = c(0, 0, 0), `23:15` = c(0, 
0, 0), `23:30` = c(0, 0, 0), `23:45` = c(0, 0, 0), `00:00` = c(0, 
0, 0), `00:15` = c(0, 0, 0), `00:30` = c(0, 0, 0), `00:45` = c(0, 
0, 0), `01:00` = c(0, 0, 0), `01:15` = c(0, 0, 0), `01:30` = c(0, 
0, 0), `01:45` = c(0, 0, 0), `02:00` = c(0, 0, 0), `02:15` = c(0, 
0, 0), `02:30` = c(0, 0, 0), `02:45` = c(0, 0, 0), `03:00` = c(0, 
0, 0), `03:15` = c(0, 0, 0), `03:30` = c(0, 0, 0), `03:45` = c(0, 
0, 0), `04:00` = c(0, 0, 0), `04:15` = c(0, 0, 0), `04:30` = c(0, 
0, 0), `04:45` = c(0, 0, 0), `05:00` = c(0, 0, 0), `05:15` = c(0, 
0, 0), `05:30` = c(0, 0, 0), `05:45` = c(0, 0, 0), `06:00` = c(0, 
0, 0), `06:15` = c(0, 0, 0), `06:30` = c(0, 0, 0), `06:45` = c(0, 
0, 0), `07:00` = c(0, 0, 0), `07:15` = c(0, 0, 0), `07:30` = c(0, 
0, 0), `07:45` = c(0, 0, 0), `08:00` = c(0, 0, 2), `08:15` = c(0, 
0, 2), `08:30` = c(0, 0, 2), `08:45` = c(0, 0, 2), `09:00` = c(0, 
2, 2), `09:15` = c(0, 2, 2), `09:30` = c(0, 2, 2), `09:45` = c(0, 
2, 2), `10:00` = c(0, 2, 2), `10:15` = c(0, 2, 2), `10:30` = c(0, 
2, 2), `10:45` = c(0, 2, 2), `11:00` = c(0, 2, 2), `11:15` = c(0, 
2, 2), `11:30` = c(0, 2, 2), `11:45` = c(0, 2, 2), `12:00` = c(0, 
2, 2), `12:15` = c(0, 2, 2), `12:30` = c(0, 2, 2), `12:45` = c(0, 
2, 2), `13:00` = c(0, 2, 2), `13:15` = c(0, 2, 2), `13:30` = c(0, 
2, 2), `13:45` = c(0, 2, 2), `14:00` = c(0, 2, 2), `14:15` = c(0, 
2, 0), `14:30` = c(0, 2, 2), `14:45` = c(0, 2, 2), `15:00` = c(0, 
2, 2), `15:15` = c(0, 2, 2), `15:30` = c(0, 2, 2), `15:45` = c(0, 
2, 2), `16:00` = c(0, 2, 2), `16:15` = c(0, 2, 2), `16:30` = c(0, 
2, 2), `16:45` = c(0, 2, 2), `17:00` = c(0, 2, 2), `17:15` = c(0, 
2, 0), `17:30` = c(0, 2, 0), `17:45` = c(0, 2, 0), `18:00` = c(0, 
0, 0), `18:15` = c(0, 0, 0), `18:30` = c(0, 0, 0), `18:45` = c(0, 
0, 0), `19:00` = c(0, 0, 0), `19:15` = c(0, 0, 0), `19:30` = c(0, 
0, 0), `19:45` = c(0, 0, 0), `20:00` = c(0, 0, 0), `20:15` = c(0, 
0, 0), `20:30` = c(0, 0, 0), `20:45` = c(0, 0, 0), `21:00` = c(0, 
0, 0), `21:15` = c(0, 0, 0), `21:30` = c(0, 0, 0), `21:45` = c(0, 
0, 0), `22:00` = c(0, 0, 0), `22:15` = c(0, 0, 0), `22:30` = c(0, 
0, 0), `22:45` = c(0, 0, 0), `23:00` = c(0, 0, 0), `23:15` = c(0, 
0, 0), `23:30` = c(0, 0, 0), `23:45` = c(0, 0, 0), `00:00` = c(0, 
0, 0), `00:15` = c(0, 0, 0), `00:30` = c(0, 0, 0), `00:45` = c(0, 
0, 0), `01:00` = c(0, 0, 0), `01:15` = c(0, 0, 0), `01:30` = c(0, 
0, 0), `01:45` = c(0, 0, 0), `02:00` = c(0, 0, 0), `02:15` = c(0, 
0, 0), `02:30` = c(0, 0, 0), `02:45` = c(0, 0, 0), `03:00` = c(0, 
0, 0), `03:15` = c(0, 0, 0), `03:30` = c(0, 0, 0), `03:45` = c(0, 
0, 0), `04:00` = c(0, 0, 0), `04:15` = c(0, 0, 0), `04:30` = c(0, 
0, 0), `04:45` = c(0, 0, 0), `05:00` = c(0, 0, 0), `05:15` = c(0, 
0, 0), `05:30` = c(0, 0, 0), `05:45` = c(0, 0, 0), `06:00` = c(0, 
0, 0), `06:15` = c(0, 0, 0), `06:30` = c(0, 0, 0), `06:45` = c(0, 
0, 0), `07:00` = c(0, 0, 0), `07:15` = c(0, 0, 0), `07:30` = c(0, 
0, 0), `07:45` = c(0, 0, 0), `08:00` = c(0, 0, 0), `08:15` = c(0, 
0, 0), `08:30` = c(0, 0, 0), `08:45` = c(0, 0, 0), `09:00` = c(0, 
0, 0), `09:15` = c(0, 0, 0), `09:30` = c(0, 0, 0), `09:45` = c(0, 
0, 0), `10:00` = c(0, 0, 0), `10:15` = c(0, 0, 0), `10:30` = c(0, 
0, 0), `10:45` = c(0, 0, 0), `11:00` = c(0, 0, 0), `11:15` = c(0, 
0, 0), `11:30` = c(0, 0, 0), `11:45` = c(0, 0, 0), `12:00` = c(0, 
0, 0), `12:15` = c(0, 0, 0), `12:30` = c(0, 0, 0), `12:45` = c(0, 
0, 0), `13:00` = c(0, 0, 0), `13:15` = c(0, 0, 0), `13:30` = c(0, 
0, 0), `13:45` = c(0, 0, 0), `14:00` = c(0, 0, 0), `14:15` = c(0, 
0, 0), `14:30` = c(0, 0, 0), `14:45` = c(0, 0, 0), `15:00` = c(0, 
0, 0), `15:15` = c(0, 0, 0), `15:30` = c(0, 0, 0), `15:45` = c(0, 
0, 0), `16:00` = c(0, 0, 0), `16:15` = c(0, 0, 0), `16:30` = c(0, 
0, 0), `16:45` = c(0, 0, 0), `17:00` = c(0, 0, 0), `17:15` = c(0, 
0, 0), `17:30` = c(0, 0, 0), `17:45` = c(0, 0, 0), `18:00` = c(0, 
0, 0), `18:15` = c(0, 0, 0), `18:30` = c(0, 0, 0), `18:45` = c(0, 
0, 0), `19:00` = c(0, 0, 0), `19:15` = c(0, 0, 0), `19:30` = c(0, 
0, 0), `19:45` = c(0, 0, 0), `20:00` = c(0, 0, 0), `20:15` = c(0, 
0, 0), `20:30` = c(0, 0, 0), `20:45` = c(0, 0, 0), `21:00` = c(0, 
0, 0), `21:15` = c(0, 0, 0), `21:30` = c(0, 0, 0), `21:45` = c(0, 
0, 0), `22:00` = c(0, 0, 0), `22:15` = c(0, 0, 0), `22:30` = c(0, 
0, 0), `22:45` = c(0, 0, 0), `23:00` = c(0, 0, 0), `23:15` = c(0, 
0, 0), `23:30` = c(0, 0, 0), `23:45` = c(0, 0, 0), `00:00` = c(0, 
0, 0), `00:15` = c(0, 0, 0), `00:30` = c(0, 0, 0), `00:45` = c(0, 
0, 0), `01:00` = c(0, 0, 0), `01:15` = c(0, 0, 0), `01:30` = c(0, 
0, 0), `01:45` = c(0, 0, 0), `02:00` = c(0, 0, 0), `02:15` = c(0, 
0, 0), `02:30` = c(0, 0, 0), `02:45` = c(0, 0, 0), `03:00` = c(0, 
0, 0), `03:15` = c(0, 0, 0), `03:30` = c(0, 0, 0), `03:45` = c(0, 
0, 0), `04:00` = c(0, 0, 0), `04:15` = c(0, 0, 0), `04:30` = c(0, 
0, 0), `04:45` = c(0, 0, 0), `05:00` = c(0, 0, 0), `05:15` = c(0, 
0, 0), `05:30` = c(0, 0, 0), `05:45` = c(0, 0, 0), `06:00` = c(0, 
0, 0), `06:15` = c(0, 0, 0), `06:30` = c(0, 0, 0), `06:45` = c(0, 
0, 0), `07:00` = c(0, 0, 0), `07:15` = c(0, 0, 0), `07:30` = c(0, 
0, 0), `07:45` = c(0, 0, 0), `08:00` = c(0, 0, 0), `08:15` = c(0, 
0, 0), `08:30` = c(0, 0, 0), `08:45` = c(0, 0, 0), `09:00` = c(0, 
0, 0), `09:15` = c(0, 0, 0), `09:30` = c(0, 0, 0), `09:45` = c(0, 
0, 0), `10:00` = c(0, 0, 0), `10:15` = c(0, 0, 0), `10:30` = c(0, 
0, 0), `10:45` = c(0, 0, 0), `11:00` = c(0, 0, 0), `11:15` = c(0, 
0, 0), `11:30` = c(0, 0, 0), `11:45` = c(0, 0, 0), `12:00` = c(0, 
0, 0), `12:15` = c(0, 0, 0), `12:30` = c(0, 0, 0), `12:45` = c(0, 
0, 0), `13:00` = c(0, 0, 0), `13:15` = c(0, 0, 0), `13:30` = c(0, 
0, 0), `13:45` = c(0, 0, 0), `14:00` = c(0, 0, 0), `14:15` = c(0, 
0, 0), `14:30` = c(0, 0, 0), `14:45` = c(0, 0, 0), `15:00` = c(0, 
0, 0), `15:15` = c(0, 0, 0), `15:30` = c(0, 0, 0), `15:45` = c(0, 
0, 0), `16:00` = c(0, 0, 0), `16:15` = c(0, 0, 0), `16:30` = c(0, 
0, 0), `16:45` = c(0, 0, 0), `17:00` = c(0, 0, 0), `17:15` = c(0, 
0, 0), `17:30` = c(0, 0, 0), `17:45` = c(0, 0, 0), `18:00` = c(0, 
0, 0), `18:15` = c(0, 0, 0), `18:30` = c(0, 0, 0), `18:45` = c(0, 
0, 0), `19:00` = c(0, 0, 0), `19:15` = c(0, 0, 0), `19:30` = c(0, 
0, 0), `19:45` = c(0, 0, 0), `20:00` = c(0, 0, 0), `20:15` = c(0, 
0, 0), `20:30` = c(0, 0, 0), `20:45` = c(0, 0, 0), `21:00` = c(0, 
0, 0), `21:15` = c(0, 0, 0), `21:30` = c(0, 0, 0), `21:45` = c(0, 
0, 0), `22:00` = c(0, 0, 0), `22:15` = c(0, 0, 0), `22:30` = c(0, 
0, 0), `22:45` = c(0, 0, 0), `23:00` = c(0, 0, 0), `23:15` = c(0, 
0, 0), `23:30` = c(0, 0, 0), `23:45` = c(0, 0, 0), `00:00` = c(0, 
0, 0), `00:15` = c(0, 0, 0), `00:30` = c(0, 0, 0), `00:45` = c(0, 
0, 0), `01:00` = c(0, 0, 0), `01:15` = c(0, 0, 0), `01:30` = c(0, 
0, 0), `01:45` = c(0, 0, 0), `02:00` = c(0, 0, 0), `02:15` = c(0, 
0, 0), `02:30` = c(0, 0, 0), `02:45` = c(0, 0, 0), `03:00` = c(0, 
0, 0), `03:15` = c(0, 0, 0), `03:30` = c(0, 0, 0), `03:45` = c(0, 
0, 0)), row.names = c(NA, 3L), class = "data.frame")

数据框中的每一行代表一个时间步骤(开始时间04:00,结束时间03:45,每个时间步长为14分钟),并且有七天从星期一开始。

我想使用geom_tile(或geom_raster或geom_rect)创建一种热图类型的图形。

我想修改x轴(添加间隔)和y轴(替换为识别号码)。

不幸的是,我正在使用的数据似乎不起作用。我尝试使用所有三个geoms创建一个图形,但并没有取得很大的成功。

这是我唯一成功创建的图形。

Matrix image

如何更改此图以表示每日配置文件?

enter image description here

谢谢


1
试图理解您的数据。列标签是时间(明显),只有在时间重复时才区分日期(例如,如果我说“`06:30`列”,您和R都无法知道我指的是哪一天的哪一列)。行表示什么?您显示了3行,它们代表什么?所有值都是0或2,它们代表什么? - Gregor Thomas
@Gregor 谢谢你的时间。0 表示未工作,2 表示已工作。 - Rfanatic
不同的行代表什么意思?有三个不同的工人吗?当我看到 08:30 = c(0, 0, 2),你想让它看起来与 14:30 = c(0, 2, 2) 不同吗?如果是这样,你想要第一行、第二行和第三行的图形不同吗?还是只有一个图形,但颜色基于行的平均值?还是其他什么? - Gregor Thomas
@Gregor,列是时间步长,行是序列号。一行将显示一个人的每周工作计划。正如您在黄蓝色图中所看到的,有60个案例。谢谢。 - Rfanatic
@Gregor 在特定时间步骤中的 c(0, 0, 2) 表示周一没有工作,周二没有工作,而周三工作了。谢谢。 - Rfanatic
1个回答

1
这里提供了一种方法来进行矩阵到数据框的转换,并将时间字符字符串转换为“从凌晨4点开始以小时为单位的小数时间”。
TiNiSWeek %>%
  rowid_to_column() %>%
  as_tibble() %>%
  gather(time, val, -rowid) %>% 
  mutate(day = rep(weekdays, each = 96*3) %>% fct_relevel(weekdays),
         time_hm = hm(str_sub(time, end = 5)),
         time_dec_from_start = hour(time_hm) + minute(time_hm)/60 - 4) %>%       
  ggplot(aes(time_dec_from_start, rowid, fill = val)) +
  geom_tile() +
  facet_wrap(~day)

enter image description here


1
在这里,将time_dec_from_start更改为包括模数24可能是有意义的,以将负值移动到范围[20-23.75]中,因为它们发生在其他值之后,而不是之前。但我会把这留给读者来练习... - Jon Spring

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接