diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/area/AreaChart02.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/area/AreaChart02.java index 7f0157992e39a1ed4eba8f9e192082431d3a3423..397d37f6bea650b965b079874d90ad2123182b53 100644 --- a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/area/AreaChart02.java +++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/area/AreaChart02.java @@ -64,6 +64,10 @@ public class AreaChart02 implements ExampleChart { } xData.add(10); yData.add(null); + xData.add(11); + yData.add(100); + xData.add(12); + yData.add(90); chart.addSeries("a", xData, yData); diff --git a/xchart/src/main/java/com/xeiam/xchart/StyleManager.java b/xchart/src/main/java/com/xeiam/xchart/StyleManager.java index 7a6f34ca204a49ddf32e1bf5c7658f2b7a984637..249e7b57e5c6c8efca6bb33c4cb7fad4a18bc2df 100644 --- a/xchart/src/main/java/com/xeiam/xchart/StyleManager.java +++ b/xchart/src/main/java/com/xeiam/xchart/StyleManager.java @@ -31,6 +31,9 @@ import com.xeiam.xchart.internal.style.XChartTheme; */ public class StyleManager { + /** + * Note: For Area Charts, the X-Axis data must be in ascending order. + */ public enum ChartType { Line, Scatter, Area, Bar 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 6fc1c6ea353c98ec52aa68184edab046a48fa07c..d91c180ed227441751b59bf4e1ef4208bcabdb11 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 @@ -194,9 +194,11 @@ public class PlotContentLineChart extends PlotContent { path.moveTo(previousX, yBottomOfArea); path.lineTo(previousX, previousY); } - path.lineTo(xOffset, yOffset); } + if (xOffset < previousX) { + throw new RuntimeException("X-Data must be in ascending order for Area Charts!!!"); + } } previousX = xOffset;