使用 ggplot2 绘制 POSIXct 时间戳系列
Plotting POSIXct timestamp series with 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")
但是,当我尝试绘制此图时,x 轴显示奇怪的数字而不是格式正确的日期。
g1 <- ggplot(lt1, aes(datetime, response.time))
g1 <- g1 + geom_point()
g1 <- g1 + theme(axis.text.x=element_text(angle=90, hjust=1))
g1
您需要使用库 scales
和函数 scale_x_datetime
:
在 x 轴上指定您想要的内容
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"))
有关详细信息,请参阅 ?scale_x_datetime
、?date_format
和 ?strptime
我想绘制负载测试的结果。每行包含一个以秒为单位的时间戳和请求的响应时间。例如:
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")
但是,当我尝试绘制此图时,x 轴显示奇怪的数字而不是格式正确的日期。
g1 <- ggplot(lt1, aes(datetime, response.time))
g1 <- g1 + geom_point()
g1 <- g1 + theme(axis.text.x=element_text(angle=90, hjust=1))
g1
您需要使用库 scales
和函数 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"))
有关详细信息,请参阅 ?scale_x_datetime
、?date_format
和 ?strptime