我是R和ggplot2的新手,我想知道如何在给定时间使用R来绘制时间线绘图点?我的日期也有一些问题。 (我不确定我是否应该将这个问题作为两个问题发布,但是这里有)。按时间顺序排列的时间轴和格式日期
我有一个数据框,年和月的字符格式为YYYYMM,两个人的名字和发生的事件。
像这样:
> data
YearMonth Person1 Person2 Event
200606 Alice Bob event1
200606 Bob Alice event2
200608 Alice Bob event3
200701 Alice Bob event3
200703 Bob Alice event2
200605 Alice Bob event4
的日期最初是整数,这是我用as.character()
转换为字符。我试图将其转换为格式化的日期。 我用as.Date()
并尝试不同的方式来格式化日期。我最接近的是data$YearMonth <- as.Date(data$YearMonth,"%Y")
,但是这给了我所有2006xx和2007xx行的'2006-12-20'和'2007-12-20'。有没有办法做到这一点,以便我得到'YYYY-MM'或'YYYY/MM'之类的东西?
我也试过data$YearMonth <- strptime(data$YarMonth, "%Y%m")
,但那给了我<NA>
值。
但我的主要问题是时间表。
下面的图片是那种格式的我想:
,但与x轴显示的月份和年份(如2006-06,2006-07 ... 2007-06),和来自标有Event,Person1和Person2的轴线。
我已经看过'时间线'包?timeline
,但我所拥有的数据框没有关于时间段(开始和结束日期)的数据。我只是有一个时间点(YearMonth)。
我也试过使用ggplot2在Draw a chronological timeline with ggplot2的例子。然而,我没有y轴的位错,我想让事件行离开x轴。
注:这是一个非常简单的例子,因为我在2006年6月至2007年6月的时间段内有大约1000行。是否有可能用这么多数据创建时间表?
任何帮助,非常感谢。谢谢你的时间!
非常感谢@thelatemail。除了我所拥有的数据量有一些问题,它完美的工作! :) –
@thelatemail in'axis.Date''pos'将日期值定位在水平线上。有没有任何选项可以在ggplot2中做到这一点? 'scale_x_date'中没有位置选项。请帮助 – mockash
这太棒了,谢谢发布这个 –