private void addGridPlot() {
    	if (xData == null || xData.size() == 0)
    		return;
        TreeMap<Double, Integer> xAxisMap = new TreeMap<Double, Integer>();
        TreeMap<Double, Integer> yAxisMap = new TreeMap<Double, Integer>();
        for (Map.Entry<Double, HashMap<Double, ArrayList<Double>>> xentry : xData.entrySet()) {
        	xAxisMap.put(xentry.getKey(), 0);
        	for (Map.Entry<Double, ArrayList<Double>> yentry : xentry.getValue().entrySet())
        		yAxisMap.put(yentry.getKey(), 0);
        }
        double[] x = new double[xAxisMap.size()];
        int i = 0;
        for (Double key : xAxisMap.keySet())
        	x[i++] = key;
        double[] y = new double[yAxisMap.size()];
        i = 0;
        for (Double key : yAxisMap.keySet())
        	y[i++] = key;
        double[][] z = Utils.doubleZArray(dataTable, x, y);
        Color[][] colors = Utils.doubleColorArray(dataTable, x, y);
        plot.addGridPlot(dataColumn.getSelectedItemsString() + " " + statistics.getSelectedItem().toString(), colors, x, y, z);
    }