Skip to content
Snippets Groups Projects
Commit 81eaa868 authored by Nathalie Vialaneix's avatar Nathalie Vialaneix
Browse files

added dendrogram plot (still to do for basics)

parent dd690d52
No related branches found
No related tags found
No related merge requests found
#' @import ggplot2
#' @importFrom reshape2 melt
#' @import dendextend
#' @importFrom RColorBrewer brewer.pal
plot_dendrogram <- function(x) {
dendro <- as.dendrogram(x$dendro)
nlev <- dendextend::nleaves(dendro)
labs <- labels(dendro)
dendro <- set_labels(dendro, rep("", length(labs)))
dendro %>% plot(leaflab = "none")
all_at <- unique(x$mse$clust)
nrange <- length(x$groups)
kmax <- max(all_at)
# rectangles
dendro %>% rect.dendrogram(k = kmax)
# horizontal lines ('range_at')
if (nrange > 1) {
all_h <- rev(x$dendro$height)
for (k in setdiff(all_at, max(all_at))) {
abline(h = (all_h[k] + all_h[k-1]) / 2, col = "darkred")
}
}
if ("selected" %in% names(x)) { # case 'selected'
values <- replicate(nrange, rep("grey", length(labs)), simplify = FALSE)
values <- mapply(function(a, b) {
names(a) <- labs; a[b] <- "darkred"; return(a)
}, values, x$selected)
bar_labs <- paste("#int.:", names(x$groups), "- sel?")
} else {
best <- tapply(x$mse$mse, x$mse$clust, which.min)
values <- mapply(function(a, b) return(a[, b]), x$importances, best)
values <- apply(values, 2, cut, breaks = 9, labels = FALSE)
values <- apply(values, 2, function(acol) brewer.pal(9, "YlOrRd")[acol])
bar_labs <- paste("#int.:", names(x$groups), "- imp.")
}
# bars
colored_bars(colors = values, dend = dendro, rowLabels = bar_labs)
return(invisible(NULL))
}
plot_importance <- function(x, shape.imp) {
lobj <- length(x$importances)
nrepeats <- nrow(x$mse) / lobj
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment