Let's do real world application. Give the members of the Dow Jones Industrial Average:
mem = FinancialData["^DJI", "Members"]
{"AA", "AXP", "BA", "BAC", "CAT", "CSCO", "CVX", "DD", "DIS", "GE", "HD",
"HPQ", "IBM", "INTC", "JNJ", "JPM", "KFT", "KO", "MCD", "MMM", "MRK", "MSFT",
"PFE", "PG", "T", "TRV", "UTX", "VZ", "WMT", "XOM"}
Get monthly prices for the last 10 members for the last decade:
findata=FinancialData[#, "Price", {{2000}, {2010}, "Month"}][[All, 2]] & /@ mem[[-10;;-1]];
Find correlation matrix:
fincm = Correlation[Transpose@findata];
Overlay Grid
over ArayPlot
with precise ImageSize
control:
Column[{
GraphicsRow[mem[[-10 ;; -1]], ImageSize -> 500, Frame -> All],
Row[{
GraphicsColumn[mem[[-10 ;; -1]], ImageSize -> 50, Frame -> All],
Overlay[{
ArrayPlot[fincm, ColorFunction -> (ColorData["TemperatureMap"][(1 + #)/2] &),
Frame -> None, Mesh -> True, PlotRangePadding -> 0,
ImageSize -> 500, ColorFunctionScaling -> False],
GraphicsGrid[Map[NumberForm[#, 2] &, fincm, {2}],
ImageSize -> 500]}]
}]}, Alignment -> Right, Spacings -> 0]

"PG" and "PFE" seem highly anti-correlated. Lets verify, indeed
DateListLogPlot[FinancialData[#, "Price", {{2000}, {2010}, "Month"}] & /@ {"PG",
"PFE"}, Joined -> True, Filling -> Bottom]

While "XOM" and "UTX" are highly correlated, and indeed:
DateListLogPlot[FinancialData[#, "Price", {{2000}, {2010}, "Month"}] & /@ {"XOM",
"UTX"}, Joined -> True, Filling -> Bottom]
