我有一系列数据,我想在日期x轴上绘图
ed <- data.frame(election.date = as.Date(mdy(c("November 6, 2012",
"November 4, 2008",
"November 2, 2004",
"November 7, 2000",
"November 5, 1996",
"November 3, 1992",
"November 8, 1988",
"November 6, 1984"))),
num = rnorm(8))
如果我只绘制了点,那么一切正常
ggplot(ed) + geom_point(aes(x = election.date, y = num))
但如果我为每个点添加垂直线,我会得到
ggplot(ed) +
geom_point(aes(x = election.date, y = num)) +
geom_vline(aes(x = election.date))
我们不是在适当的日期绘制8行,而是在Unix时间开始时得到一行。
针对类似问题的解决方案provided elsewhere on SO在此处改编为
ggplot(ed) +
geom_point(aes(x = election.date, y = num)) +
geom_vline(aes(x = as.numeric(election.date)))
但这会引发错误:
错误:输入无效:date_trans仅适用于类Date的对象
如何绘制多条垂直线,其中日期位于数据框中?
答案 0 :(得分:1)
不确定为什么你会得到你的错误,但是希望这能解决它(请注意geom_vline中的xintercept而不是x):
ggplot(ed) +
geom_point(aes(x = election.date, y = num)) +
geom_vline(aes(xintercept = as.numeric(election.date)))