简体   繁体   中英

How to plot 24 hour on x-axis, separated by Month

I have a set of data that looks like this:

str(presence$Time)
Factor w/ 413 levels "00:00:00","00:10:00",..: 273 50 259 259 260 122 243 244 244 249 ...

this is an example from my data set

 presence<-  
    Month    Date Year Time     Number         
42  November    2 2019 16:54:00   1                
102 November    5 2019 03:57:00   1           
116 November    5 2019 16:31:00   1             
117 November    5 2019 16:31:00   2               
118 November    5 2019 16:32:00   1                
134 November    6 2019 07:20:00   2                 
144 November    6 2019 16:12:00   1               
169 November    7 2019 16:13:00   1          
170 November    7 2019 16:13:00   1             
171 November    7 2019 16:18:00   1                
172 November    7 2019 16:21:00   3               
173 November    7 2019 16:37:00   1               
181 November    7 2019 23:19:00   4               
189 November    8 2019 06:14:00   2              
191 November    8 2019 07:27:00   2                
201 November    8 2019 16:30:00   1                 
204 November    8 2019 18:55:00   1                 
206 November    8 2019 19:37:00   1                
218 November    9 2019 06:17:00   1                
235 November    9 2019 22:10:00   4            
245 November   10 2019 07:07:00   2             
255 November   10 2019 16:13:00   2             
256 November   10 2019 16:18:00   2             
257 November   10 2019 16:29:00   1            
258 November   10 2019 16:29:00   3              
264 November   10 2019 21:35:00   4           
667 November   27 2019 15:43:00   1              
668 November   27 2019 15:54:00   1            
693 November   28 2019 15:38:00   2           
694 November   28 2019 15:45:00   6              
695 November   28 2019 15:51:00   1          
696 November   28 2019 15:52:00   3         
697 November   28 2019 15:54:00   1       
698 November   28 2019 15:57:00   2          
701 November   28 2019 17:50:00   2          
714 November   29 2019 05:06:00   2         
718 November   29 2019 08:07:00   3         
726 November   29 2019 15:58:00   1         
727 November   29 2019 15:59:00   1        
752 November   30 2019 15:34:00   1      
753 November   30 2019 15:42:00   4     
754 November   30 2019 15:45:00   4         
779 December    1 2019 15:43:00   1       
781 December    1 2019 16:17:00   1      
783 December    1 2019 17:11:00   2          
798 December    2 2019 07:56:00   1      
800 December    2 2019 08:10:00   3          
801 December    2 2019 08:12:00   1         
809 December    2 2019 15:38:00   1          
810 December    2 2019 15:43:00   3         
827 December    3 2019 07:57:00   2       
839 December    3 2019 18:37:00   2      
861 December    4 2019 15:28:00   1       
862 December    4 2019 15:31:00.  1 
863 December    4 2019 15:32:00   1      
864 December    4 2019 15:37:00   2        
865 December    4 2019 15:39:00   2    
866 December    4 2019 15:43:00   3       
867 December    4 2019 15:47:00   2        
868 December    4 2019 15:53:00   1         
870 December    4 2019 16:06:00   1          
871 December    4 2019 16:09:00   1        
872 December    4 2019 16:15:00   2       
873 December    4 2019 16:55:00   4         
875 December    4 2019 17:47:00   2       
880 December    4 2019 21:17:00   1     
882 December    4 2019 22:33:00   1         
891 December    5 2019 06:57:00   1       
893 December    5 2019 07:06:00   1         
905 December    5 2019 18:52:00   1  
910 December    5 2019 22:38:00   1    
928 December    6 2019 15:32:00   1         
929 December    6 2019 15:38:00   1         
930 December    6 2019 15:44:00   2        
931 December    6 2019 15:48:00   1         
932 December    6 2019 15:52:00   1     
933 December    6 2019 15:53:00   1       
935 December    6 2019 16:06:00   4      
936 December    6 2019 16:08:00   1     
937 December    6 2019 16:10:00   1         
938 December    6 2019 16:12:00   1       
939 December    6 2019 16:13:00   1         
940 December    6 2019 16:17:00   1      
941 December    6 2019 16:38:00   1         
944 December    6 2019 18:21:00   2     
945 December    6 2019 18:23:00   1         
947 December    6 2019 19:32:00   1        
952 December    6 2019 23:18:00   2          
961 December    7 2019 07:39:00   1        
987 December    8 2019 08:10:00   2         

What i'm trying to do is show the number on the y-axis and then the time (24 hours) on the x-axis.

I looked around and found a type of code that I thought i could manipulate to use. The code is as follows:

ggplot(presence, aes(x=Time, y=Number, colour=Month)) + 
geom_path() + 
geom_point() + 
scale_x_datetime(breaks=date_breaks("5 hour")) + 
facet_grid(Month ~.) +
theme(legend.position="none")

However i then got an error that said

Error: Invalid input: time_trans works with objects of class POSIXct only

I then went on to investigate what this "posixct" meant and it said you have to change it into that when working with time and date data. So thats what i did, and went back to include that function in my code. However, that function changed my time series data to have todays date "26th July 2020" on it.

I am working with 5 different months here "Nov, Dec, Jan, Feb, March" so I just simply want 24 hours on the x-axis and not the date.

My attempt using the above code gave me this graph:

Messy plot produced

as you can see, on the axis it is plotting todays date. I am really confused on what I am doing wrong as I thought i followed the right steps based off of example codes of similar questions I found online.

I dont need the date at all really apart from the names of those 5 months set out in different boxes like the graph i produced. I just need to see how many times something was present during the different 24 hour time periods.

If I understand correctly, you want to aggregate by month and hours?

Eg, the count of observations per hour:

library(tidyverse)
library(lubridate)

  presence %>%
    mutate(hours = hour( hms(Time))) %>%
    count(Year, Month, hours) %>%
  ggplot(aes(x=hours, y=n, colour = Month)) + 
    geom_line() + 
    geom_point() +
    scale_x_continuous(breaks = seq(0, 24, 2))+
    facet_grid(~ Month) 

data

presence<-  read.table(text = "Month    Date Year Time     Number         
42  November    2 2019 16:54:00   1                
102 November    5 2019 03:57:00   1           
116 November    5 2019 16:31:00   1             
117 November    5 2019 16:31:00   2               
118 November    5 2019 16:32:00   1                
134 November    6 2019 07:20:00   2                 
144 November    6 2019 16:12:00   1               
169 November    7 2019 16:13:00   1          
170 November    7 2019 16:13:00   1             
171 November    7 2019 16:18:00   1                
172 November    7 2019 16:21:00   3               
173 November    7 2019 16:37:00   1               
181 November    7 2019 23:19:00   4               
189 November    8 2019 06:14:00   2              
191 November    8 2019 07:27:00   2                
201 November    8 2019 16:30:00   1                 
204 November    8 2019 18:55:00   1                 
206 November    8 2019 19:37:00   1                
218 November    9 2019 06:17:00   1                
235 November    9 2019 22:10:00   4            
245 November   10 2019 07:07:00   2             
255 November   10 2019 16:13:00   2             
256 November   10 2019 16:18:00   2             
257 November   10 2019 16:29:00   1            
258 November   10 2019 16:29:00   3              
264 November   10 2019 21:35:00   4           
667 November   27 2019 15:43:00   1              
668 November   27 2019 15:54:00   1            
693 November   28 2019 15:38:00   2           
694 November   28 2019 15:45:00   6              
695 November   28 2019 15:51:00   1          
696 November   28 2019 15:52:00   3         
697 November   28 2019 15:54:00   1       
698 November   28 2019 15:57:00   2          
701 November   28 2019 17:50:00   2          
714 November   29 2019 05:06:00   2         
718 November   29 2019 08:07:00   3         
726 November   29 2019 15:58:00   1         
727 November   29 2019 15:59:00   1        
752 November   30 2019 15:34:00   1      
753 November   30 2019 15:42:00   4     
754 November   30 2019 15:45:00   4         
779 December    1 2019 15:43:00   1       
781 December    1 2019 16:17:00   1      
783 December    1 2019 17:11:00   2          
798 December    2 2019 07:56:00   1      
800 December    2 2019 08:10:00   3          
801 December    2 2019 08:12:00   1         
809 December    2 2019 15:38:00   1          
810 December    2 2019 15:43:00   3         
827 December    3 2019 07:57:00   2       
839 December    3 2019 18:37:00   2      
861 December    4 2019 15:28:00   1       
862 December    4 2019 15:31:00.  1 
863 December    4 2019 15:32:00   1      
864 December    4 2019 15:37:00   2        
865 December    4 2019 15:39:00   2    
866 December    4 2019 15:43:00   3       
867 December    4 2019 15:47:00   2        
868 December    4 2019 15:53:00   1         
870 December    4 2019 16:06:00   1          
871 December    4 2019 16:09:00   1        
872 December    4 2019 16:15:00   2       
873 December    4 2019 16:55:00   4         
875 December    4 2019 17:47:00   2       
880 December    4 2019 21:17:00   1     
882 December    4 2019 22:33:00   1         
891 December    5 2019 06:57:00   1       
893 December    5 2019 07:06:00   1         
905 December    5 2019 18:52:00   1  
910 December    5 2019 22:38:00   1    
928 December    6 2019 15:32:00   1         
929 December    6 2019 15:38:00   1         
930 December    6 2019 15:44:00   2        
931 December    6 2019 15:48:00   1         
932 December    6 2019 15:52:00   1     
933 December    6 2019 15:53:00   1       
935 December    6 2019 16:06:00   4      
936 December    6 2019 16:08:00   1     
937 December    6 2019 16:10:00   1         
938 December    6 2019 16:12:00   1       
939 December    6 2019 16:13:00   1         
940 December    6 2019 16:17:00   1      
941 December    6 2019 16:38:00   1         
944 December    6 2019 18:21:00   2     
945 December    6 2019 18:23:00   1         
947 December    6 2019 19:32:00   1        
952 December    6 2019 23:18:00   2          
961 December    7 2019 07:39:00   1        
987 December    8 2019 08:10:00   2")

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM