diff gnv-artifacts/src/main/java/de/intevation/gnv/chart/DefaultHistogram.java @ 617:3d13fa281a7e

Added new ouput mode: histogram. gnv-artifacts/trunk@688 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Mon, 15 Feb 2010 11:44:01 +0000
parents
children 65f09139e9b3
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gnv-artifacts/src/main/java/de/intevation/gnv/chart/DefaultHistogram.java	Mon Feb 15 11:44:01 2010 +0000
@@ -0,0 +1,61 @@
+package de.intevation.gnv.chart;
+
+import java.util.Locale;
+
+import org.apache.log4j.Logger;
+
+import org.jfree.chart.ChartTheme;
+import org.jfree.chart.JFreeChart;
+import org.jfree.chart.axis.NumberAxis;
+import org.jfree.chart.plot.XYPlot;
+import org.jfree.chart.renderer.xy.XYBarRenderer;
+
+import org.jfree.data.general.Dataset;
+import org.jfree.data.statistics.HistogramDataset;
+
+
+/**
+ * @author Ingo Weinzierl (ingo.weinzierl@intevation.de)
+ */
+public class DefaultHistogram
+extends      AbstractHistogram
+{
+    // TODO take a better default value
+    public static final int DEFAULT_BINS = 15;
+
+    private static Logger logger = Logger.getLogger(DefaultHistogram.class);
+
+
+    public DefaultHistogram(
+        ChartLabels labels, Object[] data, ChartTheme theme
+    ) {
+        super(labels, data, theme);
+    }
+
+
+    protected void applyDatasets() {
+        XYPlot plot = (XYPlot) chart.getPlot();
+
+        // prepare data and create add them to histogram dataset
+        String   name   = (String)   data[0];
+        double[] values = toDouble((Double[]) data[1]);
+
+        HistogramDataset dataset = new HistogramDataset();
+        dataset.addSeries(name, values, DEFAULT_BINS);
+
+        plot.setDataset(0, dataset);
+    }
+
+
+    protected double[] toDouble(Double[] array) {
+        int length      = array.length;
+        double[] values = new double[length];
+
+        for(int i = 0; i < length; i++) {
+            values[i] = array[i].doubleValue();
+        }
+
+        return values;
+    }
+}
+// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org