diff --git a/src/main/java/com/xeiam/xchart/AxisTick.java b/src/main/java/com/xeiam/xchart/AxisTick.java
index caae910f317ea648bd9ed4c9d894f4e9a79f8457..77e6dc397974b2527051b4c058bc5bb0d629bf89 100644
--- a/src/main/java/com/xeiam/xchart/AxisTick.java
+++ b/src/main/java/com/xeiam/xchart/AxisTick.java
@@ -57,12 +57,13 @@ public class AxisTick implements IChartPart, IHideable {
   private int workingSpace;
 
   /** the normal format for tick labels */
-  private Format normalFormat;
+  protected Format normalFormat;
 
   /** the scientific format for tick labels */
-  private Format scientificFormat;
+  protected Format scientificFormat;
 
-  private SimpleDateFormat simpleDateformat;
+  /** the format for Date tick labels */
+  protected SimpleDateFormat simpleDateformat;
 
   /** the bounds */
   private Rectangle bounds;
@@ -81,7 +82,7 @@ public class AxisTick implements IChartPart, IHideable {
     axisTickLabels = new AxisTickLabels(this);
     axisTickMarks = new AxisTickMarks(this);
 
-    normalFormat = new DecimalFormat("#.###########");
+    normalFormat = new DecimalFormat("#.###");
     scientificFormat = new DecimalFormat("0.###E0");
     simpleDateformat = new SimpleDateFormat("MM-dd");
 
@@ -243,7 +244,7 @@ public class AxisTick implements IChartPart, IHideable {
   private String format(BigDecimal value) {
 
     if (axis.axisType == AxisType.NUMBER) {
-      if (Math.abs(value.doubleValue()) < 9999 && Math.abs(value.doubleValue()) > .0001 || value.doubleValue() == 0) {
+      if (Math.abs(value.doubleValue()) <= 9999 && Math.abs(value.doubleValue()) > .0001 || value.doubleValue() == 0) {
         return normalFormat.format(value.doubleValue());
       } else {
         return scientificFormat.format(value.doubleValue());
diff --git a/src/main/java/com/xeiam/xchart/Chart.java b/src/main/java/com/xeiam/xchart/Chart.java
index 40be0131250150baed75eae868304287058352c8..096c8c8984ea5b10792d5d2e7242f39450c335ba 100644
--- a/src/main/java/com/xeiam/xchart/Chart.java
+++ b/src/main/java/com/xeiam/xchart/Chart.java
@@ -19,6 +19,8 @@ import java.awt.Color;
 import java.awt.Font;
 import java.awt.Graphics2D;
 import java.awt.RenderingHints;
+import java.text.DecimalFormat;
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Date;
@@ -296,4 +298,31 @@ public class Chart {
     this.axisPair.xAxis.axisTick.axisTickLabels.font = font;
     this.axisPair.yAxis.axisTick.axisTickLabels.font = font;
   }
+
+  /**
+   * @param pattern - the pattern describing the date and time format
+   */
+  public void setDateFormatter(String pattern) {
+
+    this.axisPair.xAxis.axisTick.simpleDateformat = new SimpleDateFormat(pattern);
+  }
+
+  /**
+   * @param pattern - the pattern describing the decimal format
+   */
+  public void setDecmialFormatter(String pattern) {
+
+    this.axisPair.xAxis.axisTick.normalFormat = new DecimalFormat(pattern);
+    this.axisPair.yAxis.axisTick.normalFormat = new DecimalFormat(pattern);
+  }
+
+  /**
+   * @param pattern - the pattern describing the scientific notation format
+   */
+  public void setDecmialScientificFormatter(String pattern) {
+
+    this.axisPair.xAxis.axisTick.scientificFormat = new DecimalFormat(pattern);
+    this.axisPair.yAxis.axisTick.scientificFormat = new DecimalFormat(pattern);
+  }
+
 }
diff --git a/src/test/java/com/xeiam/xchart/example/Example9.java b/src/test/java/com/xeiam/xchart/example/Example9.java
index a0a2f205336abd00cc3a3137eb60b6e7482cc398..d119bf81b9e7662bcba8a87aa3ee467eee682e17 100644
--- a/src/test/java/com/xeiam/xchart/example/Example9.java
+++ b/src/test/java/com/xeiam/xchart/example/Example9.java
@@ -59,7 +59,6 @@ public class Example9 {
     chart.setChartTitle("Sample Chart with Date X-Axis");
     chart.setXAxisTitle("X");
     chart.setYAxisTitle("Y");
-    chart.setXAxisTicksVisible(false);
     chart.setChartForegroundColor(ChartColor.getAWTColor(ChartColor.GREY));
     chart.setChartGridLinesColor(new Color(255, 255, 255));
     chart.setChartBackgroundColor(Color.WHITE);
@@ -71,6 +70,8 @@ public class Example9 {
     chart.setAxisLabelsFont(new Font(Font.SANS_SERIF, Font.ITALIC, 18));
     chart.setChartTickLabelsFont(new Font(Font.SANS_SERIF, Font.ITALIC, 18));
     chart.setChartTickLabelsFont(new Font(Font.SERIF, Font.PLAIN, 11));
+    chart.setDateFormatter("yyyy-MM-dd");
+    chart.setDecmialFormatter("#.000");
 
     Series series = chart.addDateSeries("Fake Data", xData, yData);
     series.setLineColor(SeriesColor.BLUE);