ggheatmap<-function(df, x=NULL, y=NULL, value=NULL){ if (is.null(x)){x=colnames(df)[1]} if (is.null(y)){y=colnames(df)[2]} if (is.null(value)){value=colnames(df)[3]} order<-clustsort(df %>% spread(y,value)) df %>% ggplot(aes_string(x, y, fill=value))+ scale_x_discrete(limits=order$x)+ scale_y_discrete(limits=order$y)+ labs(x=x, y=y)+ theme_heatmap() }