我有一个包含温度数据和时间的框架。它看起来像这样:
area day hour temperature
d1 09_11_2013 01H0min0s 18,723
d1 09_11_2013 04H0min0s 17,558
d1 09_11_2013 07H0min0s 16,963
d1 09_11_2013 10H0min0s 22,753
d1 09_11_2013 13H0min0s 28,468
d1 10_11_2013 01H0min0s 21,318
d1 10_11_2013 04H0min0s 20,126
d1 10_11_2013 07H0min0s 19,151
d1 10_11_2013 10H0min0s 25,404
d1 10_11_2013 13H0min0s 29,890
i1 09_11_2013 01H0min0s 18,485
i1 09_11_2013 04H0min0s 17,368
i1 09_11_2013 07H0min0s 16,844
i1 09_11_2013 10H0min0s 24,171
i1 09_11_2013 13H0min0s 28,072
i1 10_11_2013 01H0min0s 21,246
i1 10_11_2013 04H0min0s 20,103
i1 10_11_2013 07H0min0s 19,151
i1 10_11_2013 10H0min0s 27,087
i1 10_11_2013 13H0min0s 28,518
在我的例子中,我每天每小时有两个区域和五个温度。 我使用这个函数(包ggplot2),但我也想绘制列时间。
ggplot(data, aes(x=day, y=temperature, colour=area, group=area)) + geom_point()
答案 0 :(得分:2)
我会创建一个结合日期和小时的时间元素。然后,您可以将其用作x轴,并使用scale_x_datetime
来更好地控制品牌和标签。
# Your data
dat <- read.table(header=T, text=
"area day hour temperature
d1 09_11_2013 01H0min0s 18,723
d1 09_11_2013 04H0min0s 17,558
d1 09_11_2013 07H0min0s 16,963
d1 09_11_2013 10H0min0s 22,753
d1 09_11_2013 13H0min0s 28,468
d1 10_11_2013 01H0min0s 21,318
d1 10_11_2013 04H0min0s 20,126
d1 10_11_2013 07H0min0s 19,151
d1 10_11_2013 10H0min0s 25,404
d1 10_11_2013 13H0min0s 29,890
i1 09_11_2013 01H0min0s 18,485
i1 09_11_2013 04H0min0s 17,368
i1 09_11_2013 07H0min0s 16,844
i1 09_11_2013 10H0min0s 24,171
i1 09_11_2013 13H0min0s 28,072
i1 10_11_2013 01H0min0s 21,246
i1 10_11_2013 04H0min0s 20,103
i1 10_11_2013 07H0min0s 19,151
i1 10_11_2013 10H0min0s 27,087
i1 10_11_2013 13H0min0s 28,518", stringsAsFactors=F, dec=",")
# Create a data-time vector
dat$time <- as.POSIXct(
paste(dat$day, gsub("[^0-9]+", ":", dat$hour)),
format="%d_%m_%Y %H:%M:%S")
# Plot
library(ggplot2)
ggplot(dat, aes(x=time, y=temperature, colour=area)) +
geom_point() +
theme(axis.text.x=element_text(size=10))