Example: Heatmap with Labels

A 5 by 10 array of random data is created and a similarly sized array of strings is also created. These labels contain spreadsheet-like indices and the random data value expressed as a percentage.

The legend is enabled by setting its paint attribute to true. The tick marks in the legend are formatted using the percentage NumberFormat object. A title is also set in the legend.


import com.imsl.chart.*;
import java.text.NumberFormat;
import java.util.Random;

public class HeatmapEx3 extends javax.swing.JApplet {

    public void init() {
        Chart chart = new Chart(this);
        JPanelChart panel = new JPanelChart(chart);
        getContentPane().add(panel, java.awt.BorderLayout.CENTER);
        setup(chart);
    }

    static private void setup(Chart chart) {
        AxisXY axis = new AxisXY(chart);

        double xmin = 0.0;
        double xmax = 10.0;
        double ymin = 0.0;
        double ymax = 1.0;

        NumberFormat format = NumberFormat.getPercentInstance();

        int nx = 5;
        int ny = 10;
        double data[][] = new double[nx][ny];
        String labels[][] = new String[nx][ny];
        Random random = new Random(123457L);
        for (int i = 0; i < nx; i++) {
            for (int j = 0; j < ny; j++) {
                data[i][j] = random.nextDouble();
                labels[i][j] = "ABCDE".charAt(i) + Integer.toString(j)
                        + "\n" + format.format(data[i][j]);
            }
        }
        Heatmap heatmap = new Heatmap(axis, xmin, xmax, ymin, ymax,
                0.0, 1.0, data, Colormap.BLUE);
        heatmap.setHeatmapLabels(labels);
        heatmap.setTextColor(java.awt.Color.orange);
        heatmap.getHeatmapLegend().setPaint(true);
        heatmap.getHeatmapLegend().setTextFormat(format);
        heatmap.getHeatmapLegend().setTitle("Percentage");
    }

    public static void main(String argv[]) {
        JFrameChart frame = new JFrameChart();
        HeatmapEx3.setup(frame.getChart());
        frame.setVisible(true);
    }
}

Output

eqn_0375

Link to Java source.