diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTickCalculator.java b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTickCalculator.java index ebf08cef78b5258b8db41a2cc1dea5abd1f4420d..fa0364ab824d8a32f9e80311c27c0fb5951df762 100644 --- a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTickCalculator.java +++ b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTickCalculator.java @@ -103,7 +103,8 @@ public abstract class AxisTickCalculator { // System.out.println("******"); // double firstPosition = minValue - (minValue % gridStep) + gridStep; - double firstPosition = minValue - (minValue % gridStep) - gridStep; + double absoluteMinValue = minValue <= maxValue ? minValue : maxValue; + double firstPosition = absoluteMinValue - (absoluteMinValue % gridStep) - gridStep; // // if ((firstPosition - minValue) > gridStep) { // firstPosition = minValue - (minValue % gridStep); diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTickNumericalCalculator.java b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTickNumericalCalculator.java index 75c33974ca88dcd033d2e9d0dcec8620911bb939..18ab2640884003326eb11d3950fd8cbe683e9df5 100644 --- a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTickNumericalCalculator.java +++ b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTickNumericalCalculator.java @@ -72,7 +72,8 @@ public class AxisTickNumericalCalculator extends AxisTickCalculator { // System.out.println("cleanedFirstPosition: " + cleanedFirstPosition); // generate all tickLabels and tickLocations from the first to last position - for (BigDecimal tickPosition = cleanedFirstPosition; tickPosition.compareTo(BigDecimal.valueOf(maxValue + 2 * cleanedGridStep.doubleValue())) < 0; tickPosition = tickPosition.add(cleanedGridStep)) { + double absoluteMaxValue = minValue <= maxValue ? maxValue : minValue; + for (BigDecimal tickPosition = cleanedFirstPosition; tickPosition.compareTo(BigDecimal.valueOf(absoluteMaxValue + 2 * cleanedGridStep.doubleValue())) < 0; tickPosition = tickPosition.add(cleanedGridStep)) { // System.out.println(tickPosition); String tickLabel = numberFormatter.formatNumber(tickPosition, minValue, maxValue, axisDirection);