2015-09-02 39 views
6

Tôi muốn vẽ kết quả của thử nghiệm tải. Mỗi hàng có một dấu thời gian tính bằng giây và thời gian phản hồi cho yêu cầu. Ví dụ:Vẽ chuỗi thời gian POSIXct với ggplot2

timestamp <- c(1441229131, 1441229132, 1441229133, 1441229134, 1441229135) 
response.time <- c(22, 48, 48, 59, 52) 
lt1 <- data.frame(timestamp, response.time) 
lt1$datetime <- as.POSIXct(lt1$timestamp, origin="1970-01-01", tz="GMT") 

Tuy nhiên, khi tôi cố gắng vẽ đồ thị này, trục x hiển thị số thay vì một ngày được định dạng đúng.

g1 <- ggplot(lt1, aes(datetime, response.time)) 
g1 <- g1 + geom_point() 
g1 <- g1 + theme(axis.text.x=element_text(angle=90, hjust=1)) 
g1 

enter image description here

Trả lời

9

Bạn cần phải xác định những gì bạn muốn trên trục x bằng cách sử dụng thư viện scales và chức năng scale_x_datetime:

library(scales) 
ggplot(lt1, aes(datetime, response.time)) + 
     geom_point() + 
     theme(axis.text.x = element_text(angle = 90, hjust = 1)) + 
     scale_x_datetime(labels = date_format("%H:%M:%S")) 

enter image description here

để biết thêm, xem ?scale_x_datetime, ?date_format?strptime

Các vấn đề liên quan