在R中,我想使用基础绘图系统绘制时间序列,并且我已经有了按时间排序的数据列表。我想弄清楚如何让x轴显示一周的天数("星期一","星期二"等),而不是显示整数值。
当我调用像
这样的东西时 plot(ts(my_values, frequency = 365, start = c(2000, 1)))
例如,我得到x轴从2000开始,最后一个缺口是2008。我尝试为start属性传递字符串,但我得到错误:
Error in start[2L] - 1 : non-numeric argument to binary operator
所以我猜我必须提供一个数值来开始。对于如何做到这一点有什么建议吗?
请在StackOverflow上查看此问题:将x轴整数值替换为自己的值您可能会这样做:
plot(ts(my_values, frequency = 365, start = c(2001, 1)), xaxt = "n")
axis(1, at=seq(2001,2008,1), labels = c("Mon", "Tues", "Wed", "Thurs", "Fri", "Sat", "Sun"))
我知道你的序列从2000年开始,但是一周只有7天:O
标记,这可能是你正在寻找的:
# creating data frame
set.seed(123)
df <- data.frame(date= seq.Date(as.Date('2015-06-01'), by='day',length.out = 10),value=sample(1:10,10,replace = TRUE))
df
> df
date value
1 2015-06-01 3
2 2015-06-02 8
3 2015-06-03 5
4 2015-06-04 9
5 2015-06-05 10
6 2015-06-06 1
7 2015-06-07 6
8 2015-06-08 9
9 2015-06-09 6
10 2015-06-10 5
将x轴标签绘制为"Monday, tuesday,…"在格式字符串中使用"%A",对于缩写标签"Mon, Tue,…",使用"%A",如下所示:
plot(value ~ date, df, xaxt = "n", type = "l")
axis(1, df$date, format(df$date, "%a"), cex.axis = .7)