Nivel de significación agregado al mapa de calor de correlación de matriz usando ggplot2

Me pregunto cómo se puede agregar otra capa de complejidad importante y necesaria a un mapa de calor de correlación matricial como, por ejemplo, el valor de p según la forma en que se encuentran las estrellas de nivel de significación además del valor de R2 (-1 a 1).
En esta pregunta NO SE INDICÓ poner estrellas de nivel de significación O los valores de p como texto en cada cuadrado de la matriz, PERO, en lugar de mostrar esto en una representación gráfica del nivel de significación en cada casilla de la matriz. Creo que solo aquellos que disfrutan de la bendición del pensamiento INNOVADOR pueden ganar el aplauso para desentrañar este tipo de solución a fin de tener la mejor manera de representar ese componente agregado de complejidad a nuestros "mapas de calor de correlación de matriz de la mitad de la verdad". Busqué en Google pero nunca vi una forma adecuada o diré una manera "amigable a la vista" para representar el nivel de significación MÁS los tonos de color estándar que reflejan el coeficiente R.
El conjunto de datos reproducibles se encuentra aquí:
http://learnr.wordpress.com/2010/01/26/ggplot2-quick-heatmap-plotting/
El código R se encuentra a continuación:

library(ggplot2)
library(plyr) # might be not needed here anyway it is a must-have package I think in R 
library(reshape2) # to "melt" your dataset
library (scales) # it has a "rescale" function which is needed in heatmaps 
library(RColorBrewer) # for convenience of heatmap colors, it reflects your mood sometimes
nba <- read.csv("http://datasets.flowingdata.com/ppg2008.csv")
nba <- as.data.frame(cor(nba[2:ncol(nba)])) # convert the matrix correlations to a dataframe 
nba.m <- data.frame(row=rownames(nba),nba) # create a column called "row"
rownames(nba) <- NULL #get rid of row names
nba <- melt(nba)
nba.m$value<-cut(nba.m$value,breaks=c(-1,-0.75,-0.5,-0.25,0,0.25,0.5,0.75,1),include.lowest=TRUE,label=c("(-0.75,-1)","(-0.5,-0.75)","(-0.25,-0.5)","(0,-0.25)","(0,0.25)","(0.25,0.5)","(0.5,0.75)","(0.75,1)")) # this can be customized to put the correlations in categories using the "cut" function with appropriate labels to show them in the legend, this column now would be discrete and not continuous
nba.m$row <- factor(nba.m$row, levels=rev(unique(as.character(nba.m$variable)))) # reorder the "row" column which would be used as the x axis in the plot after converting it to a factor and ordered now
#now plotting
ggplot(nba.m, aes(row, variable)) +
geom_tile(aes(fill=value),colour="black") +
scale_fill_brewer(palette = "RdYlGn",name="Correlation")  # here comes the RColorBrewer package, now if you ask me why did you choose this palette colour I would say look at your battery charge indicator of your mobile for example your shaver, won't be red when gets low? and back to green when charged? This was the inspiration to choose this colour set.

El mapa de calor de correlación matricial debería verse así:

Consejos e ideas para mejorar la solución:
- Este código podría ser útil para tener una idea sobre las estrellas de nivel de significación tomadas de este sitio web:
http://ohiodata.blogspot.de/2012/06/correlation-tables-in-r-flagged-with.html
Código R:

mystars <- ifelse(p < .001, "***", ifelse(p < .01, "** ", ifelse(p < .05, "* ", " "))) # so 4 categories  

- El nivel de significación se puede agregar como intensidad de color a cada cuadrado como la estética alfa, pero no creo que sea fácil de interpretar y capturar
- Otra idea sería tener 4 tamaños diferentes de cuadrados correspondientes a las estrellas, por supuesto, dando el más pequeño al no significativo y aumenta a un cuadrado de tamaño completo si las estrellas más altas
- Otra idea es incluir un círculo dentro de esos cuadrados significativos y el grosor de la línea del círculo corresponde al nivel de significancia (las 3 categorías restantes) todas ellas de un color
- Igual que el anterior, pero fijando el grosor de la línea al mismo tiempo que da 3 colores para los 3 niveles significativos restantes
- Tal vez se te ocurran mejores ideas, ¿quién sabe?

Respuestas a la pregunta(2)

Su respuesta a la pregunta