Loading the available dataset

data(mtcars)
x  <- as.matrix(mtcars)
heatmap(x)


Enhanced heatmap in gplot

library(gplots)
## 
## Attaching package: 'gplots'
## The following object is masked from 'package:stats':
## 
##     lowess
heatmap.2(x, Colv=FALSE, dendrogram="row", 
          trace = 'none', 
          denscol = 'navy', 
          adjCol = c(1,2),# 2-element vector giving the (left-right, top-bottom) 
          #justification of row/column labels
          
          offsetRow = 1  #Number of character-width spaces to place between 
          #row/column labels and the edge of the plotting region.
          )

## change the direction of column lable
heatmap.2(x, srtRow=0, srtCol=90, 
          offsetRow=0, offsetCol=0, col=bluered)

## scale is very very important!!
heatmap.2(x, srtRow=0, srtCol=90, 
          offsetRow=0, offsetCol=0, 
          col=bluered, scale = 'col'#normalized by column
          )


Drawing heatmap in ggplot

#The package reshape is required to melt the correlation matrix :
library(reshape2)
corCar          <- cor(t(mtcars))
melted_corMTCAR <- melt(corCar) # changed melt to pair correlation matrix
head(melted_corMTCAR)
##                Var1      Var2     value
## 1         Mazda RX4 Mazda RX4 1.0000000
## 2     Mazda RX4 Wag Mazda RX4 0.9999946
## 3        Datsun 710 Mazda RX4 0.9897806
## 4    Hornet 4 Drive Mazda RX4 0.9755949
## 5 Hornet Sportabout Mazda RX4 0.9849219
## 6           Valiant Mazda RX4 0.9826444
# heatmap for correlation  
library(ggplot2)
ggplot(data = melted_corMTCAR, aes(x=Var1, y=Var2, fill=value)) + 
  geom_tile()  

# Get lower triangle of the correlation matrix
get_lower_tri<-function(cormat){
  cormat[upper.tri(cormat)] <- NA
  return(cormat)
}
# Get upper triangle of the correlation matrix
get_upper_tri <- function(cormat){
  cormat[lower.tri(cormat)]<- NA
  return(cormat)
}

# use extract upper.tri
upper_tri <- get_upper_tri(corCar)
head(upper_tri)
##                   Mazda RX4 Mazda RX4 Wag Datsun 710 Hornet 4 Drive
## Mazda RX4                 1     0.9999946  0.9897806      0.9755949
## Mazda RX4 Wag            NA     1.0000000  0.9898806      0.9756154
## Datsun 710               NA            NA  1.0000000      0.9377512
## Hornet 4 Drive           NA            NA         NA      1.0000000
## Hornet Sportabout        NA            NA         NA             NA
## Valiant                  NA            NA         NA             NA
##                   Hornet Sportabout   Valiant Duster 360 Merc 240D
## Mazda RX4                 0.9849219 0.9826444  0.9966708 0.9709778
## Mazda RX4 Wag             0.9848669 0.9826990  0.9965779 0.9711244
## Datsun 710                0.9510709 0.9492576  0.9810345 0.9379252
## Hornet 4 Drive            0.9975793 0.9992580  0.9744818 0.9959252
## Hornet Sportabout         1.0000000 0.9987885  0.9868227 0.9893532
## Valiant                          NA 1.0000000  0.9814781 0.9948513
##                    Merc 230  Merc 280 Merc 280C Merc 450SE Merc 450SL
## Mazda RX4         0.9979862 0.9991635 0.9989810  0.9978407  0.9980218
## Mazda RX4 Wag     0.9981426 0.9991795 0.9990100  0.9977928  0.9979733
## Datsun 710        0.9905132 0.9926709 0.9922630  0.9808700  0.9812300
## Hornet 4 Drive    0.9754758 0.9675175 0.9674808  0.9801772  0.9802828
## Hornet Sportabout 0.9818801 0.9792033 0.9792976  0.9903899  0.9903916
## Valiant           0.9825497 0.9759904 0.9760419  0.9864589  0.9865508
##                   Merc 450SLC Cadillac Fleetwood Lincoln Continental
## Mazda RX4           0.9976821          0.9747543           0.9803858
## Mazda RX4 Wag       0.9976410          0.9747020           0.9803290
## Datsun 710          0.9806200          0.9339623           0.9430615
## Hornet 4 Drive      0.9800784          0.9978952           0.9970348
## Hornet Sportabout   0.9903498          0.9986132           0.9994983
## Valiant             0.9864103          0.9975630           0.9977794
##                   Chrysler Imperial  Fiat 128 Honda Civic Toyota Corolla
## Mazda RX4                 0.9883171 0.9665339   0.9679038      0.9497922
## Mazda RX4 Wag             0.9882470 0.9667258   0.9681143      0.9500043
## Datsun 710                0.9571134 0.9851826   0.9736937      0.9769965
## Hornet 4 Drive            0.9942116 0.9157302   0.9409279      0.8882435
## Hornet Sportabout         0.9992468 0.9215490   0.9398642      0.8950651
## Valiant                   0.9966330 0.9258627   0.9470811      0.8998474
##                   Toyota Corona Dodge Challenger AMC Javelin Camaro Z28
## Mazda RX4             0.9942831        0.9826427   0.9858452  0.9963801
## Mazda RX4 Wag         0.9944076        0.9826074   0.9858144  0.9962848
## Datsun 710            0.9991120        0.9472385   0.9528131  0.9823933
## Hornet 4 Drive        0.9503239        0.9982656   0.9972864  0.9710662
## Hornet Sportabout     0.9622047        0.9998857   0.9999405  0.9843162
## Valiant               0.9607729        0.9990828   0.9988216  0.9785863
##                   Pontiac Firebird Fiat X1-9 Porsche 914-2 Lotus Europa
## Mazda RX4                0.9768412 0.9771175     0.9960446    0.9467139
## Mazda RX4 Wag            0.9767863 0.9773155     0.9960766    0.9467045
## Datsun 710               0.9376925 0.9926894     0.9968802    0.9811911
## Hornet 4 Drive           0.9990297 0.9273347     0.9592908    0.8552800
## Hornet Sportabout        0.9990524 0.9348882     0.9687526    0.8773760
## Valiant                  0.9986500 0.9378364     0.9679007    0.8722962
##                   Ford Pantera L Ferrari Dino Maserati Bora Volvo 142E
## Mazda RX4              0.9952363    0.9495308     0.9598113  0.9879852
## Mazda RX4 Wag          0.9951176    0.9494473     0.9596644  0.9880478
## Datsun 710             0.9859917    0.9761739     0.9768834  0.9990375
## Hornet 4 Drive         0.9615811    0.8588699     0.8802035  0.9309608
## Hornet Sportabout      0.9769543    0.8864176     0.9075443  0.9470799
## Valiant                0.9703559    0.8765768     0.8963508  0.9433944
# Melt the correlation matrix
melted_cormat <- melt(upper_tri, na.rm = TRUE)

# Heatmap
ggplot(data = melted_cormat, aes(Var2, Var1, fill = value))+
  geom_tile(color = "white")+
  scale_fill_gradient2(low = "navy", high = "red", mid = "white", 
                       midpoint = 0.925, limit = c(0.85,1), space = "Lab", 
                       name="Pearson\nCorrelation") +
  theme_minimal()+ 
  theme(axis.text.x = element_text(angle = 45, vjust = 1, 
                                   size = 8, hjust = 1))+
  coord_fixed()