diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/bar/BarChart06.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/bar/BarChart06.java
index f885bdd38f874ceb1fc44016938c390213420e72..15b4ccbebcc5ee5a679cc3186261cc9754708a3e 100644
--- a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/bar/BarChart06.java
+++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/bar/BarChart06.java
@@ -48,13 +48,13 @@ public class BarChart06 implements ExampleChart {
     // Create Chart
     Chart chart = new ChartBuilder().chartType(ChartType.Bar).width(800).height(600).title("Score Histogram").xAxisTitle("Score").yAxisTitle("Count").build();
 
-    chart.addSeries("histogram 1", getGaussianData(10000), 10, -30, 30);
-    chart.addSeries("histogram 2", getGaussianData(10000), 10, -30, 30);
+    chart.addSeries("histogram 1", getGaussianData(10000), 30, -30, 30);
+    chart.addSeries("histogram 2", getGaussianData(5000), 30, -30, 30);
 
     // Customize Chart
     chart.getStyleManager().setLegendPosition(LegendPosition.InsideNW);
-    chart.getStyleManager().setBarWidthPercentage(.99);
-
+    chart.getStyleManager().setBarWidthPercentage(.96);
+    chart.getStyleManager().setOverlapped(false);
     return chart;
   }
 
diff --git a/xchart/src/main/java/com/xeiam/xchart/StyleManager.java b/xchart/src/main/java/com/xeiam/xchart/StyleManager.java
index 32acadf243890607e6b11285de7083c93a69c2a4..d0a800506f8c3b40d2cedcf0827103a4d057ac51 100644
--- a/xchart/src/main/java/com/xeiam/xchart/StyleManager.java
+++ b/xchart/src/main/java/com/xeiam/xchart/StyleManager.java
@@ -126,7 +126,10 @@ public class StyleManager {
   private boolean isPlotTicksMarksVisible;
   private Color plotGridLinesColor;
   private Stroke plotGridLinesStroke;
+
+  // Bar Charts ///////////////////////////////
   private double barWidthPercentage;
+  private boolean isOverlapped;
 
   // Error Bars ///////////////////////////////
   private Color errorBarsColor;
@@ -205,7 +208,10 @@ public class StyleManager {
     isPlotTicksMarksVisible = theme.isPlotTicksMarksVisible();
     plotGridLinesColor = theme.getPlotGridLinesColor();
     plotGridLinesStroke = theme.getPlotGridLinesStroke();
+
+    // Bar Charts ///////////////////////////////
     barWidthPercentage = theme.getBarWidthPercentage();
+    isOverlapped = theme.isOverlapped();
 
     // Error Bars ///////////////////////////////
     errorBarsColor = theme.getErrorBarsColor();
@@ -985,6 +991,21 @@ public class StyleManager {
     return barWidthPercentage;
   }
 
+  /**
+   * set whether or no bars are overlapped. Otherwise they are places side-by-side
+   * 
+   * @param isOverlapped
+   */
+  public void setOverlapped(boolean isOverlapped) {
+
+    this.isOverlapped = isOverlapped;
+  }
+
+  public boolean isOverlapped() {
+
+    return isOverlapped;
+  }
+
   // Error Bars ///////////////////////////////
 
   /**
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 262ffd1ef6bf7beca42025af2d849ad81721999e..a95330dbd2f94f3c850af4d74475cd5b3da03782 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
@@ -167,12 +167,23 @@ public class PlotContentBarChart extends PlotContent {
         double zeroOffset = bounds.getY() + zeroTransform;
 
         // paint bar
-        double barWidthPercentage = getChartPainter().getStyleManager().getBarWidthPercentage();
-        double barWidth = gridStep / getChartPainter().getAxisPair().getSeriesMap().size() * barWidthPercentage;
-        double barMargin = gridStep * (1 - barWidthPercentage) / 2;
-        double xOffset = bounds.getX() + xLeftMargin + gridStep * barCounter++ + seriesCounter * barWidth + barMargin;
-        g.setColor(series.getStrokeColor());
-
+        boolean isOverlap = true;
+        double xOffset;
+        double barWidth;
+        if (getChartPainter().getStyleManager().isOverlapped()) {
+          double barWidthPercentage = getChartPainter().getStyleManager().getBarWidthPercentage();
+          barWidth = gridStep * barWidthPercentage;
+          double barMargin = gridStep * (1 - barWidthPercentage) / 2;
+          xOffset = bounds.getX() + xLeftMargin + gridStep * barCounter++ + barMargin;
+          g.setColor(series.getStrokeColor());
+        }
+        else {
+          double barWidthPercentage = getChartPainter().getStyleManager().getBarWidthPercentage();
+          barWidth = gridStep / getChartPainter().getAxisPair().getSeriesMap().size() * barWidthPercentage;
+          double barMargin = gridStep * (1 - barWidthPercentage) / 2;
+          xOffset = bounds.getX() + xLeftMargin + gridStep * barCounter++ + seriesCounter * barWidth + barMargin;
+          g.setColor(series.getStrokeColor());
+        }
         Path2D.Double path = new Path2D.Double();
         path.moveTo(xOffset, yOffset);
         path.lineTo(xOffset + barWidth, yOffset);
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 41fe250b1e20ed1430430e1e268511060961f2e9..15d0f17bae46b48944771f2321e55814b8af6561 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
@@ -287,6 +287,12 @@ public class GGPlot2Theme implements Theme {
     return 0.9;
   }
 
+  @Override
+  public boolean isOverlapped() {
+
+    return false;
+  }
+
   // Error Bars ///////////////////////////////
 
   @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 43cf3b2172629bf32dd356be1f83a137f534705b..d636ea92ed5e22d1f27f3f66c2eaa9886538b204 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
@@ -288,6 +288,12 @@ public class MatlabTheme implements Theme {
     return 0.9;
   }
 
+  @Override
+  public boolean isOverlapped() {
+
+    return false;
+  }
+
   // Error Bars ///////////////////////////////
 
   @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 629073fe62112d88605cb6c6ad421304c014d15f..23550d54ba8bd2dea84bdb4dde2fe1710136ab9d 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
@@ -120,6 +120,8 @@ public interface Theme {
 
   public double getBarWidthPercentage();
 
+  public boolean isOverlapped();
+
   // Error Bars ///////////////////////////////
 
   public Color getErrorBarsColor();
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 39fb848b98910a8946789abc1d51c483ff129834..148799543c98be5430a35aa124fc08317c45d02f 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
@@ -287,6 +287,12 @@ public class XChartTheme implements Theme {
     return 0.9;
   }
 
+  @Override
+  public boolean isOverlapped() {
+
+    return false;
+  }
+
   // Error Bars ///////////////////////////////
 
   @Override