From 7b0e2a1aad84f4d9954ade7630e452046994e23d Mon Sep 17 00:00:00 2001 From: Tim Molter <tim.molter@gmail.com> Date: Wed, 19 Feb 2014 17:56:12 +0100 Subject: [PATCH] fix for issue #56 - drawing out of bounds when min or max manually set --- .../chartpart/PlotContentLineChart.java | 31 +++++++++++++------ 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/PlotContentLineChart.java b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/PlotContentLineChart.java index f70c8bd6..2b4270c8 100644 --- a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/PlotContentLineChart.java +++ b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/PlotContentLineChart.java @@ -98,10 +98,6 @@ public class PlotContentLineChart extends PlotContent { Iterator<?> xItr = xData.iterator(); Iterator<? extends Number> yItr = yData.iterator(); - Iterator<? extends Number> ebItr = null; - if (errorBars != null) { - ebItr = errorBars.iterator(); - } Path2D.Double path = null; @@ -112,11 +108,16 @@ public class PlotContentLineChart extends PlotContent { x = ((Number) xItr.next()).doubleValue(); // System.out.println(x); } - if (getChartPainter().getAxisPair().getXAxis().getAxisType() == AxisType.Date) { + else if (getChartPainter().getAxisPair().getXAxis().getAxisType() == AxisType.Date) { x = ((Date) xItr.next()).getTime(); // System.out.println(x); } + // break out of out of over-ridden min and max values + if (x < getChartPainter().getStyleManager().getXAxisMin() || x > getChartPainter().getStyleManager().getXAxisMax()) { + continue; + } + if (getChartPainter().getStyleManager().isXAxisLogarithmic()) { x = Math.log10(x); } @@ -134,12 +135,12 @@ public class PlotContentLineChart extends PlotContent { } double yOrig = next.doubleValue(); - double y = 0.0; - double eb = 0.0; - if (errorBars != null) { - eb = (Double) ebItr.next(); + // break out of out of over-ridden min and max values + if (yOrig < getChartPainter().getStyleManager().getYAxisMin() || yOrig > getChartPainter().getStyleManager().getYAxisMax()) { + continue; } + double y = 0.0; // System.out.println(y); if (getChartPainter().getStyleManager().isYAxisLogarithmic()) { @@ -208,7 +209,17 @@ public class PlotContentLineChart extends PlotContent { series.getMarker().paint(g, xOffset, yOffset); } - // paint errorbar + // paint errorbars + Iterator<? extends Number> ebItr = null; + if (errorBars != null) { + ebItr = errorBars.iterator(); + } + double eb = 0.0; + + if (errorBars != null) { + eb = (Double) ebItr.next(); + } + if (errorBars != null) { g.setColor(getChartPainter().getStyleManager().getErrorBarsColor()); -- GitLab