## ----include = FALSE---------------------------------------------------------- knitr::opts_chunk$set( collapse = TRUE, comment = "#>", fig.width = 5, fig.height = 5 ) ## ----setup, message = FALSE--------------------------------------------------- library(gghinton) library(ggplot2) ## ----heatmap-example---------------------------------------------------------- set.seed(7) nr <- 10 nc <- 18 W <- matrix(rnorm(nr*nc, sd = 0.4), nrow = nr, ncol = nc) rownames(W) <- paste0("neuron_", 1:nr) colnames(W) <- paste0("input_", 1:nc) # The standard heatmap approach df <- as.data.frame(as.table(W)) names(df) <- c("row", "col", "value") ggplot(df, aes(x = col, y = row, fill = value)) + geom_tile() + scale_fill_gradient2(low = "blue", mid = "white", high = "red", midpoint = 0) + coord_fixed() + theme_minimal() + theme(panel.grid = element_blank(), axis.text.x = element_text(angle = 45, vjust = 1, hjust=1)) + labs(title = "Weight matrix as a heatmap") ## ----hinton-example----------------------------------------------------------- df_h <- matrix_to_hinton(W, rowname_col = "row", colname_col = "col", value_col = "weight") ggplot(df_h, aes(x = col, y = row, weight = weight)) + geom_hinton() + scale_fill_hinton() + scale_x_continuous(breaks = seq_along(colnames(W)), labels = colnames(W)) + scale_y_continuous(breaks = seq_along(rownames(W)), labels = rev(rownames(W))) + coord_fixed() + theme_hinton() + theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust=1))+ labs(title = "Weight matrix as a Hinton diagram") ## ----correlation-example------------------------------------------------------ set.seed(3) # Simulate a correlation matrix S <- matrix(c( 1.00, 0.72, -0.35, 0.15, 0.72, 1.00, -0.21, 0.08, -0.35, -0.21, 1.00, -0.58, 0.15, 0.08, -0.58, 1.00 ), 4, 4) vars <- c("IQ", "Memory", "Anxiety", "Stress") rownames(S) <- colnames(S) <- vars df_cor <- matrix_to_hinton(S) ggplot(df_cor, aes(x = col, y = row, weight = weight)) + geom_hinton() + scale_fill_hinton() + scale_x_continuous(breaks = 1:4, labels = vars) + scale_y_continuous(breaks = 1:4, labels = rev(vars)) + coord_fixed() + theme_hinton() + labs(title = "Correlation matrix", subtitle = "White = positive, black = negative")