diff --git a/xchart-demo/src/main/java/org/knowm/xchart/demo/charts/pie/PieChart02.java b/xchart-demo/src/main/java/org/knowm/xchart/demo/charts/pie/PieChart02.java
index 9b4af0025fad87817224a2372f82a1b8c205f763..268fe317f1d6755e68b2e8e03a5f2a28048ecdd2 100644
--- a/xchart-demo/src/main/java/org/knowm/xchart/demo/charts/pie/PieChart02.java
+++ b/xchart-demo/src/main/java/org/knowm/xchart/demo/charts/pie/PieChart02.java
@@ -20,6 +20,7 @@ import java.awt.Color;
 
 import org.knowm.xchart.ChartBuilderPie;
 import org.knowm.xchart.Chart_Pie;
+import org.knowm.xchart.Series_Pie;
 import org.knowm.xchart.SwingWrapper;
 import org.knowm.xchart.demo.charts.ExampleChart;
 
@@ -48,7 +49,8 @@ public class PieChart02 implements ExampleChart<Chart_Pie> {
     Chart_Pie chart = new ChartBuilderPie().width(800).height(600).title(getClass().getSimpleName()).build();
     chart.addSeries("Gold", 24);
     chart.addSeries("Silver", 21);
-    chart.addSeries("Platinum", 39);
+    Series_Pie series = chart.addSeries("Platinum", 39);
+
     chart.addSeries("Copper", 17);
     chart.addSeries("Zinc", 40);
 
diff --git a/xchart/src/main/java/org/knowm/xchart/Chart_Pie.java b/xchart/src/main/java/org/knowm/xchart/Chart_Pie.java
index e6452a4ce1b4e2d2f87c4bdf4a23adfc2119ced7..aa2b8015f9cb7cc7a90fd66207934c2edea4f695 100644
--- a/xchart/src/main/java/org/knowm/xchart/Chart_Pie.java
+++ b/xchart/src/main/java/org/knowm/xchart/Chart_Pie.java
@@ -91,7 +91,7 @@ public class Chart_Pie extends Chart<StyleManagerPie, Series_Pie> {
    * @param value
    * @return
    */
-  public Series addSeries(String seriesName, Number value) {
+  public Series_Pie addSeries(String seriesName, Number value) {
 
     Series_Pie series = new Series_Pie(seriesName, value);
 
diff --git a/xchart/src/main/java/org/knowm/xchart/StyleManagerPie.java b/xchart/src/main/java/org/knowm/xchart/StyleManagerPie.java
index 2e3c8e6dd153f35befcb1bda22c62e402655a49f..b78b68bcad616ebd674222d6ac7f85d39fe73941 100644
--- a/xchart/src/main/java/org/knowm/xchart/StyleManagerPie.java
+++ b/xchart/src/main/java/org/knowm/xchart/StyleManagerPie.java
@@ -27,6 +27,9 @@ public class StyleManagerPie extends StyleManager {
 
   private ChartPieSeriesRenderStyle chartPieSeriesRenderStyle;
 
+  private double pieFillPercentage;
+  private boolean isCircular;
+
   /**
    * Constructor
    */
@@ -39,7 +42,9 @@ public class StyleManagerPie extends StyleManager {
   @Override
   protected void setAllStyles() {
 
-    chartPieSeriesRenderStyle = ChartPieSeriesRenderStyle.Pie; // set default to area
+    chartPieSeriesRenderStyle = ChartPieSeriesRenderStyle.Pie; // set default to pie, donut may be a future one
+    pieFillPercentage = theme.getPieFillPercentage();
+    isCircular = theme.isCircular();
   }
 
   public ChartPieSeriesRenderStyle getChartPieSeriesRenderStyle() {
@@ -57,6 +62,36 @@ public class StyleManagerPie extends StyleManager {
     this.chartPieSeriesRenderStyle = chartPieSeriesRenderStyle;
   }
 
+  public double getPieFillPercentage() {
+
+    return pieFillPercentage;
+  }
+
+  /**
+   * Sets the amount of space that the pie chart fills. Full fill is 100%, i.e. 1.0
+   *
+   * @param pieFillPercentage
+   */
+  public void setPieFillPercentage(double pieFillPercentage) {
+
+    this.pieFillPercentage = pieFillPercentage;
+  }
+
+  public boolean isCircular() {
+
+    return isCircular;
+  }
+
+  /**
+   * Sets whether or not the pie chart is forced to be circular. Otherwise it's shape is oval, matching the containing plot.
+   *
+   * @param isCircular
+   */
+  public void setCircular(boolean isCircular) {
+
+    this.isCircular = isCircular;
+  }
+
   /**
    * Set the theme the style manager should use
    *
diff --git a/xchart/src/main/java/org/knowm/xchart/internal/chartpart/PlotContent_Pie.java b/xchart/src/main/java/org/knowm/xchart/internal/chartpart/PlotContent_Pie.java
index 647dd74cb94292ee6f9e5bab5105b254015d5aed..768d1a0fb09f6dadb6d4c7506df93a3e845d9e5b 100644
--- a/xchart/src/main/java/org/knowm/xchart/internal/chartpart/PlotContent_Pie.java
+++ b/xchart/src/main/java/org/knowm/xchart/internal/chartpart/PlotContent_Pie.java
@@ -66,13 +66,30 @@ public class PlotContent_Pie<SM extends StyleManager, S extends Series> extends
     g.setClip(bounds.createIntersection(rectangle));
 
     // pie bounds
-    double percentage = .70;
+    double percentage = styleManagerPie.getPieFillPercentage();
+
+    // if (styleManagerPie.isCircular()) {
+    //
+    // double pieDiameter = Math.min(bounds.getWidth(), bounds.getHeight());
+    // }
+
     double halfBorderPercentage = (1 - percentage) / 2.0;
-    Rectangle2D pieBounds = new Rectangle2D.Double(bounds.getX() + bounds.getWidth() * halfBorderPercentage, bounds.getY() + bounds.getHeight() * halfBorderPercentage, bounds.getWidth() * percentage,
-        bounds.getHeight() * percentage);
-        // g.setStroke(new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL));
-        // g.setColor(Color.black);
-        // g.draw(pieBounds);
+    double width = styleManagerPie.isCircular() ? Math.min(bounds.getWidth(), bounds.getHeight()) : bounds.getWidth();
+    double height = styleManagerPie.isCircular() ? Math.min(bounds.getWidth(), bounds.getHeight()) : bounds.getHeight();
+
+    Rectangle2D pieBounds = new Rectangle2D.Double(
+
+        bounds.getX() + bounds.getWidth() / 2 - width / 2 + halfBorderPercentage * width,
+
+        bounds.getY() + bounds.getHeight() / 2 - height / 2 + halfBorderPercentage * height,
+
+        width * percentage,
+
+        height * percentage);
+
+    // g.setStroke(new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL));
+    // g.setColor(Color.black);
+    // g.draw(pieBounds);
 
     // get total
     double total = 0.0;
diff --git a/xchart/src/main/java/org/knowm/xchart/internal/style/GGPlot2Theme.java b/xchart/src/main/java/org/knowm/xchart/internal/style/GGPlot2Theme.java
index 5909d99d6256b7f78443b05833564b518f978812..e8086333037e036ed09f963029be0965fced0aa3 100644
--- a/xchart/src/main/java/org/knowm/xchart/internal/style/GGPlot2Theme.java
+++ b/xchart/src/main/java/org/knowm/xchart/internal/style/GGPlot2Theme.java
@@ -334,6 +334,20 @@ public class GGPlot2Theme implements Theme {
     return true;
   }
 
+  // Pie Charts ///////////////////////////////
+
+  @Override
+  public double getPieFillPercentage() {
+
+    return .90;
+  }
+
+  @Override
+  public boolean isCircular() {
+
+    return true;
+  }
+
   // Line, Scatter, Area Charts ///////////////////////////////
 
   @Override
diff --git a/xchart/src/main/java/org/knowm/xchart/internal/style/MatlabTheme.java b/xchart/src/main/java/org/knowm/xchart/internal/style/MatlabTheme.java
index 1749f61cd0f811ba47f357fd526183fc54d4044f..59ed862dd31538ad334e589eeeab2110f7d8e2ce 100644
--- a/xchart/src/main/java/org/knowm/xchart/internal/style/MatlabTheme.java
+++ b/xchart/src/main/java/org/knowm/xchart/internal/style/MatlabTheme.java
@@ -338,6 +338,20 @@ public class MatlabTheme implements Theme {
     return true;
   }
 
+  // Pie Charts ///////////////////////////////
+
+  @Override
+  public double getPieFillPercentage() {
+
+    return .90;
+  }
+
+  @Override
+  public boolean isCircular() {
+
+    return true;
+  }
+
   // Line, Scatter, Area Charts ///////////////////////////////
 
   @Override
diff --git a/xchart/src/main/java/org/knowm/xchart/internal/style/Theme.java b/xchart/src/main/java/org/knowm/xchart/internal/style/Theme.java
index eb8e8388d179d40847fcdd99cb72dc628727f556..2297cfaf16a96df688806ff525bb9c282957cb40 100644
--- a/xchart/src/main/java/org/knowm/xchart/internal/style/Theme.java
+++ b/xchart/src/main/java/org/knowm/xchart/internal/style/Theme.java
@@ -132,6 +132,12 @@ public interface Theme extends SeriesMarkers, SeriesLines, SeriesColors {
 
   public boolean isBarFilled();
 
+  // Pie Charts ///////////////////////////////
+
+  public double getPieFillPercentage();
+
+  public boolean isCircular();
+
   // Line, Scatter, Area Charts ///////////////////////////////
 
   public int getMarkerSize();
diff --git a/xchart/src/main/java/org/knowm/xchart/internal/style/XChartTheme.java b/xchart/src/main/java/org/knowm/xchart/internal/style/XChartTheme.java
index 888cd960cf07ec6850940e4cc9bc92b0f04832ae..61e52800ee89edd47cf8bce20845db1c67d3b0d1 100644
--- a/xchart/src/main/java/org/knowm/xchart/internal/style/XChartTheme.java
+++ b/xchart/src/main/java/org/knowm/xchart/internal/style/XChartTheme.java
@@ -334,6 +334,20 @@ public class XChartTheme implements Theme {
     return true;
   }
 
+  // Pie Charts ///////////////////////////////
+
+  @Override
+  public double getPieFillPercentage() {
+
+    return .90;
+  }
+
+  @Override
+  public boolean isCircular() {
+
+    return true;
+  }
+
   // Line, Scatter, Area Charts ///////////////////////////////
 
   @Override