r - R 中的周/天值图

标签 r ggplot2

我有一个矩阵中的值列表,其中维度是逐天的(因此每个值代表一周中的特定一天)。星期按升序排列,日期由它们的名称定义(例如“星期五”)。

我想把它变成一个情节,我认为最好的方法是解开它,以便矩阵中的值按日历日按顺序列出,从指定的日期开始。

例子:

   Friday  Monday  Thursday  
w1   5       3       2
w2   1       7       1
w3   2       10      9

-> (周一): (3, 2, 5, 7, 1, 1, 10, 9, 2)

我如何在 R 中干净地做到这一点?如果您对如何更好地呈现数据有其他想法,请务必说出来。

最佳答案

我当然会解开您的数据并将它们以时间序列的形式放置。如果通常的图不足以满足您的目的,您可能想看看非常整洁的 calendarheat.R功能。以下是输出示例(每日酒店入住率)。看看周末效应、复活节效应、夏季和年末入住率下降的表现如何。 (我稍微编辑了函数,以便一周中的几天和几个月都是西类牙语。)

编辑 2011-11-18(回答代码请求):

我通过一个包装函数 MuestraCalendario 调用函数 calendarHeat,它只选择一个日期范围并为绘图添加一个标题:

MuestraCalendario <- function(obs,
                              main="",
                              desde="2000-01-01",
                              hasta="2004-12-31") {
  scratch <- window(obs,start=as.Date(desde),end=as.Date(hasta))
  calendarHeat(dates=index(scratch),
             values=as.vector(coredata(scratch)),
             varname=main,
             color="r2b")
}

“obs”是一个时间序列,其格式由zoo包定义。图中的情节是用
MuestraCalendario(obs,
                  main=NULL, 
                  desde="2005-01-01",
                  hasta="2009-12-31")

enter image description here

关于r - R 中的周/天值图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8163584/

相关文章:

r - 如何使用 geom_rain()

r - 在 ggplot2 中设置切面的绝对大小

r - 如何按中位数对分面箱线图进行正确排序?

r - 如何以 R dplyr 特定方式进行 group_by?

r - R中预测和预测函数的区别

r - 使用 lubridate 和 if 语句进行日期操作

R 正在绘制页面上的标签