Take the 2-minute tour ×
Mathematica Stack Exchange is a question and answer site for users of Mathematica. It's 100% free, no registration required.

I would like to have ArrayPlot[] also present the value of each cell in it, similar to the LabelingFunction that is available in other types of plots. How do I do it?

share|improve this question
add comment

1 Answer 1

up vote 8 down vote accepted

Like this?

SeedRandom[42, Method -> "Legacy"]; (* for reproducibility *)

mat = RandomReal[1, {3, 5}];
ArrayPlot[mat, 
          Epilog -> {Red, MapIndexed[Text[#1, Reverse[#2 - 1/2]] &, Reverse[mat], {2}]}, 
          Mesh -> True]

labeled ArrayPlot[]

share|improve this answer
    
+1, answers the question. How about a contrasting text color (black on white, white on black,..)? I won't be able to upvote a second time for it, though :-) –  stevenvh Aug 26 '12 at 16:15
    
@stevenvh I guess something like Round[1 - GrayLevel[...]] should do it –  rm -rf Aug 26 '12 at 16:16
    
That was my first idea as well, but at 50 % gray you won't see anything :-( –  stevenvh Aug 26 '12 at 16:19
    
yes thanks this is great –  Doron Aug 26 '12 at 16:21
    
@steven, $\gamma$-tweaking might do the trick in that case; I'll play around and edit this answer if I see something I like. –  J. M. Aug 26 '12 at 16:29
show 4 more comments

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.