当数据框中只有 2 行时,ggplot2 中的日期格式存在问题:
> dt <- Sys.Date() - 0:1
> dt
[1] "2013-11-14" "2013-11-13"
> vals <- 0:1
> df <- data.frame(dt, vals)
> df
dt vals
1 2013-11-14 0
2 2013-11-13 1
> class(df[, 1])
[1] "Date"
> class(df[, 2])
[1] "integer"
> g <- ggplot(df, aes(x = dt, y = vals)) + geom_line()
> plot(g)
看看 x 轴日期标签是如何变得奇怪的。
然而这很好用:
> dt <- Sys.Date() - 0:9
> vals <- 0:9
> df <- data.frame(dt, vals)
> df
dt vals
1 2013-11-14 0
2 2013-11-13 1
3 2013-11-12 2
4 2013-11-11 3
5 2013-11-10 4
6 2013-11-09 5
7 2013-11-08 6
8 2013-11-07 7
9 2013-11-06 8
10 2013-11-05 9
> g <- ggplot(df, aes(x = dt, y = vals)) + geom_line()
> plot(g)
在糟糕的版本中,它看起来像是两次覆盖了时间。我想我可以(以某种方式)抑制时间分量,但是有没有办法避免完全修改 x 轴标签,并且仍然让它对小数据帧正常工作?