From 1ea4a23f0e44d731a813666075a2a290c0071c94 Mon Sep 17 00:00:00 2001
From: Tim Molter <tim.molter@gmail.com>
Date: Wed, 22 Jun 2011 21:50:47 +0200
Subject: [PATCH] fixed y-axis rendering bug

---
 .settings/org.eclipse.jdt.core.prefs          |  12 ---
 dist/xchart-1.0.0.jar                         | Bin 45213 -> 47291 bytes
 src/com/xeiam/xcharts/AxisPair.java           |   7 +-
 src/com/xeiam/xcharts/AxisTick.java           |  28 +++---
 src/com/xeiam/xcharts/AxisTickLabels.java     |   4 +-
 src/com/xeiam/xcharts/AxisTickMarks.java      |   6 +-
 src/com/xeiam/xcharts/PlotContent.java        |  14 ++-
 src/com/xeiam/xcharts/PlotSurface.java        |   4 +-
 .../xeiam/xcharts/example/SwingChart4.java    |  83 ++++++++++++++++++
 9 files changed, 120 insertions(+), 38 deletions(-)
 delete mode 100644 .settings/org.eclipse.jdt.core.prefs
 create mode 100644 src/com/xeiam/xcharts/example/SwingChart4.java

diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index d42a54ce..00000000
--- a/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,12 +0,0 @@
-#Tue May 31 11:25:17 CEST 2011
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.6
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.6
diff --git a/dist/xchart-1.0.0.jar b/dist/xchart-1.0.0.jar
index 5ced7063708c9cfdfd170f588f87788ff6f9ab01..f63ad44f378aab088356e5bda79581b9338f6465 100644
GIT binary patch
delta 11183
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
Dy#7s-

delta 9350
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

diff --git a/src/com/xeiam/xcharts/AxisPair.java b/src/com/xeiam/xcharts/AxisPair.java
index ca173524..6fe117e3 100644
--- a/src/com/xeiam/xcharts/AxisPair.java
+++ b/src/com/xeiam/xcharts/AxisPair.java
@@ -98,16 +98,15 @@ public class AxisPair implements IChartPart {
     }
 
     public static int getTickSpace(int workingSpace) {
-
         int tickSpace = (int) (workingSpace * 0.95);
         return tickSpace;
     }
 
-    public static int getLeftMargin(int workingSpace, int tickSpace) {
+    public static int getMargin(int workingSpace, int tickSpace) {
 
         int marginSpace = workingSpace - tickSpace;
-        int leftMargin = (int) (marginSpace / 2.0);
-        return leftMargin;
+        int margin = (int) (marginSpace / 2.0);
+        return margin;
     }
 
     @Override
diff --git a/src/com/xeiam/xcharts/AxisTick.java b/src/com/xeiam/xcharts/AxisTick.java
index 61c8c502..4d0a14e2 100644
--- a/src/com/xeiam/xcharts/AxisTick.java
+++ b/src/com/xeiam/xcharts/AxisTick.java
@@ -131,47 +131,51 @@ public class AxisTick implements IChartPart {
      */
     private void determineAxisTick() {
 
+        System.out.println("workingSpace= " + workingSpace);
+
         int tickSpace = AxisPair.getTickSpace(workingSpace);
-        int leftMargin = AxisPair.getLeftMargin(workingSpace, tickSpace);
+        System.out.println("tickSpace= " + tickSpace);
+
+        int margin = AxisPair.getMargin(workingSpace, tickSpace);
 
         final BigDecimal MIN = new BigDecimal(new Double(axis.getMin()).toString());
         BigDecimal firstPosition;
-        BigDecimal tickStep = getGridStep();
+        BigDecimal gridStep = getGridStep(tickSpace);
 
-        if (MIN.remainder(tickStep).doubleValue() <= 0) {
-            firstPosition = MIN.subtract(MIN.remainder(tickStep));
+        double xyz = MIN.remainder(gridStep).doubleValue();
+        if (xyz <= 0.0) {
+            firstPosition = MIN.subtract(MIN.remainder(gridStep));
         } else {
-            firstPosition = MIN.subtract(MIN.remainder(tickStep)).add(tickStep);
+            firstPosition = MIN.subtract(MIN.remainder(gridStep)).add(gridStep);
         }
 
-        for (BigDecimal b = firstPosition; b.doubleValue() <= axis.getMax(); b = b.add(tickStep)) {
+        for (BigDecimal b = firstPosition; b.doubleValue() <= axis.getMax(); b = b.add(gridStep)) {
 
             // System.out.println("b= " + b);
             tickLabels.add(format(b.doubleValue()));
-            int tickLabelPosition = (int) (leftMargin + ((b.doubleValue() - axis.getMin()) / (axis.getMax() - axis.getMin()) * tickSpace));
+            int tickLabelPosition = (int) (margin + ((b.doubleValue() - axis.getMin()) / (axis.getMax() - axis.getMin()) * tickSpace));
+            // System.out.println("tickLabelPosition= " + tickLabelPosition);
 
             // a check if all axis data are the exact same values
             if (Math.abs(axis.getMax() - axis.getMin()) / 5 == 0.0) {
-                tickLabelPosition = (int) (leftMargin + tickSpace / 2.0);
+                tickLabelPosition = (int) (margin + tickSpace / 2.0);
             }
 
             tickLocations.add(tickLabelPosition);
         }
     }
 
-    private BigDecimal getGridStep() {
+    private BigDecimal getGridStep(int tickSpace) {
 
         double length = Math.abs(axis.getMax() - axis.getMin());
-        double gridStepHint = length / workingSpace * DEFAULT_TICK_MARK_STEP_HINT;
+        double gridStepHint = length / tickSpace * DEFAULT_TICK_MARK_STEP_HINT;
 
         // gridStepHint --> mantissa * 10 ** exponent
         // e.g. 724.1 --> 7.241 * 10 ** 2
         double mantissa = gridStepHint;
         int exponent = 0;
         if (mantissa == 0) {
-            // mantissa = 0.0;
             exponent = 1;
-
         } else if (mantissa < 1) {
             while (mantissa < 1) {
                 mantissa *= 10.0;
diff --git a/src/com/xeiam/xcharts/AxisTickLabels.java b/src/com/xeiam/xcharts/AxisTickLabels.java
index c502526c..9889408c 100644
--- a/src/com/xeiam/xcharts/AxisTickLabels.java
+++ b/src/com/xeiam/xcharts/AxisTickLabels.java
@@ -68,11 +68,11 @@ public class AxisTickLabels implements IChartPart {
             for (int i = 0; i < axisTick.getTickLabels().size(); i++) {
 
                 String tickLabel = axisTick.getTickLabels().get(i);
-                int tickLocation = axisTick.getTickLocations().get(axisTick.getTickLocations().size() - i - 1); // reverse traverse
+                int tickLocation = axisTick.getTickLocations().get(i);
 
                 TextLayout layout = new TextLayout(tickLabel, font, new FontRenderContext(null, true, false));
                 Rectangle tickLabelBounds = layout.getPixelBounds(null, 0, 0);
-                layout.draw(g, xOffset, (int) (yOffset + tickLocation + tickLabelBounds.getHeight() / 2.0));
+                layout.draw(g, xOffset, (int) (yOffset + axis.getPaintZone().getHeight() - tickLocation + tickLabelBounds.getHeight() / 2.0));
 
                 if (tickLabelBounds.getWidth() > maxTickLabelWidth) {
                     maxTickLabelWidth = (int) tickLabelBounds.getWidth();
diff --git a/src/com/xeiam/xcharts/AxisTickMarks.java b/src/com/xeiam/xcharts/AxisTickMarks.java
index 17b7456d..aae1106e 100644
--- a/src/com/xeiam/xcharts/AxisTickMarks.java
+++ b/src/com/xeiam/xcharts/AxisTickMarks.java
@@ -57,7 +57,7 @@ public class AxisTickMarks implements IChartPart {
 
         g.setColor(foreground);
 
-        if (axis.getDirection() == Axis.Direction.Y) {
+        if (axis.getDirection() == Axis.Direction.Y) { // Y-Axis
 
             int xOffset = (int) (axisTick.getAxisTickLabels().getBounds().getX() + axisTick.getAxisTickLabels().getBounds().getWidth() + AxisTick.AXIS_TICK_PADDING);
             int yOffset = (int) (axis.getPaintZone().getY());
@@ -68,7 +68,7 @@ public class AxisTickMarks implements IChartPart {
                 g.setColor(foreground);
                 g.setStroke(stroke);
 
-                g.drawLine(xOffset, yOffset + tickLocation, xOffset + TICK_LENGTH, yOffset + tickLocation);
+                g.drawLine(xOffset, yOffset + (int) (axis.getPaintZone().getHeight() - tickLocation), xOffset + TICK_LENGTH, yOffset + (int) (axis.getPaintZone().getHeight() - tickLocation));
 
             }
 
@@ -77,7 +77,7 @@ public class AxisTickMarks implements IChartPart {
             // g.setColor(Color.blue);
             // g.draw(bounds);
 
-        } else {
+        } else { // X-Axis
 
             int xOffset = (int) (axis.getPaintZone().getX());
             int yOffset = (int) (axisTick.getAxisTickLabels().getBounds().getY() - AxisTick.AXIS_TICK_PADDING);
diff --git a/src/com/xeiam/xcharts/PlotContent.java b/src/com/xeiam/xcharts/PlotContent.java
index e4c96288..3e45d230 100644
--- a/src/com/xeiam/xcharts/PlotContent.java
+++ b/src/com/xeiam/xcharts/PlotContent.java
@@ -53,11 +53,11 @@ public class PlotContent implements IChartPart {
 
             // X-Axis
             int xTickSpace = AxisPair.getTickSpace((int) bounds.getWidth());
-            int xLeftMargin = AxisPair.getLeftMargin((int) bounds.getWidth(), xTickSpace);
+            int xLeftMargin = AxisPair.getMargin((int) bounds.getWidth(), xTickSpace);
 
             // Y-Axis
             int yTickSpace = AxisPair.getTickSpace((int) bounds.getHeight());
-            int yLeftMargin = AxisPair.getLeftMargin((int) bounds.getHeight(), yTickSpace);
+            int yTopMargin = AxisPair.getMargin((int) bounds.getHeight(), yTickSpace);
 
             // data points
             double[] xData = series.getxData();
@@ -72,8 +72,16 @@ public class PlotContent implements IChartPart {
 
             for (int i = 0; i < xData.length; i++) {
 
+                if (Double.isInfinite(xData[i]) || Double.isNaN(xData[i])) {
+                    throw new RuntimeException("Infinite or NaN values in xAxis Data not allowed!!!");
+                }
+
+                if (Double.isInfinite(yData[i]) || Double.isNaN(yData[i])) {
+                    throw new RuntimeException("Infinite or NaN values in yAxis Data not allowed!!!");
+                }
+
                 int xTransform = (int) (xLeftMargin + ((xData[i] - xMin) / (xMax - xMin) * xTickSpace));
-                int yTransform = (int) (bounds.getHeight() - (yLeftMargin + (yData[i] - yMin) / (yMax - yMin) * yTickSpace));
+                int yTransform = (int) (bounds.getHeight() - (yTopMargin + (yData[i] - yMin) / (yMax - yMin) * yTickSpace));
 
                 // a check if all y data are the exact same values
                 if (Math.abs(xMax - xMin) / 5 == 0.0) {
diff --git a/src/com/xeiam/xcharts/PlotSurface.java b/src/com/xeiam/xcharts/PlotSurface.java
index 7bff1566..c62301c5 100644
--- a/src/com/xeiam/xcharts/PlotSurface.java
+++ b/src/com/xeiam/xcharts/PlotSurface.java
@@ -73,8 +73,8 @@ public class PlotSurface implements IChartPart {
 
             g.setColor(foreground);
             g.setStroke(stroke);
-
-            g.drawLine((int) bounds.getX(), (int) (bounds.getY() + tickLocation), (int) (bounds.getX() + bounds.getWidth() - 2), (int) (bounds.getY() + tickLocation));
+            // System.out.println("bounds.getY()= " + bounds.getY());
+            g.drawLine((int) bounds.getX(), (int) (bounds.getY() + bounds.getHeight() - tickLocation), (int) (bounds.getX() + bounds.getWidth() - 2), (int) (bounds.getY() + bounds.getHeight() - tickLocation));
         }
 
         // vertical
diff --git a/src/com/xeiam/xcharts/example/SwingChart4.java b/src/com/xeiam/xcharts/example/SwingChart4.java
new file mode 100644
index 00000000..0ebd9930
--- /dev/null
+++ b/src/com/xeiam/xcharts/example/SwingChart4.java
@@ -0,0 +1,83 @@
+/**
+ * Copyright 2011 Xeiam LLC.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.xeiam.xcharts.example;
+
+import java.awt.BorderLayout;
+
+import javax.swing.JFrame;
+import javax.swing.JPanel;
+
+import com.xeiam.xcharts.Chart;
+import com.xeiam.xcharts.JChartPanel;
+import com.xeiam.xcharts.series.Series;
+import com.xeiam.xcharts.series.SeriesMarker;
+
+/**
+ * Demonstrated/Tests plotting horizontal and vertical lines
+ * 
+ * @author timmolter
+ */
+public class SwingChart4 {
+
+    private static void createAndShowGUI() {
+
+        // generates linear data
+        double[] yData1 = new double[] { 0.0, 0.0, 0.0, -10.0, 15.0, 15.0 };
+
+        // Create and set up the window.
+        JFrame frame = new JFrame("XChart");
+        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+        frame.setUndecorated(true);
+
+        // Create Chart
+        Chart chart = new Chart(800, 600);
+
+        // Customize Chart
+        chart.setChartTitle("Sample Chart");
+        chart.setXAxisTitle("X");
+        chart.setYAxisTitle("Y");
+        chart.setChartTitleVisible(false);
+        chart.setChartLegendVisible(false);
+        chart.setAxisTitlesVisible(false);
+
+        // Series
+        Series series1 = chart.addSeries("y=0", null, yData1);
+        series1.setMarker(SeriesMarker.NONE);
+
+        // Swing
+        JPanel chartPanel = new JChartPanel(chart);
+
+        // add the panel to the content pane
+        frame.getContentPane().add(chartPanel, BorderLayout.CENTER);
+
+        // Display the window
+        frame.pack();
+        frame.setLocationRelativeTo(null); // centers on screen
+        frame.setVisible(true);
+    }
+
+    public static void main(String[] args) {
+
+        // Schedule a job for the event-dispatching thread:
+        // creating and showing this application's GUI.
+        javax.swing.SwingUtilities.invokeLater(new Runnable() {
+            @Override
+            public void run() {
+                createAndShowGUI();
+            }
+        });
+    }
+}
-- 
GitLab