diff --git a/R/ggheatmap.R b/R/ggheatmap.R index b480c20..6d22a32 100644 --- a/R/ggheatmap.R +++ b/R/ggheatmap.R @@ -1,10 +1,10 @@ -ggheatmap<-function(df, x=NULL, y=NULL, value=NULL, grouping="mean", exclude_group=NULL, scale="none"){ +ggheatmap<-function(df, x=NULL, y=NULL, value=NULL, grouping="mean", exclude_group=NULL, scale="none",color="#FFFFFF00"){ if (is.null(x)){x=colnames(df)[1]} if (is.null(y)){y=colnames(df)[2]} if (is.null(value)){value=colnames(df)[3]} df<-rename(df, "VarX"=all_of(x), "VarY"=all_of(y), "Value"=all_of(value)) - + if (is.null(exclude_group)){ df<-df %>% group_by(VarX,VarY) }else{ @@ -17,7 +17,7 @@ ggheatmap<-function(df, x=NULL, y=NULL, value=NULL, grouping="mean", exclude_gro df<-df %>% summarise(Value=median(Value)) %>% ungroup } order<-clustsort(df %>% spread(VarY,Value) %>% select(!all_of(exclude_group)) %>% as.data.frame) - + if (scale != "none"){ if (scale == "rows"){ cols<-unique(df$VarY) @@ -32,12 +32,16 @@ ggheatmap<-function(df, x=NULL, y=NULL, value=NULL, grouping="mean", exclude_gro df<-gather(sca.df, VarX, Value, all_of(cols)) } } - + df$VarX<-factor(df$VarX, levels=order$x) df$VarY<-factor(df$VarY, levels=order$y) - + df %>% ggplot(aes(VarX, VarY, fill=Value))+ labs(x=x, y=y)+ - theme_heatmap() + geom_tile(aes(fill=Value), color=color)+ + scale_fill_gradientn(colors=col2(200))+ + theme(axis.text.x = element_text(angle = 90, hjust = 1, vjust=0.5), + panel.background = element_blank(), + axis.ticks = element_blank()) } diff --git a/man/ggheatmap.Rd b/man/ggheatmap.Rd index 80ae147..7264618 100644 --- a/man/ggheatmap.Rd +++ b/man/ggheatmap.Rd @@ -2,7 +2,7 @@ \alias{ggheatmap} \title{ggheatmap} \usage{ -ggheatmap(df, x=NULL, y=NULL, value=NULL, grouping="mean", exclude_group=NULL, scale="none") +ggheatmap(df, x=NULL, y=NULL, value=NULL, grouping="mean", exclude_group=NULL, scale="none", color="#FFFFFF00") } \arguments{ \item{df}{A data frame in "long" format.} @@ -12,6 +12,7 @@ ggheatmap(df, x=NULL, y=NULL, value=NULL, grouping="mean", exclude_group=NULL, s \item{grouping}{The function that will be used to group if there is more than one observation for each X-Y combination. "mean" or "median" are posible, defaulting to "mean".} \item{exclude_group}{If you want to exclude columns from grouping, you can introduce a character vector here. Useful if you want to facet the plot.} \item{scale}{Escales (z-score) by "rows" or "cols" if diferent of "none" (default).} + \item{color}{The color of the lines of geom_tile (the border). By default, its transparent.} } \description{ Generates a heatmap using ggplot for a dataframe.