From 7e6566efa329f4eb5e0009364f808726ccaf937e Mon Sep 17 00:00:00 2001 From: Tim Molter <tim.molter@gmail.com> Date: Thu, 23 Jun 2011 15:17:34 +0200 Subject: [PATCH] handled NaN values during plot paint --- dist/xchart-1.0.0.jar | Bin 47291 -> 48850 bytes src/com/xeiam/xcharts/AxisTick.java | 4 +- src/com/xeiam/xcharts/PlotContent.java | 73 +++++++++++++------------ 3 files changed, 40 insertions(+), 37 deletions(-) diff --git a/dist/xchart-1.0.0.jar b/dist/xchart-1.0.0.jar index f63ad44f378aab088356e5bda79581b9338f6465..4662cc8f1bef5c27cfcfd1d349ad0901138c85da 100644 GIT binary patch delta 13062 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 Nh~#HrNL~+80RZ@Fs9FF3 delta 11511 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 a%aNowCU4m%z^BKc$FP)-fq`Ka$a(<&3Htm1 diff --git a/src/com/xeiam/xcharts/AxisTick.java b/src/com/xeiam/xcharts/AxisTick.java index 4d0a14e2..6a09f193 100644 --- a/src/com/xeiam/xcharts/AxisTick.java +++ b/src/com/xeiam/xcharts/AxisTick.java @@ -131,10 +131,10 @@ public class AxisTick implements IChartPart { */ private void determineAxisTick() { - System.out.println("workingSpace= " + workingSpace); + // System.out.println("workingSpace= " + workingSpace); int tickSpace = AxisPair.getTickSpace(workingSpace); - System.out.println("tickSpace= " + tickSpace); + // System.out.println("tickSpace= " + tickSpace); int margin = AxisPair.getMargin(workingSpace, tickSpace); diff --git a/src/com/xeiam/xcharts/PlotContent.java b/src/com/xeiam/xcharts/PlotContent.java index 3e45d230..6f645604 100644 --- a/src/com/xeiam/xcharts/PlotContent.java +++ b/src/com/xeiam/xcharts/PlotContent.java @@ -72,45 +72,48 @@ public class PlotContent implements IChartPart { for (int i = 0; i < xData.length; i++) { - if (Double.isInfinite(xData[i]) || Double.isNaN(xData[i])) { - throw new RuntimeException("Infinite or NaN values in xAxis Data not allowed!!!"); - } - - if (Double.isInfinite(yData[i]) || Double.isNaN(yData[i])) { - throw new RuntimeException("Infinite or NaN values in yAxis Data not allowed!!!"); - } - - int xTransform = (int) (xLeftMargin + ((xData[i] - xMin) / (xMax - xMin) * xTickSpace)); - int yTransform = (int) (bounds.getHeight() - (yTopMargin + (yData[i] - yMin) / (yMax - yMin) * yTickSpace)); - - // a check if all y data are the exact same values - if (Math.abs(xMax - xMin) / 5 == 0.0) { - xTransform = (int) (bounds.getWidth() / 2.0); - } - - // a check if all y data are the exact same values - if (Math.abs(yMax - yMin) / 5 == 0.0) { - yTransform = (int) (bounds.getHeight() / 2.0); - } + // if (Double.isInfinite(xData[i]) || Double.isNaN(xData[i])) { + // throw new RuntimeException("Infinite or NaN values in xAxis Data not allowed!!!"); + // } + // + // if (Double.isInfinite(yData[i]) || Double.isNaN(yData[i])) { + // throw new RuntimeException("Infinite or NaN values in yAxis Data not allowed!!!"); + // } + + if (!Double.isInfinite(xData[i]) && !Double.isNaN(xData[i]) && !Double.isInfinite(yData[i]) && !Double.isNaN(yData[i])) { + + int xTransform = (int) (xLeftMargin + ((xData[i] - xMin) / (xMax - xMin) * xTickSpace)); + int yTransform = (int) (bounds.getHeight() - (yTopMargin + (yData[i] - yMin) / (yMax - yMin) * yTickSpace)); + + // a check if all y data are the exact same values + if (Math.abs(xMax - xMin) / 5 == 0.0) { + xTransform = (int) (bounds.getWidth() / 2.0); + } - int xOffset = (int) (bounds.getX() + xTransform - 1); - int yOffset = (int) (bounds.getY() + yTransform); + // a check if all y data are the exact same values + if (Math.abs(yMax - yMin) / 5 == 0.0) { + yTransform = (int) (bounds.getHeight() / 2.0); + } - // paint line - if (series.getLineStyle() != null) { - if (previousX != Integer.MIN_VALUE && previousY != Integer.MIN_VALUE) { - g.setColor(series.getLineColor()); - g.setStroke(series.getLineStyle()); - g.drawLine(previousX, previousY, xOffset, yOffset); + int xOffset = (int) (bounds.getX() + xTransform - 1); + int yOffset = (int) (bounds.getY() + yTransform); + + // paint line + if (series.getLineStyle() != null) { + if (previousX != Integer.MIN_VALUE && previousY != Integer.MIN_VALUE) { + g.setColor(series.getLineColor()); + g.setStroke(series.getLineStyle()); + g.drawLine(previousX, previousY, xOffset, yOffset); + } + previousX = xOffset; + previousY = yOffset; } - previousX = xOffset; - previousY = yOffset; - } - // paint marker - if (series.getMarker() != null) { - g.setColor(series.getMarkerColor()); - series.getMarker().paint(g, xOffset, yOffset); + // paint marker + if (series.getMarker() != null) { + g.setColor(series.getMarkerColor()); + series.getMarker().paint(g, xOffset, yOffset); + } } } } -- GitLab