From a935e914f4d35f79684b3d441d07734c1aff7ad3 Mon Sep 17 00:00:00 2001
From: Tim Molter <tim@knowm.org>
Date: Mon, 25 Jan 2016 13:17:46 +0100
Subject: [PATCH] Issue #130 - allow bars to touch bottom at the X-Axis.

---
 .../demo/charts/area/AreaLineChart03.java     |  4 +--
 .../xchart/demo/charts/bar/BarChart01.java    |  2 ++
 .../xchart/demo/charts/line/LineChart03.java  |  2 +-
 .../xchart/demo/charts/line/LineChart07.java  |  1 -
 .../xchart/demo/charts/pie/PieChart03.java    |  2 +-
 .../java/org/knowm/xchart/Styler_Pie.java     | 17 -----------
 .../knowm/xchart/internal/chartpart/Axis.java | 12 ++++----
 .../AxisTickCalculator_Category.java          |  2 +-
 .../chartpart/AxisTickCalculator_Date.java    |  2 +-
 .../AxisTickCalculator_Logarithmic.java       |  2 +-
 .../chartpart/AxisTickCalculator_Number.java  |  2 +-
 .../chartpart/PlotContent_Category_Bar.java   |  4 +--
 ...lotContent_Category_Line_Area_Scatter.java |  4 +--
 .../internal/chartpart/PlotContent_Pie.java   |  2 +-
 .../internal/chartpart/PlotContent_XY.java    |  4 +--
 .../internal/chartpart/Plot_AxesChart.java    |  2 +-
 .../knowm/xchart/internal/style/Styler.java   | 21 ++++++++++++++
 .../internal/style/Styler_AxesChart.java      | 29 +++++--------------
 .../knowm/xchart/internal/style/Theme_.java   |  8 ++---
 .../xchart/internal/style/Theme_GGPlot2.java  | 24 +++++++--------
 .../xchart/internal/style/Theme_Matlab.java   | 24 +++++++--------
 .../xchart/internal/style/Theme_XChart.java   | 24 +++++++--------
 22 files changed, 93 insertions(+), 101 deletions(-)

diff --git a/xchart-demo/src/main/java/org/knowm/xchart/demo/charts/area/AreaLineChart03.java b/xchart-demo/src/main/java/org/knowm/xchart/demo/charts/area/AreaLineChart03.java
index b64a6de4..d553bdb6 100644
--- a/xchart-demo/src/main/java/org/knowm/xchart/demo/charts/area/AreaLineChart03.java
+++ b/xchart-demo/src/main/java/org/knowm/xchart/demo/charts/area/AreaLineChart03.java
@@ -94,8 +94,8 @@ public class AreaLineChart03 implements ExampleChart {
     chart.getStyler().setYAxisLabelAlignment(Styler.TextAlignment.Right);
     chart.getStyler().setYAxisDecimalPattern("$ #,###.##");
 
-    chart.getStyler().setPlotPadding(0);
-    chart.getStyler().setAxisTickSpacePercentage(.95);
+    chart.getStyler().setPlotMargin(0);
+    chart.getStyler().setPlotContentSize(.95);
     // chart.getStyleManager().setYAxisMax(1620725 * 1.15); // We want to ensure there is a % of padding on the top of the chart
     return chart;
   }
diff --git a/xchart-demo/src/main/java/org/knowm/xchart/demo/charts/bar/BarChart01.java b/xchart-demo/src/main/java/org/knowm/xchart/demo/charts/bar/BarChart01.java
index ed4d1e63..94ca7f9d 100644
--- a/xchart-demo/src/main/java/org/knowm/xchart/demo/charts/bar/BarChart01.java
+++ b/xchart-demo/src/main/java/org/knowm/xchart/demo/charts/bar/BarChart01.java
@@ -34,6 +34,7 @@ import org.knowm.xchart.internal.style.Styler.LegendPosition;
  * <li>All positive values
  * <li>Single series
  * <li>Place legend at Inside-NW position
+ * <li>Bars touch X-Axis
  */
 public class BarChart01 implements ExampleChart {
 
@@ -53,6 +54,7 @@ public class BarChart01 implements ExampleChart {
 
     // Customize Chart
     chart.getStyler().setLegendPosition(LegendPosition.InsideNW);
+    chart.getStyler().setPlotContentSize(1.0);
 
     return chart;
   }
diff --git a/xchart-demo/src/main/java/org/knowm/xchart/demo/charts/line/LineChart03.java b/xchart-demo/src/main/java/org/knowm/xchart/demo/charts/line/LineChart03.java
index e0937372..5cd3fb80 100644
--- a/xchart-demo/src/main/java/org/knowm/xchart/demo/charts/line/LineChart03.java
+++ b/xchart-demo/src/main/java/org/knowm/xchart/demo/charts/line/LineChart03.java
@@ -90,7 +90,7 @@ public class LineChart03 implements ExampleChart {
 
     chart.getStyler().setAxisTickMarkLength(15);
 
-    chart.getStyler().setPlotPadding(20);
+    chart.getStyler().setPlotMargin(20);
 
     chart.getStyler().setChartTitleFont(new Font(Font.MONOSPACED, Font.BOLD, 24));
     chart.getStyler().setLegendFont(new Font(Font.SERIF, Font.PLAIN, 18));
diff --git a/xchart-demo/src/main/java/org/knowm/xchart/demo/charts/line/LineChart07.java b/xchart-demo/src/main/java/org/knowm/xchart/demo/charts/line/LineChart07.java
index 6d3bb600..827c4f32 100644
--- a/xchart-demo/src/main/java/org/knowm/xchart/demo/charts/line/LineChart07.java
+++ b/xchart-demo/src/main/java/org/knowm/xchart/demo/charts/line/LineChart07.java
@@ -99,7 +99,6 @@ public class LineChart07 implements ExampleChart {
       series.setMarker(SeriesMarkers.NONE);
       // series.setChartCategorySeriesRenderStyle(ChartCategorySeriesRenderStyle.Line);
     }
-    chart.getStyler().setYAxisLogarithmic(true);
 
     return chart;
   }
diff --git a/xchart-demo/src/main/java/org/knowm/xchart/demo/charts/pie/PieChart03.java b/xchart-demo/src/main/java/org/knowm/xchart/demo/charts/pie/PieChart03.java
index 5a0a6763..7028df25 100644
--- a/xchart-demo/src/main/java/org/knowm/xchart/demo/charts/pie/PieChart03.java
+++ b/xchart-demo/src/main/java/org/knowm/xchart/demo/charts/pie/PieChart03.java
@@ -55,7 +55,7 @@ public class PieChart03 implements ExampleChart<Chart_Pie> {
     chart.getStyler().setLegendVisible(false);
     chart.getStyler().setAnnotationType(AnnotationType.LabelAndPercentage);
     chart.getStyler().setAnnotationDistance(1.15);
-    chart.getStyler().setPieSize(.7);
+    chart.getStyler().setPlotContentSize(.7);
 
     return chart;
   }
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 2a683c9e..8e0acb80 100644
--- a/xchart/src/main/java/org/knowm/xchart/Styler_Pie.java
+++ b/xchart/src/main/java/org/knowm/xchart/Styler_Pie.java
@@ -34,7 +34,6 @@ public class Styler_Pie extends Styler {
     Percentage, Label, LabelAndPercentage
   }
 
-  private double pieSize;
   private boolean isCircular;
   private double startAngleInDegrees;
   private Font annotationFont;
@@ -54,7 +53,6 @@ public class Styler_Pie extends Styler {
   protected void setAllStyles() {
 
     chartPieSeriesRenderStyle = ChartPieSeriesRenderStyle.Pie; // set default to pie, donut may be a future one
-    pieSize = theme.getPieSize();
     isCircular = theme.isCircular();
     annotationFont = theme.getPieFont();
     annotationDistance = theme.getAnnotationDistance();
@@ -76,21 +74,6 @@ public class Styler_Pie extends Styler {
     this.chartPieSeriesRenderStyle = chartPieSeriesRenderStyle;
   }
 
-  public double getPieSize() {
-
-    return pieSize;
-  }
-
-  /**
-   * Sets the amount of space that the pie chart fills. Full fill is 100%, i.e. 1.0
-   *
-   * @param pieSize
-   */
-  public void setPieSize(double pieSize) {
-
-    this.pieSize = pieSize;
-  }
-
   public boolean isCircular() {
 
     return isCircular;
diff --git a/xchart/src/main/java/org/knowm/xchart/internal/chartpart/Axis.java b/xchart/src/main/java/org/knowm/xchart/internal/chartpart/Axis.java
index 0d0ef32d..a64f9780 100644
--- a/xchart/src/main/java/org/knowm/xchart/internal/chartpart/Axis.java
+++ b/xchart/src/main/java/org/knowm/xchart/internal/chartpart/Axis.java
@@ -167,13 +167,13 @@ public class Axis<ST extends Styler_AxesChart, S extends Series> implements Char
 
                 - 2 * chart.getStyler().getChartPadding()
 
-                - (chart.getStyler().isYAxisTicksVisible() ? (chart.getStyler().getPlotPadding()) : 0)
+                - (chart.getStyler().isYAxisTicksVisible() ? (chart.getStyler().getPlotMargin()) : 0)
 
                 - (chart.getStyler().getLegendPosition() == LegendPosition.OutsideE && chart.getStyler().isLegendVisible() ? chart.getStyler().getChartPadding() : 0)
 
         ;
 
-        height = chart.getHeight() - yOffset - chart.getXAxis().getXAxisHeightHint(approximateXAxisWidth) - chart.getStyler().getPlotPadding() - chart.getStyler().getChartPadding();
+        height = chart.getHeight() - yOffset - chart.getXAxis().getXAxisHeightHint(approximateXAxisWidth) - chart.getStyler().getPlotMargin() - chart.getStyler().getChartPadding();
 
         width = getYAxisWidthHint(height);
         // System.out.println("width after: " + width);
@@ -208,8 +208,8 @@ public class Axis<ST extends Styler_AxesChart, S extends Series> implements Char
       // calculate paint zone
       // |____________________|
 
-      double xOffset = chart.getYAxis().getBounds().getWidth() + (chart.getStyler().isYAxisTicksVisible() ? chart.getStyler().getPlotPadding() : 0) + chart.getStyler().getChartPadding();
-      double yOffset = chart.getYAxis().getBounds().getY() + chart.getYAxis().getBounds().getHeight() + chart.getStyler().getPlotPadding();
+      double xOffset = chart.getYAxis().getBounds().getWidth() + (chart.getStyler().isYAxisTicksVisible() ? chart.getStyler().getPlotMargin() : 0) + chart.getStyler().getChartPadding();
+      double yOffset = chart.getYAxis().getBounds().getY() + chart.getYAxis().getBounds().getHeight() + chart.getStyler().getPlotMargin();
 
       double width =
 
@@ -221,7 +221,7 @@ public class Axis<ST extends Styler_AxesChart, S extends Series> implements Char
 
               - 2 * chart.getStyler().getChartPadding()
 
-              - (chart.getStyler().isYAxisTicksVisible() ? (chart.getStyler().getPlotPadding()) : 0)
+              - (chart.getStyler().isYAxisTicksVisible() ? (chart.getStyler().getPlotMargin()) : 0)
 
               - (chart.getStyler().getLegendPosition() == LegendPosition.OutsideE && chart.getStyler().isLegendVisible() ? chart.getStyler().getChartPadding() : 0)
 
@@ -230,7 +230,7 @@ public class Axis<ST extends Styler_AxesChart, S extends Series> implements Char
       // double height = this.getXAxisHeightHint(width);
       // System.out.println("height: " + height);
       // the Y-Axis was already draw at this point so we know how much vertical room is left for the X-Axis
-      double height = chart.getHeight() - chart.getYAxis().getBounds().getY() - chart.getYAxis().getBounds().getHeight() - chart.getStyler().getChartPadding() - chart.getStyler().getPlotPadding();
+      double height = chart.getHeight() - chart.getYAxis().getBounds().getY() - chart.getYAxis().getBounds().getHeight() - chart.getStyler().getChartPadding() - chart.getStyler().getPlotMargin();
       // System.out.println("height2: " + height2);
 
       Rectangle2D xAxisRectangle = new Rectangle2D.Double(xOffset, yOffset, width, height);
diff --git a/xchart/src/main/java/org/knowm/xchart/internal/chartpart/AxisTickCalculator_Category.java b/xchart/src/main/java/org/knowm/xchart/internal/chartpart/AxisTickCalculator_Category.java
index c262dfcb..bbee9ff1 100644
--- a/xchart/src/main/java/org/knowm/xchart/internal/chartpart/AxisTickCalculator_Category.java
+++ b/xchart/src/main/java/org/knowm/xchart/internal/chartpart/AxisTickCalculator_Category.java
@@ -52,7 +52,7 @@ public class AxisTickCalculator_Category extends AxisTickCalculator_ {
   private void calculate(List<?> categories, AxisDataType axisType) {
 
     // tick space - a percentage of the working space available for ticks
-    int tickSpace = (int) (styler.getAxisTickSpacePercentage() * workingSpace); // in plot space
+    int tickSpace = (int) (styler.getPlotContentSize() * workingSpace); // in plot space
 
     // where the tick should begin in the working space in pixels
     double margin = Utils.getTickStartOffset(workingSpace, tickSpace);
diff --git a/xchart/src/main/java/org/knowm/xchart/internal/chartpart/AxisTickCalculator_Date.java b/xchart/src/main/java/org/knowm/xchart/internal/chartpart/AxisTickCalculator_Date.java
index aba06fae..b526eded 100644
--- a/xchart/src/main/java/org/knowm/xchart/internal/chartpart/AxisTickCalculator_Date.java
+++ b/xchart/src/main/java/org/knowm/xchart/internal/chartpart/AxisTickCalculator_Date.java
@@ -118,7 +118,7 @@ public class AxisTickCalculator_Date extends AxisTickCalculator_ {
   private void calculate() {
 
     // tick space - a percentage of the working space available for ticks
-    double tickSpace = styler.getAxisTickSpacePercentage() * workingSpace; // in plot space
+    double tickSpace = styler.getPlotContentSize() * workingSpace; // in plot space
 
     // this prevents an infinite loop when the plot gets sized really small.
     if (tickSpace < styler.getXAxisTickMarkSpacingHint()) {
diff --git a/xchart/src/main/java/org/knowm/xchart/internal/chartpart/AxisTickCalculator_Logarithmic.java b/xchart/src/main/java/org/knowm/xchart/internal/chartpart/AxisTickCalculator_Logarithmic.java
index ec48efad..a759e07e 100644
--- a/xchart/src/main/java/org/knowm/xchart/internal/chartpart/AxisTickCalculator_Logarithmic.java
+++ b/xchart/src/main/java/org/knowm/xchart/internal/chartpart/AxisTickCalculator_Logarithmic.java
@@ -57,7 +57,7 @@ public class AxisTickCalculator_Logarithmic extends AxisTickCalculator_ {
     }
 
     // tick space - a percentage of the working space available for ticks
-    double tickSpace = styler.getAxisTickSpacePercentage() * workingSpace; // in plot space
+    double tickSpace = styler.getPlotContentSize() * workingSpace; // in plot space
 
     // this prevents an infinite loop when the plot gets sized really small.
     if (tickSpace < styler.getXAxisTickMarkSpacingHint()) {
diff --git a/xchart/src/main/java/org/knowm/xchart/internal/chartpart/AxisTickCalculator_Number.java b/xchart/src/main/java/org/knowm/xchart/internal/chartpart/AxisTickCalculator_Number.java
index 091ec583..18e04ce5 100644
--- a/xchart/src/main/java/org/knowm/xchart/internal/chartpart/AxisTickCalculator_Number.java
+++ b/xchart/src/main/java/org/knowm/xchart/internal/chartpart/AxisTickCalculator_Number.java
@@ -58,7 +58,7 @@ public class AxisTickCalculator_Number extends AxisTickCalculator_ {
     }
 
     // tick space - a percentage of the working space available for ticks
-    double tickSpace = styler.getAxisTickSpacePercentage() * workingSpace; // in plot space
+    double tickSpace = styler.getPlotContentSize() * workingSpace; // in plot space
 
     // this prevents an infinite loop when the plot gets sized really small.
     if (tickSpace < styler.getXAxisTickMarkSpacingHint()) {
diff --git a/xchart/src/main/java/org/knowm/xchart/internal/chartpart/PlotContent_Category_Bar.java b/xchart/src/main/java/org/knowm/xchart/internal/chartpart/PlotContent_Category_Bar.java
index 6020bcfd..5166fe84 100644
--- a/xchart/src/main/java/org/knowm/xchart/internal/chartpart/PlotContent_Category_Bar.java
+++ b/xchart/src/main/java/org/knowm/xchart/internal/chartpart/PlotContent_Category_Bar.java
@@ -67,11 +67,11 @@ public class PlotContent_Category_Bar<ST extends Styler, S extends Series> exten
     g.setClip(bounds.createIntersection(rectangle));
 
     // X-Axis
-    double xTickSpace = stylerCategory.getAxisTickSpacePercentage() * bounds.getWidth();
+    double xTickSpace = stylerCategory.getPlotContentSize() * bounds.getWidth();
     double xLeftMargin = Utils.getTickStartOffset(bounds.getWidth(), xTickSpace);
 
     // Y-Axis
-    double yTickSpace = stylerCategory.getAxisTickSpacePercentage() * bounds.getHeight();
+    double yTickSpace = stylerCategory.getPlotContentSize() * bounds.getHeight();
     double yTopMargin = Utils.getTickStartOffset(bounds.getHeight(), yTickSpace);
 
     Map<String, Series_Category> seriesMap = chart.getSeriesMap();
diff --git a/xchart/src/main/java/org/knowm/xchart/internal/chartpart/PlotContent_Category_Line_Area_Scatter.java b/xchart/src/main/java/org/knowm/xchart/internal/chartpart/PlotContent_Category_Line_Area_Scatter.java
index 9d9db5d8..10c5452b 100644
--- a/xchart/src/main/java/org/knowm/xchart/internal/chartpart/PlotContent_Category_Line_Area_Scatter.java
+++ b/xchart/src/main/java/org/knowm/xchart/internal/chartpart/PlotContent_Category_Line_Area_Scatter.java
@@ -85,11 +85,11 @@ public class PlotContent_Category_Line_Area_Scatter<ST extends Styler, S extends
     // g.setClip(bounds.createIntersection(g.getClipBounds()));
 
     // X-Axis
-    double xTickSpace = stylerCategory.getAxisTickSpacePercentage() * bounds.getWidth();
+    double xTickSpace = stylerCategory.getPlotContentSize() * bounds.getWidth();
     double xLeftMargin = Utils.getTickStartOffset((int) bounds.getWidth(), xTickSpace);
 
     // Y-Axis
-    double yTickSpace = stylerCategory.getAxisTickSpacePercentage() * bounds.getHeight();
+    double yTickSpace = stylerCategory.getPlotContentSize() * bounds.getHeight();
     double yTopMargin = Utils.getTickStartOffset((int) bounds.getHeight(), yTickSpace);
 
     double xMin = chart.getAxisPair().getXAxis().getMin();
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 0e6a78d2..168459fd 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
@@ -75,7 +75,7 @@ public class PlotContent_Pie<ST extends Styler, S extends Series> extends PlotCo
     g.setClip(bounds.createIntersection(rectangle));
 
     // pie bounds
-    double pieFillPercentage = stylerPie.getPieSize();
+    double pieFillPercentage = stylerPie.getPlotContentSize();
 
     // if (stylerPie.isCircular()) {
     //
diff --git a/xchart/src/main/java/org/knowm/xchart/internal/chartpart/PlotContent_XY.java b/xchart/src/main/java/org/knowm/xchart/internal/chartpart/PlotContent_XY.java
index 0c6e08d5..8b69e5eb 100644
--- a/xchart/src/main/java/org/knowm/xchart/internal/chartpart/PlotContent_XY.java
+++ b/xchart/src/main/java/org/knowm/xchart/internal/chartpart/PlotContent_XY.java
@@ -82,11 +82,11 @@ public class PlotContent_XY<ST extends Styler_AxesChart, S extends Series> exten
     // g.setClip(bounds.createIntersection(g.getClipBounds()));
 
     // X-Axis
-    double xTickSpace = stylerXY.getAxisTickSpacePercentage() * bounds.getWidth();
+    double xTickSpace = stylerXY.getPlotContentSize() * bounds.getWidth();
     double xLeftMargin = Utils.getTickStartOffset((int) bounds.getWidth(), xTickSpace);
 
     // Y-Axis
-    double yTickSpace = stylerXY.getAxisTickSpacePercentage() * bounds.getHeight();
+    double yTickSpace = stylerXY.getPlotContentSize() * bounds.getHeight();
     double yTopMargin = Utils.getTickStartOffset((int) bounds.getHeight(), yTickSpace);
 
     double xMin = chart.getXAxis().getMin();
diff --git a/xchart/src/main/java/org/knowm/xchart/internal/chartpart/Plot_AxesChart.java b/xchart/src/main/java/org/knowm/xchart/internal/chartpart/Plot_AxesChart.java
index bd17c250..00cf4b80 100644
--- a/xchart/src/main/java/org/knowm/xchart/internal/chartpart/Plot_AxesChart.java
+++ b/xchart/src/main/java/org/knowm/xchart/internal/chartpart/Plot_AxesChart.java
@@ -49,7 +49,7 @@ public class Plot_AxesChart<ST extends Styler, S extends Series> extends Plot_ {
     // calculate bounds
     double xOffset = chart.getYAxis().getBounds().getX() + chart.getYAxis().getBounds().getWidth()
 
-        + (stylerAxesChart.isYAxisTicksVisible() ? stylerAxesChart.getPlotPadding() : 0);
+        + (stylerAxesChart.isYAxisTicksVisible() ? stylerAxesChart.getPlotMargin() : 0);
 
     double yOffset = chart.getYAxis().getBounds().getY();
     double width = chart.getXAxis().getBounds().getWidth();
diff --git a/xchart/src/main/java/org/knowm/xchart/internal/style/Styler.java b/xchart/src/main/java/org/knowm/xchart/internal/style/Styler.java
index d4530496..2b2a2e72 100644
--- a/xchart/src/main/java/org/knowm/xchart/internal/style/Styler.java
+++ b/xchart/src/main/java/org/knowm/xchart/internal/style/Styler.java
@@ -91,6 +91,7 @@ public abstract class Styler {
   private Color plotBackgroundColor;
   private Color plotBorderColor;
   private boolean isPlotBorderVisible;
+  private double plotContentSize = .92;
 
   protected void setAllStyles() {
 
@@ -123,6 +124,7 @@ public abstract class Styler {
     plotBackgroundColor = theme.getPlotBackgroundColor();
     plotBorderColor = theme.getPlotBorderColor();
     isPlotBorderVisible = theme.isPlotBorderVisible();
+    plotContentSize = theme.getPlotContentSize();
   }
 
   // Chart Style ///////////////////////////////
@@ -453,4 +455,23 @@ public abstract class Styler {
     return isPlotBorderVisible;
   }
 
+  public double getPlotContentSize() {
+
+    return plotContentSize;
+  }
+
+  /**
+   * Sets the content size of the plot inside the plot area of the chart. To fill the area 100%, use a value of 1.0.
+   *
+   * @param plotContentSize - Valid range is between 0 and 1.
+   */
+  public void setPlotContentSize(double plotContentSize) {
+
+    if (plotContentSize < 0 || plotContentSize > 1) {
+      throw new IllegalArgumentException("Plot content size must be tween 0 and 1!!!");
+    }
+
+    this.plotContentSize = plotContentSize;
+  }
+
 }
diff --git a/xchart/src/main/java/org/knowm/xchart/internal/style/Styler_AxesChart.java b/xchart/src/main/java/org/knowm/xchart/internal/style/Styler_AxesChart.java
index 78c19603..a08458e9 100644
--- a/xchart/src/main/java/org/knowm/xchart/internal/style/Styler_AxesChart.java
+++ b/xchart/src/main/java/org/knowm/xchart/internal/style/Styler_AxesChart.java
@@ -41,7 +41,7 @@ public abstract class Styler_AxesChart extends Styler {
   private Color axisTickLabelsColor;
   private boolean isAxisTicksLineVisible;
   private boolean isAxisTicksMarksVisible;
-  private int plotPadding;
+  private int plotMargin;
   private int axisTitlePadding;
   private int xAxisTickMarkSpacingHint;
   private int yAxisTickMarkSpacingHint;
@@ -51,7 +51,6 @@ public abstract class Styler_AxesChart extends Styler {
   private Double xAxisMax;
   private Double yAxisMin;
   private Double yAxisMax;
-  private double axisTickSpacePercentage;
   private TextAlignment xAxisLabelAlignment = TextAlignment.Centre;
   private TextAlignment yAxisLabelAlignment = TextAlignment.Left;
   private int xAxisLabelRotation = 0;
@@ -102,7 +101,7 @@ public abstract class Styler_AxesChart extends Styler {
     axisTickLabelsColor = theme.getAxisTickLabelsColor();
     isAxisTicksLineVisible = theme.isAxisTicksLineVisible();
     isAxisTicksMarksVisible = theme.isAxisTicksMarksVisible();
-    plotPadding = theme.getPlotPadding();
+    plotMargin = theme.getPlotMargin();
     axisTitlePadding = theme.getAxisTitlePadding();
     xAxisTickMarkSpacingHint = theme.getXAxisTickMarkSpacingHint();
     yAxisTickMarkSpacingHint = theme.getYAxisTickMarkSpacingHint();
@@ -112,7 +111,6 @@ public abstract class Styler_AxesChart extends Styler {
     xAxisMax = null;
     yAxisMin = null;
     yAxisMax = null;
-    axisTickSpacePercentage = .92;
 
     // Chart Plot Area ///////////////////////////////
     isPlotGridVerticalLinesVisible = theme.isPlotGridVerticalLinesVisible();
@@ -284,7 +282,6 @@ public abstract class Styler_AxesChart extends Styler {
    *
    * @param axisTickPadding
    */
-
   public void setAxisTickPadding(int axisTickPadding) {
 
     this.axisTickPadding = axisTickPadding;
@@ -376,19 +373,19 @@ public abstract class Styler_AxesChart extends Styler {
   }
 
   /**
-   * sets the padding between the tick marks and the plot area
+   * sets the margin around the plot area
    *
-   * @param plotPadding
+   * @param plotMargin
    */
 
-  public void setPlotPadding(int plotPadding) {
+  public void setPlotMargin(int plotMargin) {
 
-    this.plotPadding = plotPadding;
+    this.plotMargin = plotMargin;
   }
 
-  public int getPlotPadding() {
+  public int getPlotMargin() {
 
-    return plotPadding;
+    return plotMargin;
   }
 
   /**
@@ -511,16 +508,6 @@ public abstract class Styler_AxesChart extends Styler {
     return yAxisMax;
   }
 
-  public void setAxisTickSpacePercentage(double axisTickSpacePercentage) {
-
-    this.axisTickSpacePercentage = axisTickSpacePercentage;
-  }
-
-  public double getAxisTickSpacePercentage() {
-
-    return axisTickSpacePercentage;
-  }
-
   public TextAlignment getXAxisLabelAlignment() {
 
     return xAxisLabelAlignment;
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 f0225474..58b59af7 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
@@ -99,8 +99,6 @@ public interface Theme_ extends SeriesMarkers, SeriesLines, SeriesColors {
 
   public int getAxisTitlePadding();
 
-  public int getPlotPadding();
-
   public int getXAxisTickMarkSpacingHint();
 
   public int getYAxisTickMarkSpacingHint();
@@ -125,6 +123,10 @@ public interface Theme_ extends SeriesMarkers, SeriesLines, SeriesColors {
 
   public boolean isPlotTicksMarksVisible();
 
+  public double getPlotContentSize();
+
+  public int getPlotMargin();
+
   // Bar Charts ///////////////////////////////
 
   public double getBarWidthPercentage();
@@ -135,8 +137,6 @@ public interface Theme_ extends SeriesMarkers, SeriesLines, SeriesColors {
 
   // Pie Charts ///////////////////////////////
 
-  public double getPieSize();
-
   public boolean isCircular();
 
   public double getStartAngleInDegrees();
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 59ef37d0..9e3dd262 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
@@ -205,21 +205,21 @@ public class Theme_GGPlot2 implements Theme_ {
   }
 
   @Override
-  public boolean isAxisTicksLineVisible() {
+  public int getPlotMargin() {
 
-    return false;
+    return 0;
   }
 
   @Override
-  public boolean isAxisTicksMarksVisible() {
+  public boolean isAxisTicksLineVisible() {
 
-    return true;
+    return false;
   }
 
   @Override
-  public int getPlotPadding() {
+  public boolean isAxisTicksMarksVisible() {
 
-    return 0;
+    return true;
   }
 
   @Override
@@ -315,6 +315,12 @@ public class Theme_GGPlot2 implements Theme_ {
     return new BasicStroke(1.5f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 10.0f, new float[] { 3.0f, 0.0f }, 0.0f);
   }
 
+  @Override
+  public double getPlotContentSize() {
+
+    return .92;
+  }
+
   // Bar Charts ///////////////////////////////
 
   @Override
@@ -337,12 +343,6 @@ public class Theme_GGPlot2 implements Theme_ {
 
   // Pie Charts ///////////////////////////////
 
-  @Override
-  public double getPieSize() {
-
-    return .90;
-  }
-
   @Override
   public boolean isCircular() {
 
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 b42d3918..221bdf84 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
@@ -208,6 +208,12 @@ public class Theme_Matlab implements Theme_ {
     return 4;
   }
 
+  @Override
+  public int getPlotMargin() {
+
+    return 3;
+  }
+
   @Override
   public Color getAxisTickMarksColor() {
 
@@ -238,12 +244,6 @@ public class Theme_Matlab implements Theme_ {
     return false;
   }
 
-  @Override
-  public int getPlotPadding() {
-
-    return 3;
-  }
-
   @Override
   public int getAxisTitlePadding() {
 
@@ -319,6 +319,12 @@ public class Theme_Matlab implements Theme_ {
 
   }
 
+  @Override
+  public double getPlotContentSize() {
+
+    return .92;
+  }
+
   // Bar Charts ///////////////////////////////
 
   @Override
@@ -341,12 +347,6 @@ public class Theme_Matlab implements Theme_ {
 
   // Pie Charts ///////////////////////////////
 
-  @Override
-  public double getPieSize() {
-
-    return .90;
-  }
-
   @Override
   public boolean isCircular() {
 
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 78cde489..7d2711be 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
@@ -205,6 +205,12 @@ public class Theme_XChart implements Theme_ {
     return 4;
   }
 
+  @Override
+  public int getPlotMargin() {
+
+    return 4;
+  }
+
   @Override
   public Color getAxisTickMarksColor() {
 
@@ -235,12 +241,6 @@ public class Theme_XChart implements Theme_ {
     return true;
   }
 
-  @Override
-  public int getPlotPadding() {
-
-    return 4;
-  }
-
   @Override
   public int getAxisTitlePadding() {
 
@@ -315,6 +315,12 @@ public class Theme_XChart implements Theme_ {
     return new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 10.0f, new float[] { 3.0f, 3.0f }, 0.0f);
   }
 
+  @Override
+  public double getPlotContentSize() {
+
+    return .92;
+  }
+
   // Bar Charts ///////////////////////////////
 
   @Override
@@ -337,12 +343,6 @@ public class Theme_XChart implements Theme_ {
 
   // Pie Charts ///////////////////////////////
 
-  @Override
-  public double getPieSize() {
-
-    return .90;
-  }
-
   @Override
   public boolean isCircular() {
 
-- 
GitLab