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