From 11e569c5ef75e884cece22515878de00742f7d22 Mon Sep 17 00:00:00 2001 From: Tim Molter <tim.molter@gmail.com> Date: Wed, 19 Feb 2014 22:30:07 +0100 Subject: [PATCH] fix for issue #56 - drawing out of bounds when min or max manually set --- .../xeiam/xchart/demo/charts/line/LineChart05.java | 5 +++-- .../internal/chartpart/PlotContentLineChart.java | 12 +++--------- 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/line/LineChart05.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/line/LineChart05.java index 71bbcd01..45c5697a 100644 --- a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/line/LineChart05.java +++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/line/LineChart05.java @@ -33,6 +33,7 @@ import com.xeiam.xchart.demo.charts.ExampleChart; * <li>Customizing the series style properties * <li>Scatter and Line overlay * <li>Logarithmic Y-Axis + * <li>An X-Axis min value clipping off the series */ public class LineChart05 implements ExampleChart { @@ -74,8 +75,8 @@ public class LineChart05 implements ExampleChart { chart.getStyleManager().setYAxisMin(0.01); chart.getStyleManager().setYAxisMax(1000); - chart.getStyleManager().setXAxisMin(-2); - chart.getStyleManager().setXAxisMax(8); + chart.getStyleManager().setXAxisMin(2); + chart.getStyleManager().setXAxisMax(7); return chart; } 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 2b4270c8..1ee0d832 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 @@ -49,6 +49,9 @@ public class PlotContentLineChart extends PlotContent { Rectangle2D bounds = plot.getBounds(); + // this is for preventing the series to be drawn outside the plot area if min and max is overridden to fall inside the data range + g.setClip(bounds); + // X-Axis int xTickSpace = Utils.getTickSpace((int) bounds.getWidth()); int xLeftMargin = Utils.getTickStartOffset((int) bounds.getWidth(), xTickSpace); @@ -113,11 +116,6 @@ public class PlotContentLineChart extends PlotContent { // 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); } @@ -136,10 +134,6 @@ public class PlotContentLineChart extends PlotContent { double yOrig = next.doubleValue(); - // 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); -- GitLab