       Re: x and y labels in ArrayPlot

• To: mathgroup at smc.vnet.net
• Subject: [mg113734] Re: x and y labels in ArrayPlot
• From: Bob Hanlon <hanlonr at cox.net>
• Date: Tue, 9 Nov 2010 03:54:47 -0500 (EST)

```Use FrameTicks with the ticks suppressed (zero length). I'm not sure where you want the labels since you say the rows are lower case but you want the xLabels (upper case) to the left (rows). Adjust the following as appropriate.

data = {{1, 2, 3}, {2, 3, 4}, {3, 4, 5}, {4, 5, 6}};
yLabels = {"axxx", "bxxx", "cxxx"};
xLabels = {"A", "B", "C", "D"};
ArrayPlot[data, FrameTicks -> {
{Transpose[{
Range[Length[xLabels]],
xLabels,
Table[0, {Length[xLabels]}]}],
None},
{None,
Transpose[{
Range[Length[yLabels]],
Rotate[#, 45 Degree] & /@ yLabels,
Table[0, {Length[yLabels]}]}]}}]

Bob Hanlon

---- Gordon Robertson <grobertson at bcgsc.ca> wrote:

=============

I would like to plot an array of integer values, and to put labels on
each row (a,c,b) and column (A,B,C) of the array, with x-labels on the
left and y-labels above and potentially rotated by 45 or 90 degrees.
ArrayPlot seems appropriate, but I do not see how to add the labels.
I've tried to check the Help documentation carefully, including
MatrixPlot and alternatives, and the WRI demonstrations.

data = {{1, 2, 3},
{2, 3, 4},
{3, 4, 5}}
yLabels = {"a", "b", "c"}
xLabels = {"A", "B", "C"}
ArrayPlot[data]

Gordon
--
Gordon Robertson
BC Cancer Agency Genome Sciences Centre