MATLAB: Display values on heatmap plot – they disappear as the plot shrinks

heatmap

I am trying to make a heatmap where the values of the cells are displayed as well, not only the color. Now this basically works – however, as soon as I shrink the figure, the numbers disappear and I am left with colourful but empty cells. I guess this has to do with the text size, but how can I adapt that one?
This is the example code (just a simple heat map):
heatmap(dfd_ptp, 'Colormap', jet, 'ColorbarVisible', 'on', 'XLabel', 'Time', 'YLabel', monthstr)

Best Answer

The font size of the cell labels on the heatmap automatically scale so that they don't overrun the individual cells (and so the labels don't overlap one another). They will automatically turn off when the font size gets too small to read. The threshold at which the cell labels turn off is hard-coded, there is no way to modify that setting. In addition, the cell labels will all turn off as soon as any of the labels are too big to fit (i.e. they all turn off at the same time, not one-by-one).
If the labels did not turn off, at some point they would just become black dots in the center of the cells, which would obscure the colors in the cells. I know that setting the FontSize will make the axes labels smaller, but out of curiosity, what font size would you use for your cell labels that fit inside the cell, but is large enough to read?
Also, if you could control the font size of the cells, which would you prefer:
  • Be able to specify the cell label font size independent of the axes label font size
  • Be able to adjust the minimum cell label font size before the labels are considered "too small to read" and are are shut off automatically?
There is one potential solution, depending on your particular data: You may be able to modify the CellLabelFormat to generate shorter cell labels.