[英]R X-axis Date Labels using plot()
使用 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,但是我)在我目前的 R 技能水平上,我不確定我d 能夠解決問題,並且 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"))
都導致錯誤消息。
使用繪圖很難在沒有樣本數據的情況下重現結果。 這是我將使用的示例
dd<-data.frame(
saldt=seq(as.Date("1999-01-01"), as.Date("2014-01-10"), by="6 mon"),
salpr = cumsum(rnorm(31))
)
一個簡單的情節
with(dd, plot(saldt, salpr))
產生幾年標記
如果我想要更多的控制,我可以使用你提到的axis.Date
with(dd, plot(saldt, salpr, xaxt="n"))
axis.Date(1, at=seq(min(dd$saldt), max(dd$saldt), by="30 mon"), format="%m-%Y")
這使
請注意, xlim
只會放大繪圖的一部分。 它不直接連接到軸標簽,但軸標簽會調整以提供一個“漂亮”的范圍來覆蓋繪制的數據。 做只是
xlim=c(as.Date("1999-01-01"),as.Date("2014-01-01"))
是縮放繪圖的正確方法。 無需轉換為數字或 POSIXct。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.