diff --git a/xchart/src/main/java/org/knowm/xchart/Styler_Pie.java b/xchart/src/main/java/org/knowm/xchart/Styler_Pie.java
index 3608a056ad7fbb29c1c3c53c6b4556cb1677ea19..916590fc03ab5e611ceafc79744f0ff13b0df414 100644
--- a/xchart/src/main/java/org/knowm/xchart/Styler_Pie.java
+++ b/xchart/src/main/java/org/knowm/xchart/Styler_Pie.java
@@ -16,6 +16,8 @@
  */
 package org.knowm.xchart;
 
+import java.awt.Font;
+
 import org.knowm.xchart.Series_Pie.ChartPieSeriesRenderStyle;
 import org.knowm.xchart.internal.style.Styler;
 import org.knowm.xchart.internal.style.Theme_;
@@ -30,6 +32,8 @@ public class Styler_Pie extends Styler {
   private double pieFillPercentage;
   private boolean isCircular;
   private double startAngleInDegrees;
+  private Font pieFont;
+  private double annotationDistance;
 
   /**
    * Constructor
@@ -46,6 +50,8 @@ public class Styler_Pie extends Styler {
     chartPieSeriesRenderStyle = ChartPieSeriesRenderStyle.Pie; // set default to pie, donut may be a future one
     pieFillPercentage = theme.getPieFillPercentage();
     isCircular = theme.isCircular();
+    pieFont = theme.getPieFont();
+    annotationDistance = theme.getAnnotationDistance();
   }
 
   public ChartPieSeriesRenderStyle getChartPieSeriesRenderStyle() {
@@ -108,6 +114,36 @@ public class Styler_Pie extends Styler {
     this.startAngleInDegrees = startAngleInDegrees;
   }
 
+  public Font getPieFont() {
+
+    return pieFont;
+  }
+
+  /**
+   * Sets the font used on the Pie Chart's annotations
+   *
+   * @param pieFont
+   */
+  public void setPieFont(Font pieFont) {
+
+    this.pieFont = pieFont;
+  }
+
+  public double getAnnotationDistance() {
+
+    return annotationDistance;
+  }
+
+  /**
+   * Sets the distance of the pie chart's annotation where 0 is the center, 1 is at the edge and greater than 1 is outside of the pie chart.
+   *
+   * @param annotationDistance
+   */
+  public void setAnnotationDistance(double annotationDistance) {
+
+    this.annotationDistance = annotationDistance;
+  }
+
   /**
    * Set the theme the styler 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 d6accee1402ce0d08b526611f542df4a53257958..907f9b89025bba1e843f24bbd63461d92d221c0e 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
@@ -127,14 +127,14 @@ public class PlotContent_Pie<ST extends Styler, S extends Series> extends PlotCo
       // draw percentage on slice
       double percentage = y.doubleValue() / total * 100;
 
-      TextLayout textLayout = new TextLayout(df.format(percentage) + "%", chart.getStyler().getLegendFont(), new FontRenderContext(null, true, false));
+      TextLayout textLayout = new TextLayout(df.format(percentage) + "%", stylerPie.getPieFont(), new FontRenderContext(null, true, false));
       Rectangle2D percentageRectangle = textLayout.getBounds();
 
       double xCenter = pieBounds.getX() + pieBounds.getWidth() / 2 - percentageRectangle.getWidth() / 2;
       double yCenter = pieBounds.getY() + pieBounds.getHeight() / 2 + percentageRectangle.getHeight() / 2;
       double angle = (arcAngle + startAngle) - arcAngle / 2;
-      double xOffset = xCenter + Math.cos(Math.toRadians(angle)) * (pieBounds.getWidth() / 3.33);
-      double yOffset = yCenter - Math.sin(Math.toRadians(angle)) * (pieBounds.getHeight() / 3.33);
+      double xOffset = xCenter + Math.cos(Math.toRadians(angle)) * (pieBounds.getWidth() / 2 * stylerPie.getAnnotationDistance());
+      double yOffset = yCenter - Math.sin(Math.toRadians(angle)) * (pieBounds.getHeight() / 2 * stylerPie.getAnnotationDistance());
 
       g.setColor(stylerPie.getChartFontColor());
       g.setFont(stylerPie.getChartTitleFont());
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 d52ca4ab15762e1497a3873847d8d8687cf1af21..f985dcfb35c81a58c85f66ebb78cc1ccd98af747 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
@@ -140,6 +140,10 @@ public interface Theme_ extends SeriesMarkers, SeriesLines, SeriesColors {
 
   public double getStartAngleInDegrees();
 
+  public Font getPieFont();
+
+  public double getAnnotationDistance();
+
   // Line, Scatter, Area Charts ///////////////////////////////
 
   public int getMarkerSize();
diff --git a/xchart/src/main/java/org/knowm/xchart/internal/style/Theme_GGPlot2.java b/xchart/src/main/java/org/knowm/xchart/internal/style/Theme_GGPlot2.java
index 33b047d517e71623989848728155f5fa2510fe22..f5cc3279eaa9ad5b92c41221ee82b7822280d97e 100644
--- a/xchart/src/main/java/org/knowm/xchart/internal/style/Theme_GGPlot2.java
+++ b/xchart/src/main/java/org/knowm/xchart/internal/style/Theme_GGPlot2.java
@@ -354,6 +354,18 @@ public class Theme_GGPlot2 implements Theme_ {
     return 0;
   }
 
+  @Override
+  public Font getPieFont() {
+
+    return new Font(Font.SANS_SERIF, Font.PLAIN, 15);
+  }
+
+  @Override
+  public double getAnnotationDistance() {
+
+    return .67;
+  }
+
   // Line, Scatter, Area Charts ///////////////////////////////
 
   @Override
diff --git a/xchart/src/main/java/org/knowm/xchart/internal/style/Theme_Matlab.java b/xchart/src/main/java/org/knowm/xchart/internal/style/Theme_Matlab.java
index 569d3486044eff41876a58f3f166ac84cf009831..04f12954e54b7aab595419e83064a8fd7ab785f8 100644
--- a/xchart/src/main/java/org/knowm/xchart/internal/style/Theme_Matlab.java
+++ b/xchart/src/main/java/org/knowm/xchart/internal/style/Theme_Matlab.java
@@ -358,6 +358,18 @@ public class Theme_Matlab implements Theme_ {
     return 0;
   }
 
+  @Override
+  public Font getPieFont() {
+
+    return new Font(Font.SANS_SERIF, Font.PLAIN, 15);
+  }
+
+  @Override
+  public double getAnnotationDistance() {
+
+    return .67;
+  }
+
   // Line, Scatter, Area Charts ///////////////////////////////
 
   @Override
diff --git a/xchart/src/main/java/org/knowm/xchart/internal/style/Theme_XChart.java b/xchart/src/main/java/org/knowm/xchart/internal/style/Theme_XChart.java
index 8ea4902a1e8df19bef259c3543bb7630aae9c455..ceaacec3839f3f92b40c47b0677b6572f01ec79f 100644
--- a/xchart/src/main/java/org/knowm/xchart/internal/style/Theme_XChart.java
+++ b/xchart/src/main/java/org/knowm/xchart/internal/style/Theme_XChart.java
@@ -354,6 +354,18 @@ public class Theme_XChart implements Theme_ {
     return 0;
   }
 
+  @Override
+  public Font getPieFont() {
+
+    return new Font(Font.SANS_SERIF, Font.PLAIN, 15);
+  }
+
+  @Override
+  public double getAnnotationDistance() {
+
+    return .67;
+  }
+
   // Line, Scatter, Area Charts ///////////////////////////////
 
   @Override