R:按类别划分日期的可视位置

R:按类别划分日期的可视位置,r,R,我收集了以下数据集(实际数据集要大得多): 首先,我计算了实际时间戳,如下所示 dataset$timestamp <- with(dataset, ISOdatetime(substring(dataset$DATE, 1, 4),substring(dataset$DATE, 7, 7),substring(dataset$DATE, 9, 10),substring(dataset$TIME,1,regexpr(':', dataset$TIME)-1),substring(data

我收集了以下数据集(实际数据集要大得多):

首先,我计算了实际时间戳,如下所示

dataset$timestamp <- with(dataset, ISOdatetime(substring(dataset$DATE, 1, 4),substring(dataset$DATE, 7, 7),substring(dataset$DATE, 9, 10),substring(dataset$TIME,1,regexpr(':', dataset$TIME)-1),substring(dataset$TIME,regexpr(':', dataset$TIME)+1,length(dataset$TIME)),0))

dataset$timestamp我假设您不是在问如何将数据处理成适当的格式,而是在问如何生成图形。有几种可能性,例如使用
ggplot2

#generate some toy data
toyDf <- data.frame(minute = sample(1440, 100, TRUE),
                    day = sample(28,100,TRUE),
                    tag = sample(c("foo","bar","baz"),100,TRUE))

#plot
library(ggplot2)
# specify data, x, and y:
ggplot(toyDf, aes(day,minute)) +
# specify plot type and fill colour levels:  
  geom_raster(aes(fill = tag),hjust=0, vjust=0) +
# specify where to draw minor gridlines:
  scale_x_continuous(minor_breaks = seq(1, 28, 1)) + 
  scale_y_continuous(minor_breaks = seq(1, 1440, 1)) +
#set plot aspect ratio (because it will be very high):
  theme(aspect.ratio=30/5,
#tweak some visual elements (gridlines, background):
        panel.grid.minor = element_line(colour="black", size=0.05),
        panel.background = element_blank())
#生成一些玩具数据

toyDf这段代码给了我以下错误:if(is.弃权(数据)| |空(数据))返回(cbind(数据,PANEL=integer(0)):缺少需要TRUE/FALSE的值抱歉!在ggplot调用中,我忘记将我原来的
df
重命名为
toyDf
#generate some toy data
toyDf <- data.frame(minute = sample(1440, 100, TRUE),
                    day = sample(28,100,TRUE),
                    tag = sample(c("foo","bar","baz"),100,TRUE))

#plot
library(ggplot2)
# specify data, x, and y:
ggplot(toyDf, aes(day,minute)) +
# specify plot type and fill colour levels:  
  geom_raster(aes(fill = tag),hjust=0, vjust=0) +
# specify where to draw minor gridlines:
  scale_x_continuous(minor_breaks = seq(1, 28, 1)) + 
  scale_y_continuous(minor_breaks = seq(1, 1440, 1)) +
#set plot aspect ratio (because it will be very high):
  theme(aspect.ratio=30/5,
#tweak some visual elements (gridlines, background):
        panel.grid.minor = element_line(colour="black", size=0.05),
        panel.background = element_blank())