diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTickLogarithmicCalculator.java b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTickLogarithmicCalculator.java index 818b644b0316330e2dbf57c0a706deb560ea5784..72da082ea12d5244b04d99057948315a7c52882b 100644 --- a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTickLogarithmicCalculator.java +++ b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTickLogarithmicCalculator.java @@ -68,8 +68,12 @@ public class AxisTickLogarithmicCalculator extends AxisTickCalculator { int logMin = (int) Math.floor(Math.log10(minValue.doubleValue())); int logMax = (int) Math.ceil(Math.log10(maxValue.doubleValue())); - System.out.println("logMin: " + logMin); - System.out.println("logMax: " + logMax); + // int logMin = (int) Math.log10(minValue.doubleValue()); + // int logMax = (int) Math.log10(maxValue.doubleValue()); + // System.out.println("minValue: " + minValue); + // System.out.println("maxValue: " + maxValue); + // System.out.println("logMin: " + logMin); + // System.out.println("logMax: " + logMax); if (axisDirection == Direction.Y && styleManager.getYAxisMin() != null) { logMin = (int) (Math.log10(styleManager.getYAxisMin())); // no floor @@ -84,19 +88,30 @@ public class AxisTickLogarithmicCalculator extends AxisTickCalculator { logMax = (int) (Math.log10(styleManager.getXAxisMax())); // no floor } - final BigDecimal min = new BigDecimal(minValue.doubleValue()); + // BigDecimal firstPosition = getFirstPosition(tickStep); + // System.out.println("firstPosition: " + firstPosition); + BigDecimal firstPosition = pow(10, logMin); BigDecimal tickStep = pow(10, logMin - 1); - BigDecimal firstPosition = getFirstPosition(tickStep); - for (int i = logMin; i <= logMax; i++) { // for each decade + // System.out.println("tickStep: " + tickStep); + // System.out.println("firstPosition: " + firstPosition); + // System.out.println("i: " + i); + // System.out.println("pow(10, i).doubleValue(): " + pow(10, i).doubleValue()); + for (BigDecimal j = firstPosition; j.doubleValue() <= pow(10, i).doubleValue(); j = j.add(tickStep)) { - System.out.println("j: " + j); + // System.out.println("j: " + j); // System.out.println(Math.log10(j.doubleValue()) % 1); + if (j.doubleValue() < minValue.doubleValue()) { + // System.out.println("continue"); + continue; + } + if (j.doubleValue() > maxValue.doubleValue()) { + // System.out.println("break"); break; } @@ -108,7 +123,8 @@ public class AxisTickLogarithmicCalculator extends AxisTickCalculator { } // add all the tick marks though - int tickLabelPosition = (int) (margin + (Math.log10(j.doubleValue()) - Math.log10(min.doubleValue())) / (Math.log10(maxValue.doubleValue()) - Math.log10(min.doubleValue())) * tickSpace); + int tickLabelPosition = (int) (margin + (Math.log10(j.doubleValue()) - Math.log10(minValue.doubleValue())) / (Math.log10(maxValue.doubleValue()) - Math.log10(minValue.doubleValue())) + * tickSpace); tickLocations.add(tickLabelPosition); } tickStep = tickStep.multiply(pow(10, 1));