A reader asks about this heatmap post on Flowing Data. Sure, we can do it easily with ArrayPlot. Grab the notebook here.
data = Import["ppg2008.csv"];
Grid[data]
numbers = data[[2 ;; All, 2 ;; All]]; (* this is the data for heatmap *)
playernames = data[[2 ;; All, 1]]; (* for the labels *)
statnames = data[[1, 2 ;; All]]; (* for the labels *)
Then we need to scale the each column separately to [0,1].
newnumber = Transpose[Rescale[#] & /@ (Transpose[numbers])];
Then you can generate a simple heatmap simply by ArrayPlot[newnumber].
Of course, we like to add the labels with FrameTicks option. FrameTicks->{{left,right},{bottom,top}} mark options specified separately for each edge.
Transpose[{Range[Length[playernames]], playernames}] generate the list {{1, “player1”} … {50, “player50”}} to label the player names.
Transpose[{Range[Length[statnames]], Map[Rotate[#, 60 Degree] &, statnames]}] with this line, we can rotate the labels at the same time.
Here is the final product, click to see the full graphic.