Code bellow generates heatmap that goes from bottom left to top right
library(ggplot2)
library(reshape2)
set.seed(111)
n <- 10
m <- matrix(rnorm(n^2), n, n)
m <- cor(m)
m <- melt(m)
ggplot(m, aes(Var1, Var2, fill = value)) +
geom_tile()
How can I modify my data (probably modify melt result) so heatmap would go from top left to bottom right, for result like this
A terrible solution compared to @Axeman's (but more fun) is to apply a rotational transformation matrix to the data.
To understand what kind of transformation we need, I plotted only the diagonal (value=1) points on a 3D scatter plot.
The rotational matrix about the z (value) axis
Including the added constant, the final equation is
There is probably a better way to vectorize this transformation, but this is how I did it.
EDIT: Apologies about the weird image format/layout.