diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/Axis.java b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/Axis.java index a253b26a8c1eb2a68fac45933c29d43a1be5aff2..1deb8df425321c6e1af69f9e2904c5364a14d011 100644 --- a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/Axis.java +++ b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/Axis.java @@ -88,7 +88,7 @@ public class Axis implements ChartPart { /** * Reset the default min and max values in preparation for calculating the actual min and max */ - void resetMinMax() { + void resetMinMax() { min = Double.MAX_VALUE; max = -Double.MAX_VALUE; @@ -156,25 +156,23 @@ public class Axis implements ChartPart { double approximateXAxisWidth = - getChartPainter().getWidth() + getChartPainter().getWidth() - - width // y-axis approx. width + - width // y-axis approx. width - - chartLegendWidth + - chartLegendWidth - - 2 - * getChartPainter().getStyleManager().getChartPadding() + - 2 * getChartPainter().getStyleManager().getChartPadding() - - (getChartPainter().getStyleManager().isYAxisTicksVisible() ? (getChartPainter().getStyleManager().getPlotPadding()) : 0) + - (getChartPainter().getStyleManager().isYAxisTicksVisible() ? (getChartPainter().getStyleManager().getPlotPadding()) : 0) - - (getChartPainter().getStyleManager().getLegendPosition() == LegendPosition.OutsideE && getChartPainter().getStyleManager().isLegendVisible() ? getChartPainter().getStyleManager() - .getChartPadding() : 0) + - (getChartPainter().getStyleManager().getLegendPosition() == LegendPosition.OutsideE && getChartPainter().getStyleManager().isLegendVisible() ? getChartPainter().getStyleManager() + .getChartPadding() : 0) ; - double height = - getChartPainter().getHeight() - yOffset - axisPair.getXAxis().getXAxisHeightHint(approximateXAxisWidth) - getChartPainter().getStyleManager().getPlotPadding() - - getChartPainter().getStyleManager().getChartPadding(); + double height = getChartPainter().getHeight() - yOffset - axisPair.getXAxis().getXAxisHeightHint(approximateXAxisWidth) - getChartPainter().getStyleManager().getPlotPadding() - getChartPainter() + .getStyleManager().getChartPadding(); Rectangle2D yAxisRectangle = new Rectangle2D.Double(xOffset, yOffset, width, height); this.paintZone = yAxisRectangle; // g.setColor(Color.green); @@ -199,9 +197,8 @@ public class Axis implements ChartPart { // calculate paint zone // |____________________| - double xOffset = - axisPair.getYAxis().getBounds().getWidth() + (getChartPainter().getStyleManager().isYAxisTicksVisible() ? getChartPainter().getStyleManager().getPlotPadding() : 0) - + getChartPainter().getStyleManager().getChartPadding(); + double xOffset = axisPair.getYAxis().getBounds().getWidth() + (getChartPainter().getStyleManager().isYAxisTicksVisible() ? getChartPainter().getStyleManager().getPlotPadding() : 0) + + getChartPainter().getStyleManager().getChartPadding(); double yOffset = axisPair.getYAxis().getBounds().getY() + axisPair.getYAxis().getBounds().getHeight() + getChartPainter().getStyleManager().getPlotPadding(); double chartLegendWidth = 0; @@ -211,27 +208,25 @@ public class Axis implements ChartPart { double width = - getChartPainter().getWidth() + getChartPainter().getWidth() - - axisPair.getYAxis().getBounds().getWidth() // y-axis was already painted + - axisPair.getYAxis().getBounds().getWidth() // y-axis was already painted - - chartLegendWidth + - chartLegendWidth - - 2 - * getChartPainter().getStyleManager().getChartPadding() + - 2 * getChartPainter().getStyleManager().getChartPadding() - - (getChartPainter().getStyleManager().isYAxisTicksVisible() ? (getChartPainter().getStyleManager().getPlotPadding()) : 0) + - (getChartPainter().getStyleManager().isYAxisTicksVisible() ? (getChartPainter().getStyleManager().getPlotPadding()) : 0) - - (getChartPainter().getStyleManager().getLegendPosition() == LegendPosition.OutsideE && getChartPainter().getStyleManager().isLegendVisible() ? getChartPainter().getStyleManager() - .getChartPadding() : 0) + - (getChartPainter().getStyleManager().getLegendPosition() == LegendPosition.OutsideE && getChartPainter().getStyleManager().isLegendVisible() ? getChartPainter().getStyleManager() + .getChartPadding() : 0) ; // 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 = - getChartPainter().getHeight() - axisPair.getYAxis().getBounds().getY() - axisPair.getYAxis().getBounds().getHeight() - getChartPainter().getStyleManager().getChartPadding() + double height = getChartPainter().getHeight() - axisPair.getYAxis().getBounds().getY() - axisPair.getYAxis().getBounds().getHeight() - getChartPainter().getStyleManager().getChartPadding() - getChartPainter().getStyleManager().getPlotPadding(); // System.out.println("height2: " + height2); @@ -276,17 +271,17 @@ public class Axis implements ChartPart { // get some real tick labels AxisTickCalculator axisTickCalculator = axisTick.getAxisTickCalculator(workingSpace); - String sampleLabel = axisTickCalculator.getTickLabels().get(0); + String sampleLabel = " "; // find the longest String in all the labels - for (int i = 1; i < axisTickCalculator.getTickLabels().size(); i++) { + for (int i = 0; i < axisTickCalculator.getTickLabels().size(); i++) { if (axisTickCalculator.getTickLabels().get(i) != null && axisTickCalculator.getTickLabels().get(i).length() > sampleLabel.length()) { sampleLabel = axisTickCalculator.getTickLabels().get(i); } } TextLayout textLayout = new TextLayout(sampleLabel, getChartPainter().getStyleManager().getAxisTickLabelsFont(), new FontRenderContext(null, true, false)); - AffineTransform rot = - getChartPainter().getStyleManager().getXAxisLabelRotation() == 0 ? null : AffineTransform.getRotateInstance(-1 * Math.toRadians(getChartPainter().getStyleManager().getXAxisLabelRotation())); + AffineTransform rot = getChartPainter().getStyleManager().getXAxisLabelRotation() == 0 ? null : AffineTransform.getRotateInstance(-1 * Math.toRadians(getChartPainter().getStyleManager() + .getXAxisLabelRotation())); Shape shape = textLayout.getOutline(rot); Rectangle2D rectangle = shape.getBounds(); axisTickLabelsHeight = rectangle.getHeight() + getChartPainter().getStyleManager().getAxisTickPadding() + getChartPainter().getStyleManager().getAxisTickMarkLength(); 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 ca206e2cca6f1d5482d5590ac072e753fefbd45a..f5e1e3ea8a09ca09e1a91e467968af1d322e79cc 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 @@ -61,10 +61,10 @@ public class AxisTickLogarithmicCalculator extends AxisTickCalculator { // where the tick should begin in the working space in pixels double margin = Utils.getTickStartOffset(workingSpace, tickSpace); // in plot space double gridStep = getGridStepForDecimal(tickSpace); - int logMin = (int) Math.floor(Math.log10(minValue)); - int logMax = (int) Math.ceil(Math.log10(maxValue)); // System.out.println("minValue: " + minValue); // System.out.println("maxValue: " + maxValue); + int logMin = (int) Math.floor(Math.log10(minValue)); + int logMax = (int) Math.ceil(Math.log10(maxValue)); // System.out.println("logMin: " + logMin); // System.out.println("logMax: " + logMax); @@ -91,7 +91,7 @@ public class AxisTickLogarithmicCalculator extends AxisTickCalculator { // System.out.println("tickStep: " + tickStep); // System.out.println("firstPosition: " + firstPosition); // System.out.println("i: " + i); - // System.out.println("pow(10, i).doubleValue(): " + pow(10, i).doubleValue()); + // System.out.println("Utils.pow(10, i): " + Utils.pow(10, i)); // using the .00000001 factor to deal with double value imprecision for (double j = firstPosition; j <= Utils.pow(10, i) + .00000001; j = j + tickStep) { @@ -114,8 +114,7 @@ public class AxisTickLogarithmicCalculator extends AxisTickCalculator { tickLabels.add(numberFormatter.formatLogNumber(j, axisDirection)); } else { - // Set a space to avoid Zero length string passed to TextLayout constructor - tickLabels.add(" "); + tickLabels.add(null); } // add all the tick marks though