Here is analysis:

  head(AirPassengers)
## [1] 112 118 132 129 121 135
  # 重构数据
  ap.data <- t(mapply(function(i){AirPassengers[(12*(i-1)+1):(i*12)]},1:12))
  # 标准化曲线
  ap.data.std <- t(apply(ap.data,1,function(x){(x-min(x))/(max(x)-min(x))}))
  # 使用hclust函数进行聚类
  hc <- hclust(dist(ap.data.std), method="ward.D2")
  plot(hc)
  rect.hclust(hc,k=2)

  # 设置类标签
  ap.data.std <- cbind(ap.data.std, cutree(hc,k=2))
  # 画出曲线图
  plot(1:12,1:12,col='white',ylim=c(0,1))
  for(i in 1:nrow(ap.data.std))
  {
      lines(1:12,ap.data.std[i,1:12],col=ap.data.std[i,13]+2)
  }