diff --git a/xchart/src/main/java/com/xeiam/xchart/StyleManager.java b/xchart/src/main/java/com/xeiam/xchart/StyleManager.java index 7940b399d3b31f89efc98341462f55359eacb77f..452f3096e3f71f6a028a0c76e981caeca3901b90 100644 --- a/xchart/src/main/java/com/xeiam/xchart/StyleManager.java +++ b/xchart/src/main/java/com/xeiam/xchart/StyleManager.java @@ -116,6 +116,7 @@ public class StyleManager { private Double xAxisMax; private Double yAxisMin; private Double yAxisMax; + private double axisTickSpaceRatio; // Chart Plot Area /////////////////////////////// private boolean isPlotGridLinesVisible; @@ -193,6 +194,7 @@ public class StyleManager { xAxisMax = null; yAxisMin = null; yAxisMax = null; + axisTickSpaceRatio = .95; // Chart Plot Area /////////////////////////////// isPlotGridLinesVisible = theme.isPlotGridLinesVisible(); @@ -847,6 +849,14 @@ public class StyleManager { return yAxisMax; } + public void setAxisTickSpaceRatio(double axisTickSpaceRatio) { + this.axisTickSpaceRatio = axisTickSpaceRatio; + } + + public double getAxisTickSpaceRatio() { + return axisTickSpaceRatio; + } + // Chart Plot Area /////////////////////////////// /** diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/Utils.java b/xchart/src/main/java/com/xeiam/xchart/internal/Utils.java index a26f144eaeb688ea644a3bcb227a9918c4248318..8bceebf4b0fa5db46b118d264e616c1a60b28c0d 100644 --- a/xchart/src/main/java/com/xeiam/xchart/internal/Utils.java +++ b/xchart/src/main/java/com/xeiam/xchart/internal/Utils.java @@ -28,17 +28,6 @@ public class Utils { } - /** - * Gets the percentage of working space allowed for tick marks - * - * @param workingSpace - * @return - */ - public static int getTickSpace(int workingSpace) { - - return (int) (workingSpace * 0.95); - } - /** * Gets the offset for the beginning of the tick marks * diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTickBarChartCalculator.java b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTickBarChartCalculator.java index b290cef90208211a8f756bab91904e7644b6a50b..48bffe3e67d581f8e096ed8aa7e6f4f7dff5c39b 100644 --- a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTickBarChartCalculator.java +++ b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTickBarChartCalculator.java @@ -49,8 +49,8 @@ public class AxisTickBarChartCalculator extends AxisTickCalculator { private void calculate(ChartPainter chartPainter) { - // tick space - a percentage of the working space available for ticks, i.e. 95% - int tickSpace = Utils.getTickSpace(workingSpace); // in plot space + // tick space - a percentage of the working space available for ticks + int tickSpace = (int)(styleManager.getAxisTickSpaceRatio() * workingSpace); // in plot space // where the tick should begin in the working space in pixels int margin = Utils.getTickStartOffset(workingSpace, tickSpace); // in plot space double gridStep = getGridStepForDecimal(tickSpace); diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTickDateCalculator.java b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTickDateCalculator.java index 1984e44492e498e64d64e609ad11460b077c8eab..512b15e23d60cc3ba8ba6816070840b852c3c099 100644 --- a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTickDateCalculator.java +++ b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTickDateCalculator.java @@ -46,8 +46,8 @@ public class AxisTickDateCalculator extends AxisTickCalculator { private void calculate() { - // tick space - a percentage of the working space available for ticks, i.e. 95% - int tickSpace = Utils.getTickSpace(workingSpace); // in plot space + // tick space - a percentage of the working space available for ticks + int tickSpace = (int)(styleManager.getAxisTickSpaceRatio() * workingSpace); // in plot space // where the tick should begin in the working space in pixels int margin = Utils.getTickStartOffset(workingSpace, tickSpace); // in plot space double gridStep = getGridStepForDecimal(tickSpace); diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTickLogarithmicCalculator.java b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTickLogarithmicCalculator.java index 88ab25b5bbfe569ae09a4f763832fefbe84508ee..b335cc95e01dea2d353b2d7494d02c034034bdcf 100644 --- a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTickLogarithmicCalculator.java +++ b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTickLogarithmicCalculator.java @@ -53,8 +53,8 @@ public class AxisTickLogarithmicCalculator extends AxisTickCalculator { return; } - // tick space - a percentage of the working space available for ticks, i.e. 95% - int tickSpace = Utils.getTickSpace(workingSpace); // in plot space + // tick space - a percentage of the working space available for ticks + int tickSpace = (int)(styleManager.getAxisTickSpaceRatio() * workingSpace); // in plot space // where the tick should begin in the working space in pixels int margin = Utils.getTickStartOffset(workingSpace, tickSpace); // in plot space double gridStep = getGridStepForDecimal(tickSpace); diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTickNumericalCalculator.java b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTickNumericalCalculator.java index e6d273f2043178ca1c3e76c421ce20c1bdef7f3b..85e296b640fdafd7f2014994818393e543f48ae4 100644 --- a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTickNumericalCalculator.java +++ b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTickNumericalCalculator.java @@ -53,8 +53,8 @@ public class AxisTickNumericalCalculator extends AxisTickCalculator { return; } - // tick space - a percentage of the working space available for ticks, i.e. 95% - int tickSpace = Utils.getTickSpace(workingSpace); // in plot space + // tick space - a percentage of the working space available for ticks + int tickSpace = (int)(styleManager.getAxisTickSpaceRatio() * workingSpace); // in plot space // where the tick should begin in the working space in pixels int margin = Utils.getTickStartOffset(workingSpace, tickSpace); // in plot space double gridStep = getGridStepForDecimal(tickSpace); 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 41a31636130f79f4558837b55cc41d7a0d4ad1b5..dd3ed68526ebf505b20e3f8062c012699abca317 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 @@ -24,6 +24,7 @@ import java.util.Set; import java.util.TreeSet; import com.xeiam.xchart.Series; +import com.xeiam.xchart.StyleManager; import com.xeiam.xchart.internal.Utils; /** @@ -45,13 +46,14 @@ public class PlotContentBarChart extends PlotContent { public void paint(Graphics2D g) { Rectangle2D bounds = plot.getBounds(); - + StyleManager styleManager = plot.getChartPainter().getStyleManager(); + // X-Axis - int xTickSpace = Utils.getTickSpace((int) bounds.getWidth()); + int xTickSpace = (int)(styleManager.getAxisTickSpaceRatio() * bounds.getWidth()); int xLeftMargin = Utils.getTickStartOffset((int) bounds.getWidth(), xTickSpace); // Y-Axis - int yTickSpace = Utils.getTickSpace((int) bounds.getHeight()); + int yTickSpace = (int)(styleManager.getAxisTickSpaceRatio() * bounds.getHeight()); int yTopMargin = Utils.getTickStartOffset((int) bounds.getHeight(), yTickSpace); // get all categories 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 2b4270c884d34728613785e2d139686c82d531f9..fd017fecb46283528f75547b6749c9793133a97e 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 @@ -25,6 +25,7 @@ import java.util.Date; import java.util.Iterator; import com.xeiam.xchart.Series; +import com.xeiam.xchart.StyleManager; import com.xeiam.xchart.StyleManager.ChartType; import com.xeiam.xchart.internal.Utils; import com.xeiam.xchart.internal.chartpart.Axis.AxisType; @@ -48,13 +49,14 @@ public class PlotContentLineChart extends PlotContent { public void paint(Graphics2D g) { Rectangle2D bounds = plot.getBounds(); + StyleManager styleManager = plot.getChartPainter().getStyleManager(); // X-Axis - int xTickSpace = Utils.getTickSpace((int) bounds.getWidth()); + int xTickSpace = (int)(styleManager.getAxisTickSpaceRatio() * bounds.getWidth()); int xLeftMargin = Utils.getTickStartOffset((int) bounds.getWidth(), xTickSpace); // Y-Axis - int yTickSpace = Utils.getTickSpace((int) bounds.getHeight()); + int yTickSpace = (int)(styleManager.getAxisTickSpaceRatio() * bounds.getHeight()); int yTopMargin = Utils.getTickStartOffset((int) bounds.getHeight(), yTickSpace); for (Series series : getChartPainter().getAxisPair().getSeriesMap().values()) {