diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/date/DateChart03.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/date/DateChart03.java index 5d9786aef032876e0e09591760767b3bfd6620ad..74351cfac9e056101ef1197966c8bd61a4967f12 100644 --- a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/date/DateChart03.java +++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/date/DateChart03.java @@ -53,16 +53,16 @@ public class DateChart03 implements ExampleChart { Random random = new Random(); - DateFormat sdf = new SimpleDateFormat("HH:mm:ss.SSS"); + DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd-HH:mm:ss.SSS"); Date date = null; for (int i = 1; i <= 14; i++) { try { - date = sdf.parse("08:" + (5 * i + random.nextInt(2)) + ":" + (random.nextInt(2)) + "." + random.nextInt(1000)); + date = sdf.parse("2013-07-22-08:" + (5 * i + random.nextInt(2)) + ":" + (random.nextInt(2)) + "." + random.nextInt(1000)); } catch (ParseException e) { e.printStackTrace(); } - // System.out.println(date.getTime()); - // System.out.println(date.toString()); + System.out.println(date.getTime()); + System.out.println(date.toString()); xData.add(date); yData.add(Math.random() * i); } diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/scatter/ScatterChart02.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/scatter/ScatterChart02.java index cc7959570a9d54c91729536df3af42b33a889758..777065cf0ad35b262674a7e536c58ea42b28ba44 100644 --- a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/scatter/ScatterChart02.java +++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/scatter/ScatterChart02.java @@ -55,7 +55,7 @@ public class ScatterChart02 implements ExampleChart { for (int i = 0; i < size; i++) { double nextRandom = random.nextDouble(); xData.add(Math.pow(10, nextRandom * 10)); - yData.add(nextRandom + random.nextDouble()); + yData.add(1000000000.0 + nextRandom + random.nextDouble()); } // Create Chart diff --git a/xchart/src/main/java/com/xeiam/xchart/Histogram.java b/xchart/src/main/java/com/xeiam/xchart/Histogram.java index d7bd83065688c9d78a7da04c6172546d69d8cd06..31cb3b9879c66d6d3e887198c1d40b8ec262a186 100644 --- a/xchart/src/main/java/com/xeiam/xchart/Histogram.java +++ b/xchart/src/main/java/com/xeiam/xchart/Histogram.java @@ -87,10 +87,10 @@ public class Histogram { int bin = (int) ((((Number) itr.next()).doubleValue() - min) / binSize); // changed this from numBins if (bin < 0) { /* this data is smaller than min */ - System.out.println("less than"); + // System.out.println("less than"); } else if (bin > numBins) { /* this data point is bigger than max */ - System.out.println("greater than"); + // System.out.println("greater than"); } else if (bin == numBins) { // this falls right on the edge of the max bin tempYAxisData[bin - 1] += 1; 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 7141e461c79d9a9b337ee4897efc19cac9ebcf07..63bd164647a160c4960abedcd36a3abdc80f8a32 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 @@ -100,13 +100,16 @@ public abstract class AxisTickCalculator { */ double getFirstPosition(double gridStep) { - double firstPosition; - if (minValue % gridStep <= 0.0) { + // System.out.println("******"); + + double firstPosition = minValue - (minValue % gridStep) + gridStep; + + // System.out.println(firstPosition - minValue); + // System.out.println(.9 * gridStep); + + if ((firstPosition - minValue) > .8 * gridStep) { firstPosition = minValue - (minValue % gridStep); } - else { - firstPosition = minValue - (minValue % gridStep) + gridStep; - } return firstPosition; } diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTickDateCalculator.java b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTickDateCalculator.java index 4046f870e894f71bc546037b103fe6aff95e686e..4e2a3f220b82bdb2c9ab7ee21b071be6d1a706e3 100644 --- a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTickDateCalculator.java +++ b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTickDateCalculator.java @@ -47,7 +47,7 @@ public class AxisTickDateCalculator extends AxisTickCalculator { private void calculate() { // tick space - a percentage of the working space available for ticks - int tickSpace = (int) (styleManager.getAxisTickSpaceRatio() * workingSpace); // in plot space + double tickSpace = styleManager.getAxisTickSpaceRatio() * workingSpace; // in plot space // where the tick should begin in the working space in pixels double margin = Utils.getTickStartOffset(workingSpace, tickSpace); // in plot space double gridStep = getGridStepForDecimal(tickSpace); @@ -55,7 +55,7 @@ public class AxisTickDateCalculator extends AxisTickCalculator { // the span of the data long span = (long) Math.abs(maxValue - minValue); // in data space - long gridStepHint = (long) (span / (double) tickSpace * styleManager.getXAxisTickMarkSpacingHint()); + long gridStepHint = (long) (span / tickSpace * styleManager.getXAxisTickMarkSpacingHint()); long timeUnit = dateFormatter.getTimeUnit(gridStepHint); double gridStep = 0.0; @@ -74,7 +74,7 @@ public class AxisTickDateCalculator extends AxisTickCalculator { tickLabels.add(dateFormatter.formatDate(tickPosition, timeUnit)); // here we convert tickPosition finally to plot space, i.e. pixels - double tickLabelPosition = (int) (margin + ((tickPosition - minValue) / (maxValue - minValue) * tickSpace)); + double tickLabelPosition = margin + ((tickPosition - minValue) / (maxValue - minValue) * tickSpace); tickLocations.add(tickLabelPosition); } } 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 266598a19fa855c594b726baf3531fa94599228d..5fc5279a841b8f8053b0fc1845a93fcf99ef0382 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 @@ -93,18 +93,18 @@ public class AxisTickLogarithmicCalculator extends AxisTickCalculator { // System.out.println("i: " + i); // System.out.println("pow(10, i).doubleValue(): " + pow(10, i).doubleValue()); - // using trhe .00000001 factor to dal with double value imprecision + // using the .00000001 factor to deal with double value imprecision for (double j = firstPosition; j <= Utils.pow(10, i) + .00000001; j = j + tickStep) { // System.out.println("j: " + j); // System.out.println(Math.log10(j) % 1); - if (j < minValue) { + if (j < minValue - tickStep * .2) { // System.out.println("continue"); continue; } - if (j > maxValue) { + if (j > maxValue + tickStep * 1.2) { // System.out.println("break"); break; } 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 c83b47ca0e3df4b5949ec9ea5c552c4cdc7ee44e..6a5d3f15585732d39123fe952f7142b3894f150e 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 @@ -65,7 +65,7 @@ public class AxisTickNumericalCalculator extends AxisTickCalculator { BigDecimal firstPosition = BigDecimal.valueOf(getFirstPosition(gridStep.doubleValue())); // generate all tickLabels and tickLocations from the first to last position - for (BigDecimal tickPosition = firstPosition; tickPosition.compareTo(BigDecimal.valueOf(maxValue)) <= 0; tickPosition = tickPosition.add(gridStep)) { + for (BigDecimal tickPosition = firstPosition; tickPosition.compareTo(BigDecimal.valueOf(maxValue + gridStep.doubleValue() * 0.8)) <= 0; tickPosition = tickPosition.add(gridStep)) { tickLabels.add(numberFormatter.formatNumber(tickPosition.doubleValue())); // here we convert tickPosition finally to plot space, i.e. pixels