diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/theme/ThemeChart03.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/theme/ThemeChart03.java
index cc1c44b06e8442c58ae01abd4039e53a1c236838..01d9c64ad5ad8f7b036a5b00d415ff21d80869fa 100644
--- a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/theme/ThemeChart03.java
+++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/theme/ThemeChart03.java
@@ -54,7 +54,7 @@ public class ThemeChart03 implements ExampleChart {
     // Create Chart
     Chart chart = new ChartBuilder().width(800).height(600).theme(ChartTheme.Matlab).title("Matlab Theme").xAxisTitle("X").yAxisTitle("Y").build();
     chart.getStyleManager().setPlotGridLinesVisible(false);
-
+    chart.getStyleManager().setXAxisTickMarkSpacingHint(100);
     // generate data
     Collection<Date> xData = new ArrayList<Date>();
     Collection<Number> y1Data = new ArrayList<Number>();
diff --git a/xchart/src/main/java/com/xeiam/xchart/StyleManager.java b/xchart/src/main/java/com/xeiam/xchart/StyleManager.java
index b7a699ffa17199b16142c862bf2a420c4730348d..3c13565b9f07d913c6da0912bc8a014e9f827a7a 100644
--- a/xchart/src/main/java/com/xeiam/xchart/StyleManager.java
+++ b/xchart/src/main/java/com/xeiam/xchart/StyleManager.java
@@ -108,6 +108,8 @@ public class StyleManager {
   private boolean isAxisTicksMarksVisible;
   private int plotPadding;
   private int axisTitlePadding;
+  private int xAxisTickMarkSpacingHint;
+  private int yAxisTickMarkSpacingHint;
   private boolean isXAxisLogarithmic;
   private boolean isYAxisLogarithmic;
   private Double xAxisMin;
@@ -183,6 +185,8 @@ public class StyleManager {
     isAxisTicksMarksVisible = theme.isAxisTicksMarksVisible();
     plotPadding = theme.getPlotPadding();
     axisTitlePadding = theme.getAxisTitlePadding();
+    xAxisTickMarkSpacingHint = theme.getXAxisTickMarkSpacingHint();
+    yAxisTickMarkSpacingHint = theme.getYAxisTickMarkSpacingHint();
     isXAxisLogarithmic = false;
     isYAxisLogarithmic = false;
     xAxisMin = null;
@@ -743,6 +747,36 @@ public class StyleManager {
     return axisTitlePadding;
   }
 
+  /**
+   * set the spacing between tick marks for the X-Axis
+   * 
+   * @param xAxisTickMarkSpacingHint
+   */
+  public void setXAxisTickMarkSpacingHint(int xAxisTickMarkSpacingHint) {
+
+    this.xAxisTickMarkSpacingHint = xAxisTickMarkSpacingHint;
+  }
+
+  public int getXAxisTickMarkSpacingHint() {
+
+    return xAxisTickMarkSpacingHint;
+  }
+
+  /**
+   * set the spacing between tick marks for the Y-Axis
+   * 
+   * @param xAxisTickMarkSpacingHint
+   */
+  public void setYAxisTickMarkSpacingHint(int yAxisTickMarkSpacingHint) {
+
+    this.yAxisTickMarkSpacingHint = yAxisTickMarkSpacingHint;
+  }
+
+  public int getYAxisTickMarkSpacingHint() {
+
+    return yAxisTickMarkSpacingHint;
+  }
+
   /**
    * sets the X-Axis to be rendered with a logarithmic scale or not
    * 
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 d52a6752f62978f5a29e54a3bb862082e7ee73a7..f0096ee0c57f56eafcfbb87d79ce24dbea5b3517 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
@@ -98,7 +98,7 @@ public class AxisTickBarChartCalculator extends AxisTickCalculator {
       }
       else if (chartPainter.getAxisPair().getxAxis().getAxisType() == AxisType.Date) {
         long span = Math.abs(maxValue.subtract(minValue).longValue()); // in data space
-        long gridStepHint = (long) (span / (double) tickSpace * DEFAULT_TICK_MARK_STEP_HINT_X);
+        long gridStepHint = (long) (span / (double) tickSpace * styleManager.getXAxisTickMarkSpacingHint());
         long timeUnit = dateFormatter.getTimeUnit(gridStepHint);
         tickLabels.add(dateFormatter.formatDate((BigDecimal) category, timeUnit));
       }
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 3952ff8b3122c61d3c22585fa02e6ce5405d6730..d6c51e5e24242a3b117ed9a2d47a5d44c556d3d2 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
@@ -29,12 +29,6 @@ import com.xeiam.xchart.internal.chartpart.Axis.Direction;
  */
 public abstract class AxisTickCalculator {
 
-  /** the default tick mark step hint for x axis */
-  protected static final int DEFAULT_TICK_MARK_STEP_HINT_X = 74;
-
-  /** the default tick mark step hint for y axis */
-  protected static final int DEFAULT_TICK_MARK_STEP_HINT_Y = 44;
-
   /** the List of tick label position in pixels */
   protected List<Integer> tickLocations = new LinkedList<Integer>();;
 
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 f65bed8be4569dc660ed75aa68b7d178281e098b..cf3e13f3c66096f4051286183fe9c5d36ff86264 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
@@ -57,7 +57,7 @@ public class AxisTickDateCalculator extends AxisTickCalculator {
     // the span of the data
     long span = Math.abs(maxValue.subtract(minValue).longValue()); // in data space
 
-    long gridStepHint = (long) (span / (double) tickSpace * DEFAULT_TICK_MARK_STEP_HINT_X);
+    long gridStepHint = (long) (span / (double) tickSpace * styleManager.getXAxisTickMarkSpacingHint());
 
     long timeUnit = dateFormatter.getTimeUnit(gridStepHint);
     BigDecimal gridStep = null;
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 8f197908bb625a4d03f592f39dd9e828e235ec93..91311ab119102aec9fba8cb858f94812b12d94e1 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
@@ -90,7 +90,7 @@ public class AxisTickNumericalCalculator extends AxisTickCalculator {
     // the span of the data
     double span = Math.abs(maxValue.subtract(minValue).doubleValue()); // in data space
 
-    int tickMarkSpaceHint = (axisDirection == Direction.X ? DEFAULT_TICK_MARK_STEP_HINT_X : DEFAULT_TICK_MARK_STEP_HINT_Y);
+    int tickMarkSpaceHint = (axisDirection == Direction.X ? styleManager.getXAxisTickMarkSpacingHint() : styleManager.getYAxisTickMarkSpacingHint());
 
     // for very short plots, squeeze some more ticks in than normal
     if (axisDirection == Direction.Y && tickSpace < 160) {
diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/style/GGPlot2Theme.java b/xchart/src/main/java/com/xeiam/xchart/internal/style/GGPlot2Theme.java
index 6f67c743765630e97c97b08e812c16ebf54fda0c..bd8ae710dfafc215cd9a72ddcf9a403f1696d98e 100644
--- a/xchart/src/main/java/com/xeiam/xchart/internal/style/GGPlot2Theme.java
+++ b/xchart/src/main/java/com/xeiam/xchart/internal/style/GGPlot2Theme.java
@@ -223,6 +223,18 @@ public class GGPlot2Theme implements Theme {
     return 10;
   }
 
+  @Override
+  public int getXAxisTickMarkSpacingHint() {
+
+    return 74;
+  }
+
+  @Override
+  public int getYAxisTickMarkSpacingHint() {
+
+    return 44;
+  }
+
   // Chart Plot Area ///////////////////////////////
 
   @Override
diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/style/MatlabTheme.java b/xchart/src/main/java/com/xeiam/xchart/internal/style/MatlabTheme.java
index d91b07ce354a5146cfd594a17f1f8756d0d50d41..9fe1e6a970122975840070300111b7413d1de17c 100644
--- a/xchart/src/main/java/com/xeiam/xchart/internal/style/MatlabTheme.java
+++ b/xchart/src/main/java/com/xeiam/xchart/internal/style/MatlabTheme.java
@@ -223,6 +223,18 @@ public class MatlabTheme implements Theme {
     return 10;
   }
 
+  @Override
+  public int getXAxisTickMarkSpacingHint() {
+
+    return 74;
+  }
+
+  @Override
+  public int getYAxisTickMarkSpacingHint() {
+
+    return 44;
+  }
+
   // Chart Plot Area ///////////////////////////////
 
   @Override
diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/style/Theme.java b/xchart/src/main/java/com/xeiam/xchart/internal/style/Theme.java
index ffdb132dd8b3aeb3560d2d768c4d260fde317c9b..7e3efd4f1ffa710cb399053640070278b3bb21d4 100644
--- a/xchart/src/main/java/com/xeiam/xchart/internal/style/Theme.java
+++ b/xchart/src/main/java/com/xeiam/xchart/internal/style/Theme.java
@@ -96,6 +96,10 @@ public interface Theme {
 
   public int getPlotPadding();
 
+  public int getXAxisTickMarkSpacingHint();
+
+  public int getYAxisTickMarkSpacingHint();
+
   // Chart Plot Area ///////////////////////////////
 
   public boolean isPlotGridLinesVisible();
diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/style/XChartTheme.java b/xchart/src/main/java/com/xeiam/xchart/internal/style/XChartTheme.java
index afbf59c9f0aafec8fc5101abd460a6798ef8117f..0048b2c9354241198cc698da5dcb7720520d0667 100644
--- a/xchart/src/main/java/com/xeiam/xchart/internal/style/XChartTheme.java
+++ b/xchart/src/main/java/com/xeiam/xchart/internal/style/XChartTheme.java
@@ -223,6 +223,18 @@ public class XChartTheme implements Theme {
     return 10;
   }
 
+  @Override
+  public int getXAxisTickMarkSpacingHint() {
+
+    return 74;
+  }
+
+  @Override
+  public int getYAxisTickMarkSpacingHint() {
+
+    return 44;
+  }
+
   // Chart Plot Area ///////////////////////////////
 
   @Override