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()) {