From d49d2321d1eeaa6e999637f06ddac88f728d61b8 Mon Sep 17 00:00:00 2001
From: Tim Molter <tim@knowm.org>
Date: Sun, 3 Jan 2016 00:44:22 +0100
Subject: [PATCH] Issue #119 - Bar chart - allow null values in data series

---
 .../org/knowm/xchart/demo/charts/bar/BarChart04.java   |  2 +-
 .../chartpart/PlotContentCategoricalChart_Bar.java     | 10 +++++++++-
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/xchart-demo/src/main/java/org/knowm/xchart/demo/charts/bar/BarChart04.java b/xchart-demo/src/main/java/org/knowm/xchart/demo/charts/bar/BarChart04.java
index 46725806..ed798708 100644
--- a/xchart-demo/src/main/java/org/knowm/xchart/demo/charts/bar/BarChart04.java
+++ b/xchart-demo/src/main/java/org/knowm/xchart/demo/charts/bar/BarChart04.java
@@ -50,7 +50,7 @@ public class BarChart04 implements ExampleChart {
     // Create Chart
     Chart chart = new ChartBuilder().chartType(ChartType.Bar).width(800).height(600).title("XFactor vs. Age").xAxisTitle("Age").yAxisTitle("XFactor").build();
     chart.addCategorySeries("female", Arrays.asList(new Integer[] { 10, 20, 30, 40, 50 }), Arrays.asList(new Integer[] { 50, 10, 20, 40, 35 }));
-    chart.addCategorySeries("male", Arrays.asList(new Integer[] { 10, 20, 30, 40, 50 }), Arrays.asList(new Integer[] { 40, 30, 20, 0, 60 }));
+    chart.addCategorySeries("male", Arrays.asList(new Integer[] { 10, 20, 30, 40, 50 }), Arrays.asList(new Integer[] { 40, 30, 20, null, 60 }));
 
     chart.getStyleManager().setYAxisMin(5);
     chart.getStyleManager().setYAxisMax(70);
diff --git a/xchart/src/main/java/org/knowm/xchart/internal/chartpart/PlotContentCategoricalChart_Bar.java b/xchart/src/main/java/org/knowm/xchart/internal/chartpart/PlotContentCategoricalChart_Bar.java
index 38e2eeae..059b399e 100644
--- a/xchart/src/main/java/org/knowm/xchart/internal/chartpart/PlotContentCategoricalChart_Bar.java
+++ b/xchart/src/main/java/org/knowm/xchart/internal/chartpart/PlotContentCategoricalChart_Bar.java
@@ -117,7 +117,15 @@ public class PlotContentCategoricalChart_Bar extends PlotContent {
       int categoryCounter = 0;
       while (yItr.hasNext()) {
 
-        double y = yItr.next().doubleValue();
+        Number next = yItr.next();
+        if (next == null) {
+
+          previousX = -Double.MAX_VALUE;
+          previousY = -Double.MAX_VALUE;
+          categoryCounter++;
+          continue;
+        }
+        double y = next.doubleValue();
 
         double yTop = 0.0;
         double yBottom = 0.0;
-- 
GitLab