From 75abc405fbfddee931facd317fd5c4368de66245 Mon Sep 17 00:00:00 2001
From: Tim Molter <tim.molter@gmail.com>
Date: Sun, 10 Feb 2013 16:05:28 +0100
Subject: [PATCH] added line and scatter chart differentiation

---
 .../com/xeiam/xchart/demo/XChartDemo.java     | 56 +++++++++-------
 .../demo/charts/{ => line}/ExampleChart.java  |  2 +-
 .../{Example1.java => line/LineChart01.java}  | 19 ++++--
 .../{Example2.java => line/LineChart02.java}  | 14 ++--
 .../{Example3.java => line/LineChart03.java}  |  9 +--
 .../{Example4.java => line/LineChart04.java}  |  9 +--
 .../{Example5.java => line/LineChart05.java}  |  9 +--
 .../{Example6.java => line/LineChart06.java}  |  9 +--
 .../{Example7.java => line/LineChart07.java}  |  9 +--
 .../{Example8.java => line/LineChart08.java}  |  9 +--
 .../{Example9.java => line/LineChart09.java}  |  9 +--
 .../{Example10.java => line/LineChart10.java} |  9 +--
 .../{Example11.java => line/LineChart11.java} |  8 +--
 .../demo/charts/scatter/ScatterChart01.java   | 67 +++++++++++++++++++
 .../com/xeiam/xchart/example/Example1.java    |  3 +-
 .../src/main/java/com/xeiam/xchart/Chart.java |  4 +-
 .../java/com/xeiam/xchart/ChartBuilder.java   | 31 +++++++--
 .../main/java/com/xeiam/xchart/LineChart.java | 52 ++++++++++++++
 .../java/com/xeiam/xchart/QuickChart.java     |  4 +-
 .../java/com/xeiam/xchart/ScatterChart.java   | 52 ++++++++++++++
 .../xchart/internal/chartpart/AxisPair.java   |  2 +-
 .../internal/chartpart/PlotContent.java       |  5 +-
 .../java/com/xeiam/xchart/style/Series.java   |  1 -
 .../SeriesColorMarkerLineStyle.java           |  2 +-
 .../SeriesColorMarkerLineStyleCycler.java     |  5 +-
 25 files changed, 310 insertions(+), 89 deletions(-)
 rename xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/{ => line}/ExampleChart.java (96%)
 rename xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/{Example1.java => line/LineChart01.java} (93%)
 rename xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/{Example2.java => line/LineChart02.java} (85%)
 rename xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/{Example3.java => line/LineChart03.java} (87%)
 rename xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/{Example4.java => line/LineChart04.java} (89%)
 rename xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/{Example5.java => line/LineChart05.java} (84%)
 rename xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/{Example6.java => line/LineChart06.java} (83%)
 rename xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/{Example7.java => line/LineChart07.java} (86%)
 rename xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/{Example8.java => line/LineChart08.java} (89%)
 rename xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/{Example9.java => line/LineChart09.java} (93%)
 rename xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/{Example10.java => line/LineChart10.java} (88%)
 rename xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/{Example11.java => line/LineChart11.java} (84%)
 create mode 100644 xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/scatter/ScatterChart01.java
 create mode 100644 xchart/src/main/java/com/xeiam/xchart/LineChart.java
 create mode 100644 xchart/src/main/java/com/xeiam/xchart/ScatterChart.java
 rename xchart/src/main/java/com/xeiam/xchart/{internal/misc => style}/SeriesColorMarkerLineStyle.java (97%)
 rename xchart/src/main/java/com/xeiam/xchart/{internal/misc => style}/SeriesColorMarkerLineStyleCycler.java (95%)

diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/demo/XChartDemo.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/XChartDemo.java
index 5bae95c0..a7f702cf 100644
--- a/xchart-demo/src/main/java/com/xeiam/xchart/demo/XChartDemo.java
+++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/XChartDemo.java
@@ -29,17 +29,18 @@ import javax.swing.tree.DefaultMutableTreeNode;
 import javax.swing.tree.TreeSelectionModel;
 
 import com.xeiam.xchart.XChartPanel;
-import com.xeiam.xchart.demo.charts.Example1;
-import com.xeiam.xchart.demo.charts.Example10;
-import com.xeiam.xchart.demo.charts.Example11;
-import com.xeiam.xchart.demo.charts.Example2;
-import com.xeiam.xchart.demo.charts.Example3;
-import com.xeiam.xchart.demo.charts.Example4;
-import com.xeiam.xchart.demo.charts.Example5;
-import com.xeiam.xchart.demo.charts.Example6;
-import com.xeiam.xchart.demo.charts.Example7;
-import com.xeiam.xchart.demo.charts.Example8;
-import com.xeiam.xchart.demo.charts.Example9;
+import com.xeiam.xchart.demo.charts.line.LineChart01;
+import com.xeiam.xchart.demo.charts.line.LineChart02;
+import com.xeiam.xchart.demo.charts.line.LineChart03;
+import com.xeiam.xchart.demo.charts.line.LineChart04;
+import com.xeiam.xchart.demo.charts.line.LineChart05;
+import com.xeiam.xchart.demo.charts.line.LineChart06;
+import com.xeiam.xchart.demo.charts.line.LineChart07;
+import com.xeiam.xchart.demo.charts.line.LineChart08;
+import com.xeiam.xchart.demo.charts.line.LineChart09;
+import com.xeiam.xchart.demo.charts.line.LineChart10;
+import com.xeiam.xchart.demo.charts.line.LineChart11;
+import com.xeiam.xchart.demo.charts.scatter.ScatterChart01;
 
 /**
  * Class containing all XChart example charts
@@ -79,7 +80,7 @@ public class XChartDemo extends JPanel implements TreeSelectionListener {
     JScrollPane treeView = new JScrollPane(tree);
 
     // Create Chart Panel
-    chartPanel = new XChartPanel(new Example1().getChart());
+    chartPanel = new XChartPanel(new LineChart01().getChart());
 
     // Add the scroll panes to a split pane.
     splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT);
@@ -129,41 +130,44 @@ public class XChartDemo extends JPanel implements TreeSelectionListener {
     category = new DefaultMutableTreeNode("Line Charts");
     top.add(category);
 
-    chart = new DefaultMutableTreeNode(new ChartInfo("Example1 - Manual Data", new Example1().getChart()));
+    chart = new DefaultMutableTreeNode(new ChartInfo("LineChart01 - Manual Data", new LineChart01().getChart()));
     category.add(chart);
 
-    chart = new DefaultMutableTreeNode(new ChartInfo("Example2 - Customized series style", new Example2().getChart()));
+    chart = new DefaultMutableTreeNode(new ChartInfo("LineChart02 - Customized series style", new LineChart02().getChart()));
     category.add(chart);
 
-    chart = new DefaultMutableTreeNode(new ChartInfo("Example3 - Multiple curves on one Chart", new Example3().getChart()));
+    chart = new DefaultMutableTreeNode(new ChartInfo("LineChart03 - Multiple curves on one Chart", new LineChart03().getChart()));
     category.add(chart);
 
-    chart = new DefaultMutableTreeNode(new ChartInfo("Example4 - Date Axis", new Example4().getChart()));
+    chart = new DefaultMutableTreeNode(new ChartInfo("LineChart04 - Date Axis", new LineChart04().getChart()));
     category.add(chart);
 
-    chart = new DefaultMutableTreeNode(new ChartInfo("Example5 - Vertical and horizontal lines", new Example5().getChart()));
+    chart = new DefaultMutableTreeNode(new ChartInfo("LineChart05 - Vertical and horizontal lines", new LineChart05().getChart()));
     category.add(chart);
 
-    // Second category
-    category = new DefaultMutableTreeNode("More Charts");
-    top.add(category);
+    chart = new DefaultMutableTreeNode(new ChartInfo("LineChart06 - Single point", new LineChart06().getChart()));
+    category.add(chart);
 
-    chart = new DefaultMutableTreeNode(new ChartInfo("Example6 - Single point", new Example6().getChart()));
+    chart = new DefaultMutableTreeNode(new ChartInfo("LineChart07 - Longs as X-Axis data", new LineChart07().getChart()));
     category.add(chart);
 
-    chart = new DefaultMutableTreeNode(new ChartInfo("Example7 - Longs as X-Axis data", new Example7().getChart()));
+    chart = new DefaultMutableTreeNode(new ChartInfo("LineChart08 - Error bars", new LineChart08().getChart()));
     category.add(chart);
 
-    chart = new DefaultMutableTreeNode(new ChartInfo("Example8 - Error bars", new Example8().getChart()));
+    chart = new DefaultMutableTreeNode(new ChartInfo("LineChart09 - Extensive chart customization", new LineChart09().getChart()));
     category.add(chart);
 
-    chart = new DefaultMutableTreeNode(new ChartInfo("Example9 - Extensive chart customization", new Example9().getChart()));
+    chart = new DefaultMutableTreeNode(new ChartInfo("LineChart10 - Plots Hundreds of Series on One Plot", new LineChart10().getChart()));
     category.add(chart);
 
-    chart = new DefaultMutableTreeNode(new ChartInfo("Example10 - Plots Hundreds of Series on One Plot", new Example10().getChart()));
+    chart = new DefaultMutableTreeNode(new ChartInfo("LineChart11 - Using ChartBuilder to Make a Chart", new LineChart11().getChart()));
     category.add(chart);
 
-    chart = new DefaultMutableTreeNode(new ChartInfo("Example11 - Using ChartBuilder to Make a Chart", new Example11().getChart()));
+    // Second category
+    category = new DefaultMutableTreeNode("Scatter Charts");
+    top.add(category);
+
+    chart = new DefaultMutableTreeNode(new ChartInfo("ScatterChart01 - Gaussian Blob Scatter Plot", new ScatterChart01().getChart()));
     category.add(chart);
 
   }
diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/ExampleChart.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/line/ExampleChart.java
similarity index 96%
rename from xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/ExampleChart.java
rename to xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/line/ExampleChart.java
index 60c9cf86..51815b69 100644
--- a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/ExampleChart.java
+++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/line/ExampleChart.java
@@ -19,7 +19,7 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-package com.xeiam.xchart.demo.charts;
+package com.xeiam.xchart.demo.charts.line;
 
 import com.xeiam.xchart.Chart;
 
diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example1.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/line/LineChart01.java
similarity index 93%
rename from xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example1.java
rename to xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/line/LineChart01.java
index 19e3cea8..905e7bf5 100644
--- a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example1.java
+++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/line/LineChart01.java
@@ -13,26 +13,33 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.xeiam.xchart.demo.charts;
+package com.xeiam.xchart.demo.charts.line;
 
 import java.util.Arrays;
 import java.util.Collection;
 
 import com.xeiam.xchart.Chart;
+import com.xeiam.xchart.LineChart;
 import com.xeiam.xchart.SwingWrapper;
 import com.xeiam.xchart.style.Series;
 import com.xeiam.xchart.style.SeriesMarker;
 
 /**
- * Manual Data
+ * Hardcoded Data
+ * <p>
+ * Demonstrates the following:
+ * <ul>
+ * <li>Series data hardcoded, perhaps copied from elsewhere</li>
+ * <li>LineChart without series markers</li>
+ * </ul>
  * 
  * @author timmolter
  */
-public class Example1 implements ExampleChart {
+public class LineChart01 implements ExampleChart {
 
   public static void main(String[] args) {
 
-    ExampleChart exampleChart = new Example1();
+    ExampleChart exampleChart = new LineChart01();
     Chart chart = exampleChart.getChart();
     new SwingWrapper(chart).displayChart();
   }
@@ -53,6 +60,7 @@ public class Example1 implements ExampleChart {
         -0.491143625364344, -0.4842915805643152, -0.47552825814757643, -0.4648882429441252, -0.4524135262330092, -0.438153340021931, -0.42216396275100676, -0.4045084971874727, -0.3852566213878937,
         -0.36448431371070455, -0.3422735529643432, -0.31871199487434343, -0.29389262614623524, -0.26791339748949666, -0.2408768370508561, -0.2128896457825349, -0.18406227634233727,
         -0.15450849718747214, -0.12434494358242552, -0.0936906572928606, -0.06266661678215013, -0.03139525976465486, 2.097981369335578E-15 };
+
     Collection<Number> xData = Arrays.asList(xDataArray);
 
     Number[] yDataArray = new Number[] { 0.0, 1.5702142318133935E-5, 3.13688735543879E-5, 4.703341403158832E-5, 6.303295245179154E-5, 8.092859563778825E-5, 1.0594882618710001E-4,
@@ -68,10 +76,11 @@ public class Example1 implements ExampleChart {
         -2.4744573769866404E-4, -2.4122358912925663E-4, -2.3473774775902484E-4, -2.2772135357722773E-4, -2.2006305955750752E-4, -2.1171197663128998E-4, -2.026763153011749E-4, -1.928814887412768E-4,
         -1.8242620113215842E-4, -1.712818057089484E-4, -1.5947175495155755E-4, -1.470534737044005E-4, -1.340464949116753E-4, -1.2051929111759324E-4, -1.0651565202537847E-4, -9.209212285608304E-5,
         -7.730521584738858E-5, -6.221344753211741E-5, -4.687672566856378E-5, -3.135450711247751E-5, -1.5708413280955366E-5, 1.0498035802487025E-18 };
+
     Collection<Number> yData = Arrays.asList(yDataArray);
 
     // Create Chart
-    Chart chart = new Chart(800, 600);
+    Chart chart = new LineChart(800, 600);
 
     // Customize Chart
     chart.setChartTitle("Example1");
diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example2.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/line/LineChart02.java
similarity index 85%
rename from xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example2.java
rename to xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/line/LineChart02.java
index 7eae57a5..c84f1b9a 100644
--- a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example2.java
+++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/line/LineChart02.java
@@ -13,12 +13,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.xeiam.xchart.demo.charts;
+package com.xeiam.xchart.demo.charts.line;
 
 import java.util.ArrayList;
 import java.util.List;
 
 import com.xeiam.xchart.Chart;
+import com.xeiam.xchart.LineChart;
 import com.xeiam.xchart.SwingWrapper;
 import com.xeiam.xchart.style.Series;
 import com.xeiam.xchart.style.SeriesColor;
@@ -27,14 +28,19 @@ import com.xeiam.xchart.style.SeriesMarker;
 
 /**
  * Sine wave with customized series style
+ * <p>
+ * * Demonstrates the following:
+ * <ul>
+ * <li>Customizing the series style properties</li>
+ * </ul>
  * 
  * @author timmolter
  */
-public class Example2 implements ExampleChart {
+public class LineChart02 implements ExampleChart {
 
   public static void main(String[] args) {
 
-    ExampleChart exampleChart = new Example2();
+    ExampleChart exampleChart = new LineChart02();
     Chart chart = exampleChart.getChart();
     new SwingWrapper(chart).displayChart();
   }
@@ -53,7 +59,7 @@ public class Example2 implements ExampleChart {
     }
 
     // Create Chart
-    Chart chart = new Chart(800, 600);
+    Chart chart = new LineChart(800, 600);
 
     // Customize Chart
     chart.getStyleManager().setChartTitleVisible(false);
diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example3.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/line/LineChart03.java
similarity index 87%
rename from xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example3.java
rename to xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/line/LineChart03.java
index 9b4659d3..a76c69df 100644
--- a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example3.java
+++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/line/LineChart03.java
@@ -13,12 +13,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.xeiam.xchart.demo.charts;
+package com.xeiam.xchart.demo.charts.line;
 
 import java.util.ArrayList;
 import java.util.Collection;
 
 import com.xeiam.xchart.Chart;
+import com.xeiam.xchart.LineChart;
 import com.xeiam.xchart.SwingWrapper;
 
 /**
@@ -26,11 +27,11 @@ import com.xeiam.xchart.SwingWrapper;
  * 
  * @author timmolter
  */
-public class Example3 implements ExampleChart {
+public class LineChart03 implements ExampleChart {
 
   public static void main(String[] args) {
 
-    ExampleChart exampleChart = new Example3();
+    ExampleChart exampleChart = new LineChart03();
     Chart chart = exampleChart.getChart();
     new SwingWrapper(chart).displayChart();
   }
@@ -39,7 +40,7 @@ public class Example3 implements ExampleChart {
   public Chart getChart() {
 
     // Create Chart
-    Chart chart = new Chart(800, 600);
+    Chart chart = new LineChart(800, 600);
 
     for (int i = 1; i <= 14; i++) {
 
diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example4.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/line/LineChart04.java
similarity index 89%
rename from xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example4.java
rename to xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/line/LineChart04.java
index b73bb55a..efc9b7b3 100644
--- a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example4.java
+++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/line/LineChart04.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.xeiam.xchart.demo.charts;
+package com.xeiam.xchart.demo.charts.line;
 
 import java.text.DateFormat;
 import java.text.ParseException;
@@ -24,6 +24,7 @@ import java.util.Date;
 import java.util.TimeZone;
 
 import com.xeiam.xchart.Chart;
+import com.xeiam.xchart.LineChart;
 import com.xeiam.xchart.SwingWrapper;
 import com.xeiam.xchart.style.Series;
 
@@ -32,11 +33,11 @@ import com.xeiam.xchart.style.Series;
  * 
  * @author timmolter
  */
-public class Example4 implements ExampleChart {
+public class LineChart04 implements ExampleChart {
 
   public static void main(String[] args) {
 
-    ExampleChart exampleChart = new Example4();
+    ExampleChart exampleChart = new LineChart04();
     Chart chart = exampleChart.getChart();
     new SwingWrapper(chart).displayChart();
   }
@@ -45,7 +46,7 @@ public class Example4 implements ExampleChart {
   public Chart getChart() {
 
     // Create Chart
-    Chart chart = new Chart(800, 600);
+    Chart chart = new LineChart(800, 600);
 
     // generates linear data
     Collection<Date> xData = new ArrayList<Date>();
diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example5.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/line/LineChart05.java
similarity index 84%
rename from xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example5.java
rename to xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/line/LineChart05.java
index 7f8e9584..ff22f9c4 100644
--- a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example5.java
+++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/line/LineChart05.java
@@ -13,9 +13,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.xeiam.xchart.demo.charts;
+package com.xeiam.xchart.demo.charts.line;
 
 import com.xeiam.xchart.Chart;
+import com.xeiam.xchart.LineChart;
 import com.xeiam.xchart.SwingWrapper;
 
 /**
@@ -23,11 +24,11 @@ import com.xeiam.xchart.SwingWrapper;
  * 
  * @author timmolter
  */
-public class Example5 implements ExampleChart {
+public class LineChart05 implements ExampleChart {
 
   public static void main(String[] args) {
 
-    ExampleChart exampleChart = new Example5();
+    ExampleChart exampleChart = new LineChart05();
     Chart chart = exampleChart.getChart();
     new SwingWrapper(chart).displayChart();
   }
@@ -36,7 +37,7 @@ public class Example5 implements ExampleChart {
   public Chart getChart() {
 
     // Create Chart
-    Chart chart = new Chart(800, 600);
+    Chart chart = new LineChart(800, 600);
 
     // Customize Chart
     chart.setChartTitle("Example5");
diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example6.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/line/LineChart06.java
similarity index 83%
rename from xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example6.java
rename to xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/line/LineChart06.java
index ef8b9e73..ab0f61dd 100644
--- a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example6.java
+++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/line/LineChart06.java
@@ -13,9 +13,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.xeiam.xchart.demo.charts;
+package com.xeiam.xchart.demo.charts.line;
 
 import com.xeiam.xchart.Chart;
+import com.xeiam.xchart.LineChart;
 import com.xeiam.xchart.SwingWrapper;
 
 /**
@@ -23,11 +24,11 @@ import com.xeiam.xchart.SwingWrapper;
  * 
  * @author timmolter
  */
-public class Example6 implements ExampleChart {
+public class LineChart06 implements ExampleChart {
 
   public static void main(String[] args) {
 
-    ExampleChart exampleChart = new Example6();
+    ExampleChart exampleChart = new LineChart06();
     Chart chart = exampleChart.getChart();
     new SwingWrapper(chart).displayChart();
   }
@@ -36,7 +37,7 @@ public class Example6 implements ExampleChart {
   public Chart getChart() {
 
     // Create Chart
-    Chart chart = new Chart(800, 600);
+    Chart chart = new LineChart(800, 600);
 
     // Customize Chart
     chart.setChartTitle("Example6");
diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example7.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/line/LineChart07.java
similarity index 86%
rename from xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example7.java
rename to xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/line/LineChart07.java
index 0b006b1d..2506a99d 100644
--- a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example7.java
+++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/line/LineChart07.java
@@ -13,12 +13,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.xeiam.xchart.demo.charts;
+package com.xeiam.xchart.demo.charts.line;
 
 import java.util.Arrays;
 import java.util.Collection;
 
 import com.xeiam.xchart.Chart;
+import com.xeiam.xchart.LineChart;
 import com.xeiam.xchart.SwingWrapper;
 
 /**
@@ -26,11 +27,11 @@ import com.xeiam.xchart.SwingWrapper;
  * 
  * @author timmolter
  */
-public class Example7 implements ExampleChart {
+public class LineChart07 implements ExampleChart {
 
   public static void main(String[] args) {
 
-    ExampleChart exampleChart = new Example7();
+    ExampleChart exampleChart = new LineChart07();
     Chart chart = exampleChart.getChart();
     new SwingWrapper(chart).displayChart();
   }
@@ -42,7 +43,7 @@ public class Example7 implements ExampleChart {
     Collection<Number> yData = Arrays.asList(new Number[] { 0.0, 1.0, 2.0, 0.0, 1.0, 2.0, 0.0, 1.0, 2.0, 0.0 });
 
     // Create Chart
-    Chart chart = new Chart(800, 600);
+    Chart chart = new LineChart(800, 600);
     chart.setChartTitle("Example7");
     chart.setXAxisTitle("X");
     chart.setYAxisTitle("Y");
diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example8.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/line/LineChart08.java
similarity index 89%
rename from xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example8.java
rename to xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/line/LineChart08.java
index ce2a4429..d7926a1d 100644
--- a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example8.java
+++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/line/LineChart08.java
@@ -13,12 +13,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.xeiam.xchart.demo.charts;
+package com.xeiam.xchart.demo.charts.line;
 
 import java.util.ArrayList;
 import java.util.Collection;
 
 import com.xeiam.xchart.Chart;
+import com.xeiam.xchart.LineChart;
 import com.xeiam.xchart.SwingWrapper;
 import com.xeiam.xchart.style.Series;
 import com.xeiam.xchart.style.SeriesColor;
@@ -30,11 +31,11 @@ import com.xeiam.xchart.style.SeriesMarker;
  * 
  * @author timmolter
  */
-public class Example8 implements ExampleChart {
+public class LineChart08 implements ExampleChart {
 
   public static void main(String[] args) {
 
-    ExampleChart exampleChart = new Example8();
+    ExampleChart exampleChart = new LineChart08();
     Chart chart = exampleChart.getChart();
     new SwingWrapper(chart).displayChart();
   }
@@ -54,7 +55,7 @@ public class Example8 implements ExampleChart {
     }
 
     // Create Chart
-    Chart chart = new Chart(800, 600);
+    Chart chart = new LineChart(800, 600);
 
     // Customize Chart
     chart.getStyleManager().setChartTitleVisible(false);
diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example9.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/line/LineChart09.java
similarity index 93%
rename from xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example9.java
rename to xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/line/LineChart09.java
index 9d669ed8..7be60a66 100644
--- a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example9.java
+++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/line/LineChart09.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.xeiam.xchart.demo.charts;
+package com.xeiam.xchart.demo.charts.line;
 
 import java.awt.Color;
 import java.awt.Font;
@@ -26,6 +26,7 @@ import java.util.Date;
 import java.util.Locale;
 
 import com.xeiam.xchart.Chart;
+import com.xeiam.xchart.LineChart;
 import com.xeiam.xchart.SwingWrapper;
 import com.xeiam.xchart.style.ChartColor;
 import com.xeiam.xchart.style.Series;
@@ -38,11 +39,11 @@ import com.xeiam.xchart.style.SeriesMarker;
  * 
  * @author timmolter
  */
-public class Example9 implements ExampleChart {
+public class LineChart09 implements ExampleChart {
 
   public static void main(String[] args) {
 
-    ExampleChart exampleChart = new Example9();
+    ExampleChart exampleChart = new LineChart09();
     Chart chart = exampleChart.getChart();
     new SwingWrapper(chart).displayChart();
   }
@@ -51,7 +52,7 @@ public class Example9 implements ExampleChart {
   public Chart getChart() {
 
     // Create Chart
-    Chart chart = new Chart(800, 600);
+    Chart chart = new LineChart(800, 600);
 
     // generates linear data
     Collection<Date> xData = new ArrayList<Date>();
diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example10.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/line/LineChart10.java
similarity index 88%
rename from xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example10.java
rename to xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/line/LineChart10.java
index 422ca389..4dfd9c35 100644
--- a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example10.java
+++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/line/LineChart10.java
@@ -13,9 +13,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.xeiam.xchart.demo.charts;
+package com.xeiam.xchart.demo.charts.line;
 
 import com.xeiam.xchart.Chart;
+import com.xeiam.xchart.LineChart;
 import com.xeiam.xchart.SwingWrapper;
 import com.xeiam.xchart.style.Series;
 import com.xeiam.xchart.style.SeriesColor;
@@ -27,11 +28,11 @@ import com.xeiam.xchart.style.SeriesMarker;
  * 
  * @author timmolter
  */
-public class Example10 implements ExampleChart {
+public class LineChart10 implements ExampleChart {
 
   public static void main(String[] args) {
 
-    ExampleChart exampleChart = new Example10();
+    ExampleChart exampleChart = new LineChart10();
     Chart chart = exampleChart.getChart();
     new SwingWrapper(chart).displayChart();
   }
@@ -40,7 +41,7 @@ public class Example10 implements ExampleChart {
   public Chart getChart() {
 
     // Create Chart
-    Chart chart = new Chart(800, 600);
+    Chart chart = new LineChart(800, 600);
 
     // Customize Chart
     chart.setChartTitle("Example10");
diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example11.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/line/LineChart11.java
similarity index 84%
rename from xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example11.java
rename to xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/line/LineChart11.java
index 109ee4b4..690ce8f3 100644
--- a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/Example11.java
+++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/line/LineChart11.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.xeiam.xchart.demo.charts;
+package com.xeiam.xchart.demo.charts.line;
 
 import com.xeiam.xchart.Chart;
 import com.xeiam.xchart.ChartBuilder;
@@ -24,11 +24,11 @@ import com.xeiam.xchart.SwingWrapper;
  * 
  * @author timmolter
  */
-public class Example11 implements ExampleChart {
+public class LineChart11 implements ExampleChart {
 
   public static void main(String[] args) {
 
-    ExampleChart exampleChart = new Example11();
+    ExampleChart exampleChart = new LineChart11();
     Chart chart = exampleChart.getChart();
     new SwingWrapper(chart).displayChart();
   }
@@ -37,7 +37,7 @@ public class Example11 implements ExampleChart {
   public Chart getChart() {
 
     // Create Chart
-    Chart chart = new ChartBuilder().width(800).height(600).title("My Title").xAxisTitle("X").yAxisTitle("Y").showLegend(false).build();
+    Chart chart = new ChartBuilder().width(800).height(600).title("My Title").xAxisTitle("X").yAxisTitle("Y").build();
     chart.addSeries("x", new double[] { 1, 2, 5, 7 }, new double[] { -3, 6, 9, 0 });
 
     return chart;
diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/scatter/ScatterChart01.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/scatter/ScatterChart01.java
new file mode 100644
index 00000000..86afcc66
--- /dev/null
+++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/scatter/ScatterChart01.java
@@ -0,0 +1,67 @@
+/**
+ * Copyright 2011-2013 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.xchart.demo.charts.scatter;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Random;
+
+import com.xeiam.xchart.Chart;
+import com.xeiam.xchart.ScatterChart;
+import com.xeiam.xchart.SwingWrapper;
+import com.xeiam.xchart.demo.charts.line.ExampleChart;
+
+/**
+ * Gaussian Blob Scatter Plot
+ * 
+ * @author timmolter
+ */
+public class ScatterChart01 implements ExampleChart {
+
+  public static void main(String[] args) {
+
+    ExampleChart exampleChart = new ScatterChart01();
+    Chart chart = exampleChart.getChart();
+    new SwingWrapper(chart).displayChart();
+  }
+
+  @Override
+  public Chart getChart() {
+
+    // generates sine data
+    List<Number> xData = new ArrayList<Number>();
+    List<Number> yData = new ArrayList<Number>();
+    Random random = new Random();
+    int size = 1000;
+    for (int i = 0; i < size; i++) {
+      xData.add(random.nextGaussian());
+      yData.add(random.nextGaussian());
+    }
+
+    // Create Chart
+    Chart chart = new ScatterChart(800, 600);
+
+    // Customize Chart
+    chart.getStyleManager().setChartTitleVisible(false);
+    chart.getStyleManager().setLegendVisible(false);
+
+    // Series
+    chart.addSeries("Gaussian Blob", xData, yData);
+
+    return chart;
+  }
+
+}
diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/example/Example1.java b/xchart-demo/src/main/java/com/xeiam/xchart/example/Example1.java
index 86154f30..e47de08f 100644
--- a/xchart-demo/src/main/java/com/xeiam/xchart/example/Example1.java
+++ b/xchart-demo/src/main/java/com/xeiam/xchart/example/Example1.java
@@ -17,6 +17,7 @@ package com.xeiam.xchart.example;
 
 import com.xeiam.xchart.BitmapEncoder;
 import com.xeiam.xchart.Chart;
+import com.xeiam.xchart.LineChart;
 
 /**
  * Creates a simple Chart and saves it as a PNG and JPEG image file.
@@ -30,7 +31,7 @@ public class Example1 {
     double[] yData = new double[] { 2.0, 1.0, 0.0 };
 
     // Create Chart
-    Chart chart = new Chart(500, 400);
+    Chart chart = new LineChart(500, 400);
     chart.setChartTitle("Sample Chart");
     chart.setXAxisTitle("X");
     chart.setYAxisTitle("Y");
diff --git a/xchart/src/main/java/com/xeiam/xchart/Chart.java b/xchart/src/main/java/com/xeiam/xchart/Chart.java
index ef91f015..bfd2652d 100644
--- a/xchart/src/main/java/com/xeiam/xchart/Chart.java
+++ b/xchart/src/main/java/com/xeiam/xchart/Chart.java
@@ -35,7 +35,7 @@ import com.xeiam.xchart.style.theme.Theme;
  * 
  * @author timmolter
  */
-public class Chart {
+public abstract class Chart {
 
   public int width;
   public int height;
@@ -73,7 +73,7 @@ public class Chart {
     setChartTitle(chartBuilder.title);
     setXAxisTitle(chartBuilder.xAxisTitle);
     setYAxisTitle(chartBuilder.yAxisTitle);
-    styleManager.setLegendVisible(chartBuilder.isLegendVisible);
+    setTheme(chartBuilder.theme);
   }
 
   /**
diff --git a/xchart/src/main/java/com/xeiam/xchart/ChartBuilder.java b/xchart/src/main/java/com/xeiam/xchart/ChartBuilder.java
index c582ce9c..489fc674 100644
--- a/xchart/src/main/java/com/xeiam/xchart/ChartBuilder.java
+++ b/xchart/src/main/java/com/xeiam/xchart/ChartBuilder.java
@@ -21,17 +21,32 @@
  */
 package com.xeiam.xchart;
 
+import com.xeiam.xchart.style.theme.Theme;
+import com.xeiam.xchart.style.theme.XChartTheme;
+
 /**
  * @author timmolter
  */
 public class ChartBuilder {
 
+  public enum ChartType {
+
+    Line, Scatter
+  }
+
+  protected ChartType chartType = ChartType.Line;
   protected int width = 800;
   protected int height = 600;
   protected String title = "";
   protected String xAxisTitle = "";
   protected String yAxisTitle = "";
-  protected boolean isLegendVisible = true;
+  protected Theme theme = new XChartTheme();
+
+  public ChartBuilder chartType(ChartType chartType) {
+
+    this.chartType = chartType;
+    return this;
+  }
 
   public ChartBuilder width(int width) {
 
@@ -63,9 +78,9 @@ public class ChartBuilder {
     return this;
   }
 
-  public ChartBuilder showLegend(boolean isLegendVisible) {
+  public ChartBuilder theme(Theme theme) {
 
-    this.isLegendVisible = isLegendVisible;
+    this.theme = theme;
     return this;
   }
 
@@ -76,7 +91,15 @@ public class ChartBuilder {
    */
   public Chart build() {
 
-    return new Chart(this);
+    switch (chartType) {
+    case Line:
+      return new LineChart(this);
+    case Scatter:
+      return new ScatterChart(this);
+    default:
+      return new LineChart(this);
+    }
+
   }
 
 }
diff --git a/xchart/src/main/java/com/xeiam/xchart/LineChart.java b/xchart/src/main/java/com/xeiam/xchart/LineChart.java
new file mode 100644
index 00000000..e79df9bf
--- /dev/null
+++ b/xchart/src/main/java/com/xeiam/xchart/LineChart.java
@@ -0,0 +1,52 @@
+/**
+ * Copyright (C) 2013 Xeiam LLC http://xeiam.com
+ * 
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
+ * this software and associated documentation files (the "Software"), to deal in
+ * the Software without restriction, including without limitation the rights to
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+ * of the Software, and to permit persons to whom the Software is furnished to do
+ * so, subject to the following conditions:
+ * 
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ * 
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+package com.xeiam.xchart;
+
+/**
+ * A Scatter Chart is a contains series with no lines drawn between the points
+ * 
+ * @author timmolter
+ */
+public class LineChart extends Chart {
+
+  /**
+   * Constructor
+   * 
+   * @param width
+   * @param height
+   */
+  public LineChart(int width, int height) {
+
+    super(width, height);
+
+  }
+
+  /**
+   * Constructor
+   * 
+   * @param chartBuilder
+   */
+  public LineChart(ChartBuilder chartBuilder) {
+
+    super(chartBuilder);
+  }
+}
diff --git a/xchart/src/main/java/com/xeiam/xchart/QuickChart.java b/xchart/src/main/java/com/xeiam/xchart/QuickChart.java
index 2d4249b0..a242e338 100644
--- a/xchart/src/main/java/com/xeiam/xchart/QuickChart.java
+++ b/xchart/src/main/java/com/xeiam/xchart/QuickChart.java
@@ -72,7 +72,7 @@ public final class QuickChart {
   public static Chart getChart(String chartTitle, String xTitle, String yTitle, String[] seriesNames, double[] xData, double[][] yData) {
 
     // Create Chart
-    Chart chart = new Chart(WIDTH, HEIGHT);
+    Chart chart = new LineChart(WIDTH, HEIGHT);
 
     // Customize Chart
     chart.setChartTitle(chartTitle);
@@ -108,7 +108,7 @@ public final class QuickChart {
   public static Chart getChart(String chartTitle, String xTitle, String yTitle, String seriesName, Collection<Number> xData, Collection<Number> yData) {
 
     // Create Chart
-    Chart chart = new Chart(WIDTH, HEIGHT);
+    Chart chart = new LineChart(WIDTH, HEIGHT);
 
     // Customize Chart
     chart.setChartTitle(chartTitle);
diff --git a/xchart/src/main/java/com/xeiam/xchart/ScatterChart.java b/xchart/src/main/java/com/xeiam/xchart/ScatterChart.java
new file mode 100644
index 00000000..fe1fe13b
--- /dev/null
+++ b/xchart/src/main/java/com/xeiam/xchart/ScatterChart.java
@@ -0,0 +1,52 @@
+/**
+ * Copyright (C) 2013 Xeiam LLC http://xeiam.com
+ * 
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
+ * this software and associated documentation files (the "Software"), to deal in
+ * the Software without restriction, including without limitation the rights to
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+ * of the Software, and to permit persons to whom the Software is furnished to do
+ * so, subject to the following conditions:
+ * 
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ * 
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+package com.xeiam.xchart;
+
+/**
+ * A Scatter Chart is a contains series with no lines drawn between the points
+ * 
+ * @author timmolter
+ */
+public class ScatterChart extends Chart {
+
+  /**
+   * Constructor
+   * 
+   * @param width
+   * @param height
+   */
+  public ScatterChart(int width, int height) {
+
+    super(width, height);
+
+  }
+
+  /**
+   * Constructor
+   * 
+   * @param chartBuilder
+   */
+  public ScatterChart(ChartBuilder chartBuilder) {
+
+    super(chartBuilder);
+  }
+}
diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisPair.java b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisPair.java
index 3fa995c6..b01b0322 100644
--- a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisPair.java
+++ b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisPair.java
@@ -26,8 +26,8 @@ import java.util.Map;
 
 import com.xeiam.xchart.Chart;
 import com.xeiam.xchart.internal.chartpart.Axis.AxisType;
-import com.xeiam.xchart.internal.misc.SeriesColorMarkerLineStyleCycler;
 import com.xeiam.xchart.style.Series;
+import com.xeiam.xchart.style.SeriesColorMarkerLineStyleCycler;
 
 /**
  * @author timmolter
diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/PlotContent.java b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/PlotContent.java
index aab9241b..c9951921 100644
--- a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/PlotContent.java
+++ b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/PlotContent.java
@@ -26,6 +26,7 @@ import java.util.Iterator;
 import java.util.Map;
 
 import com.xeiam.xchart.Chart;
+import com.xeiam.xchart.ScatterChart;
 import com.xeiam.xchart.internal.chartpart.Axis.AxisType;
 import com.xeiam.xchart.style.Series;
 
@@ -58,6 +59,8 @@ public class PlotContent implements ChartPart {
   @Override
   public void paint(Graphics2D g) {
 
+    boolean isScatterChart = getChart() instanceof ScatterChart;
+
     Rectangle bounds = plot.getBounds();
 
     Map<Integer, Series> seriesMap = getChart().getAxisPair().getSeriesMap();
@@ -130,7 +133,7 @@ public class PlotContent implements ChartPart {
         // System.out.println(yTransform);
 
         // paint line
-        if (series.stroke != null) {
+        if (series.stroke != null && !isScatterChart) {
           if (previousX != Integer.MIN_VALUE && previousY != Integer.MIN_VALUE) {
             g.setColor(series.strokeColor);
             g.setStroke(series.stroke);
diff --git a/xchart/src/main/java/com/xeiam/xchart/style/Series.java b/xchart/src/main/java/com/xeiam/xchart/style/Series.java
index a9da1851..030f099a 100644
--- a/xchart/src/main/java/com/xeiam/xchart/style/Series.java
+++ b/xchart/src/main/java/com/xeiam/xchart/style/Series.java
@@ -24,7 +24,6 @@ import java.util.Iterator;
 
 import com.xeiam.xchart.internal.chartpart.Axis.AxisType;
 import com.xeiam.xchart.internal.markers.Marker;
-import com.xeiam.xchart.internal.misc.SeriesColorMarkerLineStyle;
 
 /**
  * A Series containing X and Y data to be plotted on a Chart
diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/misc/SeriesColorMarkerLineStyle.java b/xchart/src/main/java/com/xeiam/xchart/style/SeriesColorMarkerLineStyle.java
similarity index 97%
rename from xchart/src/main/java/com/xeiam/xchart/internal/misc/SeriesColorMarkerLineStyle.java
rename to xchart/src/main/java/com/xeiam/xchart/style/SeriesColorMarkerLineStyle.java
index d9e19b70..1e4806e8 100644
--- a/xchart/src/main/java/com/xeiam/xchart/internal/misc/SeriesColorMarkerLineStyle.java
+++ b/xchart/src/main/java/com/xeiam/xchart/style/SeriesColorMarkerLineStyle.java
@@ -19,7 +19,7 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-package com.xeiam.xchart.internal.misc;
+package com.xeiam.xchart.style;
 
 import java.awt.BasicStroke;
 import java.awt.Color;
diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/misc/SeriesColorMarkerLineStyleCycler.java b/xchart/src/main/java/com/xeiam/xchart/style/SeriesColorMarkerLineStyleCycler.java
similarity index 95%
rename from xchart/src/main/java/com/xeiam/xchart/internal/misc/SeriesColorMarkerLineStyleCycler.java
rename to xchart/src/main/java/com/xeiam/xchart/style/SeriesColorMarkerLineStyleCycler.java
index 92d7cf05..974cde0c 100644
--- a/xchart/src/main/java/com/xeiam/xchart/internal/misc/SeriesColorMarkerLineStyleCycler.java
+++ b/xchart/src/main/java/com/xeiam/xchart/style/SeriesColorMarkerLineStyleCycler.java
@@ -19,15 +19,12 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-package com.xeiam.xchart.internal.misc;
+package com.xeiam.xchart.style;
 
 import java.util.EnumSet;
 import java.util.HashMap;
 import java.util.Map;
 
-import com.xeiam.xchart.style.SeriesColor;
-import com.xeiam.xchart.style.SeriesLineStyle;
-import com.xeiam.xchart.style.SeriesMarker;
 
 /**
  * Cycles through the different colors, markers, and strokes in a predetermined way
-- 
GitLab