【发布时间】:2014-08-20 07:06:45
【问题描述】:
使用 R 中的 plot() 函数,我试图从数据帧格式的时间序列、横截面房地产销售数据集中生成 (SaleDate,SalePrice) = (saldt,sapPr) 形式的点的散点图。我的问题涉及 X 轴的标签。几乎任何系列的年度标签就足够了,例如1999,2000,...,2013 或 1999-01-01,...,2013-01-01。我现在得到的,一个标签,2000,在似乎是正确的位置是行不通的。
以下是我给plot()的电话:
plot(r12rgr0$saldt, r12rgr0$salpr/1000, type="p", pch=20, col="blue", cex.axis=.75,
xlim=c(as.Date("1999-01-01"),as.Date("2014-01-01")),
ylim=c(100,650),
main="Heritage Square Sales Prices $000s 1990-2014",xlab="Sale Date",ylab="$000s")
调用xlim 和ylim 来限定要绘制的数据的日期和价格范围;纸币价格绘制为 000 美元。 r12rgr0$saldt 真的是一个日期; str(r12rgr0$saldt) 返回:
Date[1:4190], format: "1999-10-26" "2013-07-06" "2003-08-25" NA NA "2000-05-24" xx
我在这里查看了几个关于类似问题的线程,发现解决方案可能在于关闭默认的 X 轴行为并使用 axis.date,但是 i) 以我目前的 R 技能水平,我不是确定我能够解决问题,并且 ii) 我想知道为什么绘图默认值会产生这些相当令人费解(至少对我而言)的结果?
Addl Observations:Y 轴标签正好 100、200、...、600。散点图的一般外观表明正在观察调用的日期范围,并且绘制点的相对位置是正确的.将xlim=...替换为xlim=c("1999-01-01","2014-01-01")
或
xlim=c(as.numeric(as.character("1999-01-01")),as.numeric(as.character("2014-01-01")))
或
xlim=c(as.POSIXct("1999-01-01", format="%Y-%m-%d"),as.POSIXct("2014-01-01", format="%Y-%m-%d"))
都会导致错误消息。
【问题讨论】: