1) 由于时间是日期,请确保使用 "Date"
类,而不是 "POSIXct"
或 "POSIXlt"
。详情请参见 R News 4/1 中的建议,并尝试在末尾注释中定义 Lines
的情况下执行此操作。此处不使用任何包。
dm <- read.table(text = Lines, header = TRUE)
dm$Date <- as.Date(dm$Date, "%m/%d/%Y")
plot(Visits ~ Date, dm, xaxt = "n", type = "l")
axis(1, dm$Date, format(dm$Date, "%b %d"), cex.axis = .7)
text = Lines
的使用只是为了使示例自包含,在实际情况中,它将被替换为类似于"myfile.dat"
的内容。(继续图片后面)
![screenshot](https://istack.dev59.com/TmVLb.webp)
2) 由于这是一个时间序列,您可能希望使用时间序列表示法来提供稍微简单一些的代码:
library(zoo)
z <- read.zoo(text = Lines, header = TRUE, format = "%m/%d/%Y")
plot(z, xaxt = "n")
axis(1, dm$Date, format(dm$Date, "%b %d"), cex.axis = .7)
根据您希望图形的外观,第一种情况下只需使用plot(Visits ~ Date, dm)
,第二种情况下只需使用plot(z)
,完全不需要使用axis
命令。也可以使用xyplot.zoo完成。
library(lattice)
xyplot(z)
或者autoplot.zoo:
library(ggplot2)
autoplot(z)
注意:
Lines <- "Date Visits
11/1/2010 696537
11/2/2010 718748
11/3/2010 799355
11/4/2010 805800
11/5/2010 701262
11/6/2010 531579
11/7/2010 690068
11/8/2010 756947
11/9/2010 718757
11/10/2010 701768
11/11/2010 820113
11/12/2010 645259"