按月填写ggplot2日历热图

时间:2014-10-06 10:08:53

标签: r ggplot2

我正在尝试在ggplot2中绘制日历热图,但我希望按年份对其进行着色。热图看起来像这样:enter image description here,我得到的代码是:

ggplot(cal, aes(x=cdow,y=-week))+
geom_tile(aes(fill=counts,colour="grey50"))+
geom_text(aes(label=day),size=3,colour="grey20")+
facet_wrap(~cmonth, ncol=3)+
scale_fill_gradient(low = "moccasin", high = "dodgerblue", na.value="white")+
scale_color_manual(guide=F,values="grey50")+
scale_x_discrete(labels=c("S","M","T","W","Th","F","S"))+
theme(axis.text.y=element_blank(),axis.ticks.y=element_blank())+
theme(panel.grid=element_blank())+
labs(x="",y="")+
coord_fixed()

我是从this stackoverflow question得到的。有什么方法可以让我每个月都给出不同颜色的颜色吗?例如Jan-Mar具有相同的颜色,而Apr-Jun具有不同的颜色。

任何指针都会非常有用!!感谢。

1 个答案:

答案 0 :(得分:0)

未经测试,因为我们没有任何可重现的数据,但以下情况应该这样做:

ggplot(cal, aes(x=cdow,y=-week))+
  geom_tile(aes(fill=cmonth,colour="grey50"))+
  geom_text(aes(label=day),size=3,colour="grey20")+
  facet_wrap(~cmonth, ncol=3)+
  scale_fill_discrete()+
  scale_color_manual(guide=F,values="grey50")+
  scale_x_discrete(labels=c("S","M","T","W","Th","F","S"))+
  theme(axis.text.y=element_blank(),axis.ticks.y=element_blank())+
  theme(panel.grid=element_blank())+
  labs(x="",y="")+
  coord_fixed()

我刚刚将fill=counts更改为fill=cmonth中的geom_tile(),将scale_fill_gradient更改为scale_fill_discrete