diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/bar/BarChart04.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/bar/BarChart04.java
index f26db94013a5286bc4eb1c9d1b22d0117b555f57..181c2fd1588a04d9ad87f03ff1a00320f1ad7078 100644
--- a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/bar/BarChart04.java
+++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/bar/BarChart04.java
@@ -36,6 +36,7 @@ import com.xeiam.xchart.style.StyleManager.ChartType;
  * <li>Positive values
  * <li>Multiple series
  * <li>Missing point in series
+ * <li>Manually setting y-axis min and max values
  */
 public class BarChart04 implements ExampleChart {
 
@@ -54,6 +55,9 @@ public class BarChart04 implements ExampleChart {
     chart.addSeries("male", new double[] { 10, 20, 30, 50 }, new double[] { 40, 30, 20, 60 });
     chart.addSeries("female", new double[] { 10, 20, 30, 40, 50 }, new double[] { 50, 10, 20, 40, 35 });
 
+    chart.getStyleManager().setyAxisMin(5);
+    chart.getStyleManager().setyAxisMax(70);
+
     return chart;
   }
 }
diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/line/LineChart01.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/line/LineChart01.java
index 29cccef44f5f0af12a5930bf3f8818972d22806c..1acc6a6b6833258e9a0ef766e6254afeae2ed545 100644
--- a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/line/LineChart01.java
+++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/line/LineChart01.java
@@ -60,7 +60,7 @@ public class LineChart01 implements ExampleChart {
     // Customize Chart
     chart.getStyleManager().setChartTitleVisible(false);
     chart.getStyleManager().setLegendPosition(LegendPosition.InsideNW);
-    chart.getStyleManager().setyAxisLogarithmic(true);
+    chart.getStyleManager().setYAxisLogarithmic(true);
 
     // Series
     Series series = chart.addSeries("10^x", xData1, yData1);
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 42951986c34af1a040a5c0c27517a7c5a9c5e859..1dd235069b7f90f9d7d7e588f40f89a8fe5a0885 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
@@ -62,7 +62,7 @@ public class ScatterChart02 implements ExampleChart {
     Chart chart = new Chart(800, 600);
     chart.setChartTitle("Logarithmic Data");
     chart.getStyleManager().setChartType(ChartType.Scatter);
-    chart.getStyleManager().setxAxisLogarithmic(true);
+    chart.getStyleManager().setXAxisLogarithmic(true);
 
     // Customize Chart
     chart.getStyleManager().setLegendPosition(LegendPosition.InsideNW);
diff --git a/xchart/src/main/java/com/xeiam/xchart/Chart.java b/xchart/src/main/java/com/xeiam/xchart/Chart.java
index de6062539a31dd95312d25f878a05610bbf99156..de59ed4f1579a52ca65f0c2d25999cd9990f7587 100644
--- a/xchart/src/main/java/com/xeiam/xchart/Chart.java
+++ b/xchart/src/main/java/com/xeiam/xchart/Chart.java
@@ -284,30 +284,6 @@ public class Chart {
     styleManager.setTheme(theme);
   }
 
-  /**
-   * Set the min and max value of the X axis
-   * 
-   * @param min
-   * @param max
-   */
-  public void setxAxisMinMax(double min, double max) {
-
-    axisPair.getxAxis().setMinOverride(min);
-    axisPair.getxAxis().setMaxOverride(max);
-  }
-
-  /**
-   * Set the min and max value of the Y axis
-   * 
-   * @param min
-   * @param max
-   */
-  public void setyAxisMinMax(double min, double max) {
-
-    axisPair.getyAxis().setMinOverride(min);
-    axisPair.getyAxis().setMaxOverride(max);
-  }
-
   // / Internal /////////////////////////////////////////
 
   /**
diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/Axis.java b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/Axis.java
index 9ba2412008ee441136d3346abb1996b68d872740..2d7b4e3b03a9ae7ff0aab8aaad5e9995023827c1 100644
--- a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/Axis.java
+++ b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/Axis.java
@@ -55,10 +55,6 @@ public class Axis implements ChartPart {
 
   private BigDecimal max = null;
 
-  private BigDecimal minOverride = null;
-
-  private BigDecimal maxOverride = null;
-
   /** the bounds */
   private Rectangle bounds;
 
@@ -240,31 +236,12 @@ public class Axis implements ChartPart {
 
   public BigDecimal getMin() {
 
-    if (minOverride == null) {
-      return min;
-    } else {
-      return minOverride;
-    }
-
+    return min;
   }
 
   public BigDecimal getMax() {
 
-    if (maxOverride == null) {
-      return max;
-    } else {
-      return maxOverride;
-    }
-  }
-
-  public BigDecimal getMinOverride() {
-
-    return minOverride;
-  }
-
-  public BigDecimal getMaxOverride() {
-
-    return maxOverride;
+    return max;
   }
 
   public AxisTick getAxisTick() {
@@ -292,13 +269,4 @@ public class Axis implements ChartPart {
     this.axisTitle = axisTitle;
   }
 
-  public void setMinOverride(double minOverride) {
-
-    this.minOverride = new BigDecimal(minOverride);
-  }
-
-  public void setMaxOverride(double maxOverride) {
-
-    this.maxOverride = new BigDecimal(maxOverride);
-  }
 }
diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTick.java b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTick.java
index dc677a4d341048d5c603e0ae2f5995b801ae110d..385db6db7ce7a667a15263bbc2bdc8d81813d59e 100644
--- a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTick.java
+++ b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTick.java
@@ -88,11 +88,11 @@ public class AxisTick implements ChartPart {
 
       gridStep = new BarChartAxisTickCalculator(axis.getDirection(), workingSpace, axis.getMin(), axis.getMax(), getChart());
 
-    } else if (axis.getDirection() == Axis.Direction.X && getChart().getStyleManager().isxAxisLogarithmic() && axis.getAxisType() != AxisType.Date) {
+    } else if (axis.getDirection() == Axis.Direction.X && getChart().getStyleManager().isXAxisLogarithmic() && axis.getAxisType() != AxisType.Date) {
 
       gridStep = new LogarithmicAxisTickCalculator(axis.getDirection(), workingSpace, axis.getMin(), axis.getMax(), getChart().getStyleManager());
 
-    } else if (axis.getDirection() == Axis.Direction.Y && getChart().getStyleManager().isyAxisLogarithmic() && axis.getAxisType() != AxisType.Date) {
+    } else if (axis.getDirection() == Axis.Direction.Y && getChart().getStyleManager().isYAxisLogarithmic() && axis.getAxisType() != AxisType.Date) {
 
       gridStep = new LogarithmicAxisTickCalculator(axis.getDirection(), workingSpace, axis.getMin(), axis.getMax(), getChart().getStyleManager());
 
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 f036d0ddca3e421ac6e72d433203de04b57c5aca..2e80255e4192dff2131cc43c319f5c59186429e8 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
@@ -86,7 +86,13 @@ public class PlotContentBarChart extends PlotContent {
       } else if (yMin.compareTo(BigDecimal.ZERO) < 0 && yMax.compareTo(BigDecimal.ZERO) < 0) {
         yMax = BigDecimal.ZERO;
       }
-
+      // override min and maxValue if specified
+      if (getChart().getStyleManager().getyAxisMin() != null) {
+        yMin = new BigDecimal(getChart().getStyleManager().getyAxisMin());
+      }
+      if (getChart().getStyleManager().getyAxisMax() != null) {
+        yMax = new BigDecimal(getChart().getStyleManager().getyAxisMax());
+      }
       Iterator<?> categoryItr = categories.iterator();
       Iterator<Number> yItr = yData.iterator();
 
@@ -99,7 +105,7 @@ public class PlotContentBarChart extends PlotContent {
           int yTransform = (int) (bounds.getHeight() - (yTopMargin + y.subtract(yMin).doubleValue() / yMax.subtract(yMin).doubleValue() * yTickSpace));
           int yOffset = (int) (bounds.getY() + yTransform);
 
-          int zeroTransform = (int) (bounds.getHeight() - (yTopMargin + (BigDecimal.ZERO.subtract(yMin).doubleValue()) / (yMax.subtract(yMin).doubleValue()) * yTickSpace));
+          int zeroTransform = (int) (bounds.getHeight() - (yTopMargin + (yMin.subtract(yMin).doubleValue()) / (yMax.subtract(yMin).doubleValue()) * yTickSpace));
           int zeroOffset = (int) (bounds.getY() + zeroTransform);
 
           // paint bar
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 54d1686a906f506681a9ae66bce237abe3d278e9..f8486f9ece83c33d67c2f6359d5726d0382fc4cd 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
@@ -64,17 +64,32 @@ public class PlotContentLineChart extends PlotContent {
       Collection<?> xData = series.getxData();
       BigDecimal xMin = getChart().getAxisPair().getxAxis().getMin();
       BigDecimal xMax = getChart().getAxisPair().getxAxis().getMax();
-      if (getChart().getStyleManager().isxAxisLogarithmic()) {
+      if (getChart().getStyleManager().isXAxisLogarithmic()) {
         xMin = new BigDecimal(Math.log10(xMin.doubleValue()));
         xMax = new BigDecimal(Math.log10(xMax.doubleValue()));
       }
       Collection<Number> yData = series.getyData();
       BigDecimal yMin = getChart().getAxisPair().getyAxis().getMin();
       BigDecimal yMax = getChart().getAxisPair().getyAxis().getMax();
-      if (getChart().getStyleManager().isyAxisLogarithmic()) {
+      if (getChart().getStyleManager().isYAxisLogarithmic()) {
         yMin = new BigDecimal(Math.log10(yMin.doubleValue()));
         yMax = new BigDecimal(Math.log10(yMax.doubleValue()));
       }
+
+      // override min and maxValue if specified
+      if (getChart().getStyleManager().getxAxisMin() != null) {
+        xMin = new BigDecimal(getChart().getStyleManager().getxAxisMin());
+      }
+      if (getChart().getStyleManager().getyAxisMin() != null) {
+        yMin = new BigDecimal(getChart().getStyleManager().getyAxisMin());
+      }
+      if (getChart().getStyleManager().getxAxisMax() != null) {
+        xMin = new BigDecimal(getChart().getStyleManager().getxAxisMax());
+      }
+      if (getChart().getStyleManager().getyAxisMax() != null) {
+        yMax = new BigDecimal(getChart().getStyleManager().getyAxisMax());
+      }
+
       Collection<Number> errorBars = series.getErrorBars();
 
       int previousX = Integer.MIN_VALUE;
@@ -97,13 +112,13 @@ public class PlotContentLineChart extends PlotContent {
           // System.out.println(x);
         }
 
-        if (getChart().getStyleManager().isxAxisLogarithmic()) {
+        if (getChart().getStyleManager().isXAxisLogarithmic()) {
           x = new BigDecimal(Math.log10(x.doubleValue()));
         }
 
         BigDecimal y = new BigDecimal(yItr.next().doubleValue());
 
-        if (getChart().getStyleManager().isyAxisLogarithmic()) {
+        if (getChart().getStyleManager().isYAxisLogarithmic()) {
           y = new BigDecimal(Math.log10(y.doubleValue()));
         }
 
diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/axistickcalculator/AxisTickCalculator.java b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/axistickcalculator/AxisTickCalculator.java
index 827c79d1a5298bfbd0675859b247bb9d033c5401..4305f2e45555d3856177c93279f1dbd863765d7d 100644
--- a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/axistickcalculator/AxisTickCalculator.java
+++ b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/axistickcalculator/AxisTickCalculator.java
@@ -78,6 +78,19 @@ public abstract class AxisTickCalculator {
         overrideMaxValue = BigDecimal.ZERO;
       }
     }
+    // override min and maxValue if specified
+    if (axisDirection == Direction.X && styleManager.getxAxisMin() != null) {
+      overrideMinValue = new BigDecimal(styleManager.getxAxisMin());
+    }
+    if (axisDirection == Direction.Y && styleManager.getyAxisMin() != null) {
+      overrideMinValue = new BigDecimal(styleManager.getyAxisMin());
+    }
+    if (axisDirection == Direction.X && styleManager.getxAxisMax() != null) {
+      overrideMaxValue = new BigDecimal(styleManager.getxAxisMax());
+    }
+    if (axisDirection == Direction.Y && styleManager.getyAxisMax() != null) {
+      overrideMaxValue = new BigDecimal(styleManager.getyAxisMax());
+    }
 
     this.axisDirection = axisDirection;
     this.workingSpace = workingSpace;
diff --git a/xchart/src/main/java/com/xeiam/xchart/style/StyleManager.java b/xchart/src/main/java/com/xeiam/xchart/style/StyleManager.java
index 9347cac4393c6689f3e60ca4edc992e46c78c17a..54c1fc178bb059a0a3030c3fa973e5af58d9dcc9 100644
--- a/xchart/src/main/java/com/xeiam/xchart/style/StyleManager.java
+++ b/xchart/src/main/java/com/xeiam/xchart/style/StyleManager.java
@@ -86,6 +86,10 @@ public class StyleManager {
   private int axisTitlePadding;
   private boolean isXAxisLogarithmic;
   private boolean isYAxisLogarithmic;
+  private Double xAxisMin;
+  private Double xAxisMax;
+  private Double yAxisMin;
+  private Double yAxisMax;
 
   // Chart Plot Area ///////////////////////////////
   private boolean isPlotGridLinesVisible;
@@ -153,6 +157,10 @@ public class StyleManager {
     axisTitlePadding = theme.getAxisTitlePadding();
     isXAxisLogarithmic = false;
     isYAxisLogarithmic = false;
+    xAxisMin = null;
+    xAxisMax = null;
+    yAxisMin = null;
+    yAxisMax = null;
 
     // Chart Plot Area ///////////////////////////////
     isPlotGridLinesVisible = theme.isPlotGridLinesVisible();
@@ -658,12 +666,12 @@ public class StyleManager {
    * 
    * @param isxAxisLogarithmic
    */
-  public void setxAxisLogarithmic(boolean isxAxisLogarithmic) {
+  public void setXAxisLogarithmic(boolean isXAxisLogarithmic) {
 
-    this.isXAxisLogarithmic = isxAxisLogarithmic;
+    this.isXAxisLogarithmic = isXAxisLogarithmic;
   }
 
-  public boolean isxAxisLogarithmic() {
+  public boolean isXAxisLogarithmic() {
 
     return isXAxisLogarithmic;
   }
@@ -673,16 +681,56 @@ public class StyleManager {
    * 
    * @param isyAxisLogarithmic
    */
-  public void setyAxisLogarithmic(boolean isyAxisLogarithmic) {
+  public void setYAxisLogarithmic(boolean isYAxisLogarithmic) {
 
-    this.isYAxisLogarithmic = isyAxisLogarithmic;
+    this.isYAxisLogarithmic = isYAxisLogarithmic;
   }
 
-  public boolean isyAxisLogarithmic() {
+  public boolean isYAxisLogarithmic() {
 
     return isYAxisLogarithmic;
   }
 
+  public void setxAxisMin(double xAxisMin) {
+
+    this.xAxisMin = xAxisMin;
+  }
+
+  public Double getxAxisMin() {
+
+    return xAxisMin;
+  }
+
+  public void setxAxisMax(double xAxisMax) {
+
+    this.xAxisMax = xAxisMax;
+  }
+
+  public Double getxAxisMax() {
+
+    return xAxisMax;
+  }
+
+  public void setyAxisMin(double yAxisMin) {
+
+    this.yAxisMin = yAxisMin;
+  }
+
+  public Double getyAxisMin() {
+
+    return yAxisMin;
+  }
+
+  public void setyAxisMax(double yAxisMax) {
+
+    this.yAxisMax = yAxisMax;
+  }
+
+  public Double getyAxisMax() {
+
+    return yAxisMax;
+  }
+
   // Chart Plot Area ///////////////////////////////
 
   /**
diff --git a/xchart/src/test/java/com/xeiam/xchart/chart/Example2.java b/xchart/src/test/java/com/xeiam/xchart/chart/Example2.java
index 7561f5b4f8200479a9af86ea4a8f7c8647dfe9e5..63a2e8ba6a0c34a5118e44e52e6598b27a99700a 100644
--- a/xchart/src/test/java/com/xeiam/xchart/chart/Example2.java
+++ b/xchart/src/test/java/com/xeiam/xchart/chart/Example2.java
@@ -39,7 +39,8 @@ public class Example2 {
 
     for (int i = 0; i < numCharts; i++) {
       Chart chart = new ChartBuilder().xAxisTitle("X").yAxisTitle("Y").width(600).height(400).build();
-      chart.setyAxisMinMax(-10, 10);
+      chart.getStyleManager().setyAxisMin(-10);
+      chart.getStyleManager().setyAxisMax(10);
       Series series = chart.addSeries("" + i, null, getRandomWalk(200));
       series.setMarker(SeriesMarker.NONE);
       charts.add(chart);
diff --git a/xchart/src/test/java/com/xeiam/xchart/chart/NoBug.java b/xchart/src/test/java/com/xeiam/xchart/chart/NoBug.java
index 8a4832d3c9da1839ec2288c4626100f9e5cbed6d..965bc737937e798168473f35fa2a58a79ac885f5 100644
--- a/xchart/src/test/java/com/xeiam/xchart/chart/NoBug.java
+++ b/xchart/src/test/java/com/xeiam/xchart/chart/NoBug.java
@@ -51,8 +51,10 @@ public class NoBug {
     }
     String seriesName = "series " + n;
     Series series = chart.addSeries(seriesName, x, y);
-    chart.setxAxisMinMax(0, 1);
-    chart.setyAxisMinMax(-5, 5);
+    chart.getStyleManager().setxAxisMin(0);
+    chart.getStyleManager().setxAxisMax(1);
+    chart.getStyleManager().setyAxisMin(-5);
+    chart.getStyleManager().setyAxisMax(5);
     return seriesName;
   }