diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/Utils.java b/xchart/src/main/java/com/xeiam/xchart/internal/Utils.java index 8bceebf4b0fa5db46b118d264e616c1a60b28c0d..eb310e31c7305b1320126164035fab2b1e2d7c86 100644 --- a/xchart/src/main/java/com/xeiam/xchart/internal/Utils.java +++ b/xchart/src/main/java/com/xeiam/xchart/internal/Utils.java @@ -15,7 +15,6 @@ */ package com.xeiam.xchart.internal; - /** * @author timmolter */ @@ -35,10 +34,10 @@ public class Utils { * @param tickSpace * @return */ - public static int getTickStartOffset(int workingSpace, int tickSpace) { + public static double getTickStartOffset(double workingSpace, double tickSpace) { - int marginSpace = workingSpace - tickSpace; - return (int) (marginSpace / 2.0); + double marginSpace = workingSpace - tickSpace; + return marginSpace / 2.0; } public static double pow(double base, int exponent) { diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTickBarChartCalculator.java b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTickBarChartCalculator.java index 33e780d0a2ce34ad25390a6d6dd5abc9749b61fe..3bb37064e8bb3541cc23efcdd510e61a28352f60 100644 --- a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTickBarChartCalculator.java +++ b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTickBarChartCalculator.java @@ -53,7 +53,7 @@ public class AxisTickBarChartCalculator extends AxisTickCalculator { int tickSpace = (int) (styleManager.getAxisTickSpaceRatio() * workingSpace); // in plot space // where the tick should begin in the working space in pixels - int margin = Utils.getTickStartOffset(workingSpace, tickSpace); // in plot space double gridStep = getGridStepForDecimal(tickSpace); + double margin = Utils.getTickStartOffset(workingSpace, tickSpace); // in plot space double gridStep = getGridStepForDecimal(tickSpace); // get all categories List<Object> categories = new ArrayList<Object>(); 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 fd93cccb3a563004c63250d8c7c341fdc142c50d..e3077239628bb88aeea149babc9680a9e2ee287e 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 @@ -126,7 +126,7 @@ public abstract class AxisTickCalculator { * @param tickSpace in plot space * @return */ - public double getNumericalGridStep(int tickSpace) { + public double getNumericalGridStep(double tickSpace) { // this prevents an infinite loop when the plot gets sized really small. if (tickSpace < 10) { 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 26094572422047a6af92935fa47fe20cfeebf16c..a981741591c001f498d548f9cc24680564fa54b8 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 @@ -50,7 +50,7 @@ public class AxisTickDateCalculator extends AxisTickCalculator { int tickSpace = (int) (styleManager.getAxisTickSpaceRatio() * workingSpace); // in plot space // where the tick should begin in the working space in pixels - int margin = Utils.getTickStartOffset(workingSpace, tickSpace); // in plot space double gridStep = getGridStepForDecimal(tickSpace); + double margin = Utils.getTickStartOffset(workingSpace, tickSpace); // in plot space double gridStep = getGridStepForDecimal(tickSpace); // the span of the data long span = (long) Math.abs(maxValue - minValue); // in data space 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 fdc53cfc6963bcdeff318c7440096c2e8e179024..cb800467506ce6c7988a2ed58d47adb93614a10e 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 @@ -54,10 +54,10 @@ public class AxisTickLogarithmicCalculator extends AxisTickCalculator { } // 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 - int margin = Utils.getTickStartOffset(workingSpace, tickSpace); // in plot space double gridStep = getGridStepForDecimal(tickSpace); + double margin = Utils.getTickStartOffset(workingSpace, tickSpace); // in plot space double gridStep = getGridStepForDecimal(tickSpace); int logMin = (int) Math.floor(Math.log10(minValue)); int logMax = (int) Math.ceil(Math.log10(maxValue)); 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 8b18830ca7656e4b0fba9636c3fac7d39f5295d3..47d7fbd176f05d2549e4ce0f00c2960806958528 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 @@ -54,10 +54,10 @@ public class AxisTickNumericalCalculator extends AxisTickCalculator { } // 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 - int margin = Utils.getTickStartOffset(workingSpace, tickSpace); // in plot space double gridStep = getGridStepForDecimal(tickSpace); + double margin = Utils.getTickStartOffset(workingSpace, tickSpace); // in plot space double gridStep = getGridStepForDecimal(tickSpace); double gridStep = getNumericalGridStep(tickSpace); double firstPosition = getFirstPosition(gridStep); diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/PlotContentBarChart.java b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/PlotContentBarChart.java index 808964cc6507dd58275553e2bc6473107680a920..18e016664dbb2fc37145691e64c4021c837398e8 100644 --- a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/PlotContentBarChart.java +++ b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/PlotContentBarChart.java @@ -49,12 +49,12 @@ public class PlotContentBarChart extends PlotContent { StyleManager styleManager = plot.getChartPainter().getStyleManager(); // X-Axis - int xTickSpace = (int) (styleManager.getAxisTickSpaceRatio() * bounds.getWidth()); - int xLeftMargin = Utils.getTickStartOffset((int) bounds.getWidth(), xTickSpace); + double xTickSpace = styleManager.getAxisTickSpaceRatio() * bounds.getWidth(); + double xLeftMargin = Utils.getTickStartOffset(bounds.getWidth(), xTickSpace); // Y-Axis - int yTickSpace = (int) (styleManager.getAxisTickSpaceRatio() * bounds.getHeight()); - int yTopMargin = Utils.getTickStartOffset((int) bounds.getHeight(), yTickSpace); + double yTickSpace = styleManager.getAxisTickSpaceRatio() * bounds.getHeight(); + double yTopMargin = Utils.getTickStartOffset(bounds.getHeight(), yTickSpace); // get all categories List<Object> categories = new ArrayList<Object>(); @@ -69,7 +69,7 @@ public class PlotContentBarChart extends PlotContent { } } int numBars = categories.size(); - double gridStep = xTickSpace / (double) numBars; + double gridStep = xTickSpace / numBars; // plot series int seriesCounter = 0; @@ -97,7 +97,7 @@ public class PlotContentBarChart extends PlotContent { } else if (getChartPainter().getStyleManager().isYAxisLogarithmic()) { // int logMin = (int) Math.floor(Math.log10(getChartPainter().getAxisPair().getyAxis().getMin().doubleValue())); - int logMin = (int) Math.floor(Math.log10(getChartPainter().getAxisPair().getYAxis().getMin())); + double logMin = Math.floor(Math.log10(getChartPainter().getAxisPair().getYAxis().getMin())); // System.out.println("logMin: " + logMin); // System.out.println("min : " + getChartPainter().getAxisPair().getyAxis().getMin().doubleValue()); yMin = logMin; @@ -163,10 +163,10 @@ public class PlotContentBarChart extends PlotContent { double yTransform = bounds.getHeight() - (yTopMargin + (yTop - yMin) / (yMax - yMin) * yTickSpace); - double yOffset = bounds.getY() + yTransform + 1; + double yOffset = bounds.getY() + yTransform; double zeroTransform = bounds.getHeight() - (yTopMargin + (yBottom - yMin) / (yMax - yMin) * yTickSpace); - double zeroOffset = bounds.getY() + zeroTransform + 1; + double zeroOffset = bounds.getY() + zeroTransform; // paint bar double barWidth = gridStep / getChartPainter().getAxisPair().getSeriesMap().size() / 1.1; 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 f3a74b7674b8ca81fd24966de472b2b6dfb667b0..f5db6e6c92b85d7a1d12c6ea94f13af305ee3394 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 @@ -55,12 +55,12 @@ public class PlotContentLineChart extends PlotContent { g.setClip(bounds); // X-Axis - int xTickSpace = (int) (styleManager.getAxisTickSpaceRatio() * bounds.getWidth()); - int xLeftMargin = Utils.getTickStartOffset((int) bounds.getWidth(), xTickSpace); + double xTickSpace = styleManager.getAxisTickSpaceRatio() * bounds.getWidth(); + double xLeftMargin = Utils.getTickStartOffset((int) bounds.getWidth(), xTickSpace); // Y-Axis - int yTickSpace = (int) (styleManager.getAxisTickSpaceRatio() * bounds.getHeight()); - int yTopMargin = Utils.getTickStartOffset((int) bounds.getHeight(), yTickSpace); + double yTickSpace = styleManager.getAxisTickSpaceRatio() * bounds.getHeight(); + double yTopMargin = Utils.getTickStartOffset((int) bounds.getHeight(), yTickSpace); for (Series series : getChartPainter().getAxisPair().getSeriesMap().values()) {