【发布时间】:2017-11-08 16:27:32
【问题描述】:
有两个时间点(两个测量值),我想在 x 轴上绘制第一个时间点,在 y 轴上绘制第二个时间点,因此我可以轻松检查 45° 以上的数据点- 在第一次之后进行第二次测量的线(对于大多数情况,但不是所有情况都是如此)并评估从第一个时刻经过的时间。
因此,我有两列带有日期,我可以将它们转换为 date 或 date-time 对象。我现在无法估计,哪种格式可能更容易实现情节。
D = data.frame(time1 = c("2007-06-22","2007-05-22","2007-05-23"), time2 = c("2007-06-22","2007-05-24","2007-06-05"))
D$time1 <- strptime(D$time1, format = "%Y-%m-%d")
D$time2 <- strptime(D$time2, format = "%Y-%m-%d")
class(D$time1)
D$time1 <- as.Date(D$time1, format = "%Y-%m-%d")
class(D$time1)
我需要一些简单的东西:
plot(D$time1, D$time2)
但我还需要一个可修改的版本,它不会绘制日期,但允许休息(周、月、年),比如月。
非常感谢您的想法。
解决方案:两个版本原则上都有效。我选择了ggplot,因为在标签等方面更灵活。我提前进行了数据清理,所以在对缺失数据进行子集化后,我使用了:
library( ggplot2 )
ggplot( mydata, aes(x=t0, y=t1) ) + geom_point() +
scale_x_date(date_labels = "%b %y", date_breaks = "3 month") +
scale_y_date(date_labels = "%b %y", date_breaks = "3 month")
3 个月对于我 2 年的数据来说是一个很好的休息时间。这是我的解决方案:
【问题讨论】:
-
您可能会抑制默认轴,然后使用
axis.Date()使用基本图形在您想要的任何位置绘制自己的轴。你的草图正是你想要的吗?两个月和一年?这些标签应该准确地出现在哪里? -
这只是一个简单的例子,最后,我想要给定年份的所有月份...... :D 我有大约 2-3 年的数据我想说明,也许每月合适。问候
标签: r datetime plot strptime as.date