diff --git a/xchart-demo/src/main/java/org/knowm/xchart/demo/XChartDemo.java b/xchart-demo/src/main/java/org/knowm/xchart/demo/XChartDemo.java
index 705ed00e20c2cad22d0c859ffcf36fee19cdaad3..f2e23655010ea645bd677632f798036b1d2631e3 100644
--- a/xchart-demo/src/main/java/org/knowm/xchart/demo/XChartDemo.java
+++ b/xchart-demo/src/main/java/org/knowm/xchart/demo/XChartDemo.java
@@ -241,7 +241,7 @@ public class XChartDemo extends JPanel implements TreeSelectionListener {
     defaultMutableTreeNode = new DefaultMutableTreeNode(new ChartInfo("LineChart06 - Logarithmic Y-Axis with Error Bars", new LineChart06().getChart()));
     category.add(defaultMutableTreeNode);
 
-    defaultMutableTreeNode = new DefaultMutableTreeNode(new ChartInfo("LineChart07 - Line chart with multiple Category Series", new LineChart07().getChart()));
+    defaultMutableTreeNode = new DefaultMutableTreeNode(new ChartInfo("LineChart07 - Line Chart with Multiple Category Series", new LineChart07().getChart()));
     category.add(defaultMutableTreeNode);
 
     // Scatter category
diff --git a/xchart-demo/src/main/java/org/knowm/xchart/demo/charts/bar/BarChart02.java b/xchart-demo/src/main/java/org/knowm/xchart/demo/charts/bar/BarChart02.java
index 01b9c1f39012e8db40a8743bc28b3b600c73cd8a..780a81a9c4b6968fb2ed18936c7380b7fb4f1230 100644
--- a/xchart-demo/src/main/java/org/knowm/xchart/demo/charts/bar/BarChart02.java
+++ b/xchart-demo/src/main/java/org/knowm/xchart/demo/charts/bar/BarChart02.java
@@ -27,11 +27,11 @@ import java.util.Random;
 import org.knowm.xchart.Chart;
 import org.knowm.xchart.ChartBuilder;
 import org.knowm.xchart.Series;
-import org.knowm.xchart.SeriesColor;
 import org.knowm.xchart.StyleManager.ChartTheme;
 import org.knowm.xchart.StyleManager.ChartType;
 import org.knowm.xchart.SwingWrapper;
 import org.knowm.xchart.demo.charts.ExampleChart;
+import org.knowm.xchart.internal.style.MatlabTheme;
 
 /**
  * Date Categories
@@ -76,7 +76,7 @@ public class BarChart02 implements ExampleChart {
       yData.add(-1 * 0.00000001 * ((random.nextInt(i) + 1)));
     }
     Series series = chart.addCategorySeries("Model 77", xData, yData);
-    series.setLineColor(SeriesColor.RED);
+    series.setLineColor(MatlabTheme.RED);
     chart.getStyleManager().setPlotGridLinesVisible(false);
     chart.getStyleManager().setBarFilled(false);
     chart.getStyleManager().setDatePattern("YYYY");
diff --git a/xchart-demo/src/main/java/org/knowm/xchart/demo/charts/line/LineChart02.java b/xchart-demo/src/main/java/org/knowm/xchart/demo/charts/line/LineChart02.java
index 7813658aa83cd9a793ac9fa37b858c6468721515..e4333adacdebb3aba4fc78c541250a26cefbc5c5 100644
--- a/xchart-demo/src/main/java/org/knowm/xchart/demo/charts/line/LineChart02.java
+++ b/xchart-demo/src/main/java/org/knowm/xchart/demo/charts/line/LineChart02.java
@@ -21,11 +21,11 @@ import java.util.List;
 
 import org.knowm.xchart.Chart;
 import org.knowm.xchart.Series;
-import org.knowm.xchart.SeriesColor;
 import org.knowm.xchart.SeriesLineStyle;
 import org.knowm.xchart.SeriesMarker;
 import org.knowm.xchart.SwingWrapper;
 import org.knowm.xchart.demo.charts.ExampleChart;
+import org.knowm.xchart.internal.style.XChartTheme;
 
 /**
  * Sine wave with customized series style
@@ -65,9 +65,9 @@ public class LineChart02 implements ExampleChart {
 
     // Series 1
     Series series1 = chart.addSeries("y=sin(x)", xData, yData);
-    series1.setLineColor(SeriesColor.PURPLE);
+    series1.setLineColor(XChartTheme.PURPLE);
     series1.setLineStyle(SeriesLineStyle.DASH_DASH);
-    series1.setMarkerColor(SeriesColor.GREEN);
+    series1.setMarkerColor(XChartTheme.GREEN);
     series1.setMarker(SeriesMarker.SQUARE);
 
     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 55d8778149c98b656954f581a4444da14c454526..6a919496d08953361ac741e24f6e9614935eb011 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
@@ -29,12 +29,12 @@ import java.util.Locale;
 import org.knowm.xchart.Chart;
 import org.knowm.xchart.ChartColor;
 import org.knowm.xchart.Series;
-import org.knowm.xchart.SeriesColor;
 import org.knowm.xchart.SeriesLineStyle;
 import org.knowm.xchart.SeriesMarker;
 import org.knowm.xchart.StyleManager.LegendPosition;
 import org.knowm.xchart.SwingWrapper;
 import org.knowm.xchart.demo.charts.ExampleChart;
+import org.knowm.xchart.internal.style.XChartTheme;
 
 /**
  * Extensive Chart Customization
@@ -102,7 +102,7 @@ public class LineChart03 implements ExampleChart {
     chart.getStyleManager().setLocale(Locale.GERMAN);
 
     Series series = chart.addSeries("Fake Data", xData, yData);
-    series.setLineColor(SeriesColor.BLUE);
+    series.setLineColor(XChartTheme.BLUE);
     series.setMarkerColor(Color.ORANGE);
     series.setMarker(SeriesMarker.CIRCLE);
     series.setLineStyle(SeriesLineStyle.SOLID);
diff --git a/xchart-demo/src/main/java/org/knowm/xchart/demo/charts/line/LineChart04.java b/xchart-demo/src/main/java/org/knowm/xchart/demo/charts/line/LineChart04.java
index 3f251761da72944055ccfaedd46a01eb72e91bbb..4925c568a8b76093800d7ee3a3b0d87ba9d1673e 100644
--- a/xchart-demo/src/main/java/org/knowm/xchart/demo/charts/line/LineChart04.java
+++ b/xchart-demo/src/main/java/org/knowm/xchart/demo/charts/line/LineChart04.java
@@ -18,11 +18,11 @@ package org.knowm.xchart.demo.charts.line;
 
 import org.knowm.xchart.Chart;
 import org.knowm.xchart.Series;
-import org.knowm.xchart.SeriesColor;
 import org.knowm.xchart.SeriesLineStyle;
 import org.knowm.xchart.SeriesMarker;
 import org.knowm.xchart.SwingWrapper;
 import org.knowm.xchart.demo.charts.ExampleChart;
+import org.knowm.xchart.internal.style.XChartTheme;
 
 /**
  * Hundreds of Series on One Plot
@@ -50,10 +50,10 @@ public class LineChart04 implements ExampleChart {
 
     for (int i = 0; i < 200; i++) {
       Series series = chart.addSeries("A" + i, new double[] { Math.random() / 1000, Math.random() / 1000 }, new double[] { Math.random() / -1000, Math.random() / -1000 });
-      series.setLineColor(SeriesColor.BLUE);
+      series.setLineColor(XChartTheme.BLUE);
       series.setLineStyle(SeriesLineStyle.SOLID);
       series.setMarker(SeriesMarker.CIRCLE);
-      series.setMarkerColor(SeriesColor.BLUE);
+      series.setMarkerColor(XChartTheme.BLUE);
 
     }
 
diff --git a/xchart-demo/src/main/java/org/knowm/xchart/demo/charts/theme/ThemeChart03.java b/xchart-demo/src/main/java/org/knowm/xchart/demo/charts/theme/ThemeChart03.java
index 5a3990287472fe8ad84f8a470ab427132ddbd455..cfb4a6a667564bd956602c41ebee2e80a3a57ae5 100644
--- a/xchart-demo/src/main/java/org/knowm/xchart/demo/charts/theme/ThemeChart03.java
+++ b/xchart-demo/src/main/java/org/knowm/xchart/demo/charts/theme/ThemeChart03.java
@@ -25,8 +25,6 @@ import java.util.List;
 
 import org.knowm.xchart.Chart;
 import org.knowm.xchart.ChartBuilder;
-import org.knowm.xchart.Series;
-import org.knowm.xchart.SeriesLineStyle;
 import org.knowm.xchart.StyleManager.ChartTheme;
 import org.knowm.xchart.SwingWrapper;
 import org.knowm.xchart.demo.charts.ExampleChart;
@@ -104,8 +102,7 @@ public class ThemeChart03 implements ExampleChart {
       e.printStackTrace();
     }
 
-    Series series1 = chart.addSeries("downloads", xData, y1Data);
-    series1.setLineStyle(SeriesLineStyle.DOT_DOT);
+    chart.addSeries("downloads", xData, y1Data);
     chart.addSeries("price", xData, y2Data);
 
     return chart;
diff --git a/xchart-demo/src/main/java/org/knowm/xchart/standalone/ErrorBarLogTest.java b/xchart-demo/src/main/java/org/knowm/xchart/standalone/ErrorBarLogTest.java
index ce8940cfc812f06ccb05ea8aafb961c0506864a8..845fa559b04b696acaf1eb58a45f1d3a71d7f24d 100644
--- a/xchart-demo/src/main/java/org/knowm/xchart/standalone/ErrorBarLogTest.java
+++ b/xchart-demo/src/main/java/org/knowm/xchart/standalone/ErrorBarLogTest.java
@@ -20,10 +20,10 @@ import java.awt.Color;
 
 import org.knowm.xchart.Chart;
 import org.knowm.xchart.Series;
-import org.knowm.xchart.SeriesColor;
 import org.knowm.xchart.SeriesLineStyle;
 import org.knowm.xchart.SeriesMarker;
 import org.knowm.xchart.SwingWrapper;
+import org.knowm.xchart.internal.style.XChartTheme;
 
 /**
  * @author timmolter
@@ -70,13 +70,13 @@ public class ErrorBarLogTest {
 
     series2.setMarker(SeriesMarker.NONE);
 
-    series2.setLineColor(SeriesColor.RED);
+    series2.setLineColor(XChartTheme.RED);
 
     series3.setLineStyle(SeriesLineStyle.DASH_DASH);
 
     series3.setMarker(SeriesMarker.NONE);
 
-    series3.setLineColor(SeriesColor.RED);
+    series3.setLineColor(XChartTheme.RED);
 
     new SwingWrapper(mychart).displayChart();
 
diff --git a/xchart-demo/src/main/java/org/knowm/xchart/standalone/ErrorBarTest.java b/xchart-demo/src/main/java/org/knowm/xchart/standalone/ErrorBarTest.java
index d504888466f54a5c64fbd7082fabd0989f29a94f..9b8ff7400aacf1840f9232a97ec81cc2afcdd7cc 100644
--- a/xchart-demo/src/main/java/org/knowm/xchart/standalone/ErrorBarTest.java
+++ b/xchart-demo/src/main/java/org/knowm/xchart/standalone/ErrorBarTest.java
@@ -20,10 +20,10 @@ import java.awt.Color;
 
 import org.knowm.xchart.Chart;
 import org.knowm.xchart.Series;
-import org.knowm.xchart.SeriesColor;
 import org.knowm.xchart.SeriesLineStyle;
 import org.knowm.xchart.SeriesMarker;
 import org.knowm.xchart.SwingWrapper;
+import org.knowm.xchart.internal.style.XChartTheme;
 
 /**
  * @author timmolter
@@ -51,10 +51,10 @@ public class ErrorBarTest {
     series1.setMarkerColor(Color.MAGENTA);
     series2.setLineStyle(SeriesLineStyle.DASH_DASH);
     series2.setMarker(SeriesMarker.NONE);
-    series2.setLineColor(SeriesColor.RED);
+    series2.setLineColor(XChartTheme.RED);
     series3.setLineStyle(SeriesLineStyle.DASH_DASH);
     series3.setMarker(SeriesMarker.NONE);
-    series3.setLineColor(SeriesColor.RED);
+    series3.setLineColor(XChartTheme.RED);
 
     new SwingWrapper(mychart).displayChart();
   }
diff --git a/xchart/src/main/java/org/knowm/xchart/SeriesColor.java b/xchart/src/main/java/org/knowm/xchart/SeriesColor.java
index 71444a2d0971b5bc924847585d565eaacb323144..756d504f80a25decf6fe29db7ffd3283f430f419 100644
--- a/xchart/src/main/java/org/knowm/xchart/SeriesColor.java
+++ b/xchart/src/main/java/org/knowm/xchart/SeriesColor.java
@@ -20,78 +20,37 @@ import java.awt.Color;
 
 /**
  * Pre-defined Colors used for Series Lines and Markers
- * 
+ *
  * @author timmolter
  */
-public enum SeriesColor {
-
-  /** BLUE */
-  BLUE(0, new Color(0, 55, 255, 180)),
-
-  /** ORANGE */
-  ORANGE(1, new Color(255, 172, 0, 180)),
-
-  /** PURPLE */
-  PURPLE(2, new Color(128, 0, 255, 180)),
-
-  /** GREEN */
-  GREEN(3, new Color(0, 205, 0, 180)),
-
-  /** RED */
-  RED(4, new Color(205, 0, 0, 180)),
-
-  /** YELLOW */
-  YELLOW(5, new Color(255, 215, 0, 180)),
-
-  /** MAGENTA */
-  MAGENTA(6, new Color(255, 0, 255, 180)),
-
-  /** PINK */
-  PINK(7, new Color(255, 166, 201, 180)),
-
-  /** LIGHT_GREY */
-  LIGHT_GREY(8, new Color(207, 207, 207, 180)),
-
-  /** CYAN */
-  CYAN(9, new Color(0, 255, 255, 180)),
-
-  /** BROWN */
-  BROWN(10, new Color(102, 56, 10, 180)),
-
-  /** BLACK */
-  BLACK(11, new Color(0, 0, 0, 180));
-
-  /** The index */
-  private int index;
+public class SeriesColor {
 
   /** The AWT Color */
   private Color color;
 
   /**
    * Constructor
-   * 
-   * @param index
+   *
    * @param color
    */
-  private SeriesColor(int index, Color color) {
+  public SeriesColor(Color color) {
 
-    this.index = index;
     this.color = color;
   }
 
   /**
-   * Gets the SeriesColor's index
-   * 
-   * @return
+   * Constructor
+   *
+   * @param color
    */
-  public Integer getIndex() {
+  public SeriesColor(int r, int g, int b, int a) {
 
-    return index;
+    this.color = new Color(r, g, b, a);
   }
 
   /**
    * Gets the SeriesColor's AWT Color
-   * 
+   *
    * @return the AWT Color
    */
   public Color getColor() {
@@ -99,15 +58,15 @@ public enum SeriesColor {
     return color;
   }
 
-  /**
-   * get the AWT Color given a SeriesColor
-   * 
-   * @param seriesColor
-   * @return the AWT Color
-   */
-  public Color getAWTColor(SeriesColor seriesColor) {
-
-    return seriesColor.color;
-  }
+  // /**
+  // * get the AWT Color given a SeriesColor
+  // *
+  // * @param seriesColor
+  // * @return the AWT Color
+  // */
+  // public Color getAWTColor(SeriesColor seriesColor) {
+  //
+  // return seriesColor.color;
+  // }
 
 }
diff --git a/xchart/src/main/java/org/knowm/xchart/StyleManager.java b/xchart/src/main/java/org/knowm/xchart/StyleManager.java
index e2ff4585d61bf6d131a26c66565b3045e76f45ad..8cb0d314fa32233a071579dce0542d076720d2c7 100644
--- a/xchart/src/main/java/org/knowm/xchart/StyleManager.java
+++ b/xchart/src/main/java/org/knowm/xchart/StyleManager.java
@@ -24,6 +24,7 @@ import java.util.TimeZone;
 
 import org.knowm.xchart.internal.style.GGPlot2Theme;
 import org.knowm.xchart.internal.style.MatlabTheme;
+import org.knowm.xchart.internal.style.SeriesColorMarkerLineStyleCycler;
 import org.knowm.xchart.internal.style.Theme;
 import org.knowm.xchart.internal.style.XChartTheme;
 
@@ -76,6 +77,7 @@ public class StyleManager {
   private Color chartBackgroundColor;
   public Color chartFontColor;
   private int chartPadding;
+  private SeriesColorMarkerLineStyleCycler seriesColorMarkerLineStyleCycler;
 
   // Chart Title ///////////////////////////////
   private Font chartTitleFont;
@@ -168,6 +170,7 @@ public class StyleManager {
     chartBackgroundColor = theme.getChartBackgroundColor();
     chartFontColor = theme.getChartFontColor();
     chartPadding = theme.getChartPadding();
+    seriesColorMarkerLineStyleCycler = theme.getSeriesColorMarkerLineStyleCycler();
 
     // Chart Title ///////////////////////////////
     chartTitleFont = theme.getChartTitleFont();
@@ -322,6 +325,16 @@ public class StyleManager {
     return chartPadding;
   }
 
+  public SeriesColorMarkerLineStyleCycler getSeriesColorMarkerLineStyleCycler() {
+
+    return seriesColorMarkerLineStyleCycler;
+  }
+
+  public void setSeriesColorMarkerLineStyleCycler(SeriesColorMarkerLineStyleCycler seriesColorMarkerLineStyleCycler) {
+
+    this.seriesColorMarkerLineStyleCycler = seriesColorMarkerLineStyleCycler;
+  }
+
   // Chart Title ///////////////////////////////
 
   /**
diff --git a/xchart/src/main/java/org/knowm/xchart/internal/chartpart/ChartInternal.java b/xchart/src/main/java/org/knowm/xchart/internal/chartpart/ChartInternal.java
index c3969dd91e80b28d70f1dbc2aad42f2f4d0a9cdd..ca5689171f93ed6f26131139a6b89e33d8c6ff42 100644
--- a/xchart/src/main/java/org/knowm/xchart/internal/chartpart/ChartInternal.java
+++ b/xchart/src/main/java/org/knowm/xchart/internal/chartpart/ChartInternal.java
@@ -30,7 +30,6 @@ import java.util.Map;
 import org.knowm.xchart.Series;
 import org.knowm.xchart.StyleManager;
 import org.knowm.xchart.internal.chartpart.Axis.AxisType;
-import org.knowm.xchart.internal.style.SeriesColorMarkerLineStyleCycler;
 
 /**
  * @author timmolter
@@ -48,7 +47,6 @@ public class ChartInternal {
   private ChartInternalType chartInternalType = null;
 
   private Map<String, Series> seriesMap = new LinkedHashMap<String, Series>();
-  private SeriesColorMarkerLineStyleCycler seriesColorMarkerLineStyleCycler = new SeriesColorMarkerLineStyleCycler();
 
   private final StyleManager styleManager;
 
@@ -109,7 +107,7 @@ public class ChartInternal {
       }
 
       axisPair.getYAxis().setAxisType(AxisType.Number);
-      series = new Series(seriesName, xData, axisPair.getXAxis().getAxisType(), yData, axisPair.getYAxis().getAxisType(), errorBars, seriesColorMarkerLineStyleCycler
+      series = new Series(seriesName, xData, axisPair.getXAxis().getAxisType(), yData, axisPair.getYAxis().getAxisType(), errorBars, styleManager.getSeriesColorMarkerLineStyleCycler()
           .getNextSeriesColorMarkerLineStyle());
     }
     else { // generate xData
@@ -119,7 +117,7 @@ public class ChartInternal {
       }
       axisPair.getXAxis().setAxisType(AxisType.Number);
       axisPair.getYAxis().setAxisType(AxisType.Number);
-      series = new Series(seriesName, generatedXData, axisPair.getXAxis().getAxisType(), yData, axisPair.getYAxis().getAxisType(), errorBars, seriesColorMarkerLineStyleCycler
+      series = new Series(seriesName, generatedXData, axisPair.getXAxis().getAxisType(), yData, axisPair.getYAxis().getAxisType(), errorBars, styleManager.getSeriesColorMarkerLineStyleCycler()
           .getNextSeriesColorMarkerLineStyle());
     }
 
@@ -169,7 +167,7 @@ public class ChartInternal {
     setXAxisType(xData);
 
     axisPair.getYAxis().setAxisType(AxisType.Number);
-    Series series = new Series(seriesName, xData, axisPair.getXAxis().getAxisType(), yData, axisPair.getYAxis().getAxisType(), errorBars, seriesColorMarkerLineStyleCycler
+    Series series = new Series(seriesName, xData, axisPair.getXAxis().getAxisType(), yData, axisPair.getYAxis().getAxisType(), errorBars, styleManager.getSeriesColorMarkerLineStyleCycler()
         .getNextSeriesColorMarkerLineStyle());
 
     // set series type
diff --git a/xchart/src/main/java/org/knowm/xchart/internal/style/GGPlot2Theme.java b/xchart/src/main/java/org/knowm/xchart/internal/style/GGPlot2Theme.java
index 24a6337bbb573091586b7f1add5e4adba5761349..06d5063c6aab404c4e485f3fc7fa06bd4af8e85b 100644
--- a/xchart/src/main/java/org/knowm/xchart/internal/style/GGPlot2Theme.java
+++ b/xchart/src/main/java/org/knowm/xchart/internal/style/GGPlot2Theme.java
@@ -20,8 +20,13 @@ import java.awt.BasicStroke;
 import java.awt.Color;
 import java.awt.Font;
 import java.awt.Stroke;
+import java.util.ArrayList;
+import java.util.List;
 
 import org.knowm.xchart.ChartColor;
+import org.knowm.xchart.SeriesColor;
+import org.knowm.xchart.SeriesLineStyle;
+import org.knowm.xchart.SeriesMarker;
 import org.knowm.xchart.StyleManager.LegendPosition;
 
 /**
@@ -29,6 +34,16 @@ import org.knowm.xchart.StyleManager.LegendPosition;
  */
 public class GGPlot2Theme implements Theme {
 
+  // The color blind friendly palette
+  public static SeriesColor BLACK = new SeriesColor(0, 0, 0, 255);
+  public static SeriesColor ORANGE = new SeriesColor(230, 159, 0, 255);
+  public static SeriesColor SKY_BLUE = new SeriesColor(86, 180, 233, 255);
+  public static SeriesColor BLUISH_GREEN = new SeriesColor(0, 158, 115, 255);
+  public static SeriesColor YELLOW = new SeriesColor(240, 228, 66, 255);
+  public static SeriesColor BLUE = new SeriesColor(0, 114, 178, 255);
+  public static SeriesColor VERMILLION = new SeriesColor(213, 94, 0, 255);
+  public static SeriesColor REDDISH_PURPLE = new SeriesColor(204, 121, 167, 255);
+
   // Chart Style ///////////////////////////////
 
   @Override
@@ -49,6 +64,12 @@ public class GGPlot2Theme implements Theme {
     return 10;
   }
 
+  @Override
+  public SeriesColorMarkerLineStyleCycler getSeriesColorMarkerLineStyleCycler() {
+
+    return new XChartSeriesColorMarkerLineStyleCycler();
+  }
+
   // Chart Title ///////////////////////////////
 
   @Override
@@ -244,20 +265,18 @@ public class GGPlot2Theme implements Theme {
     return true;
   }
 
-
   @Override
   public boolean isPlotGridVerticalLinesVisible() {
 
     return true;
   }
-  
 
   @Override
   public boolean isPlotGridHorizontalLinesVisible() {
 
     return true;
   }
-  
+
   @Override
   public Color getPlotBackgroundColor() {
 
@@ -335,4 +354,46 @@ public class GGPlot2Theme implements Theme {
 
     return false;
   }
+
+  public class XChartSeriesColorMarkerLineStyleCycler extends SeriesColorMarkerLineStyleCycler {
+
+    @Override
+    public List<SeriesColor> getSeriesColorList() {
+
+      // 1. Color
+      List<SeriesColor> seriesColorMap = new ArrayList<SeriesColor>();
+      seriesColorMap.add(BLACK);
+      seriesColorMap.add(ORANGE);
+      seriesColorMap.add(SKY_BLUE);
+      seriesColorMap.add(BLUISH_GREEN);
+      seriesColorMap.add(YELLOW);
+      seriesColorMap.add(BLUE);
+      seriesColorMap.add(VERMILLION);
+      seriesColorMap.add(REDDISH_PURPLE);
+
+      return seriesColorMap;
+    }
+
+    @Override
+    public List<SeriesMarker> getSeriesMarkerList() {
+
+      // 2. Marker
+      List<SeriesMarker> seriesMarkerList = new ArrayList<SeriesMarker>();
+      seriesMarkerList.add(SeriesMarker.CIRCLE);
+      seriesMarkerList.add(SeriesMarker.DIAMOND);
+      return seriesMarkerList;
+    }
+
+    @Override
+    public List<SeriesLineStyle> getLineStyleList() {
+
+      // 3. Stroke
+      List<SeriesLineStyle> seriesLineStyleList = new ArrayList<SeriesLineStyle>();
+      seriesLineStyleList.add(SeriesLineStyle.SOLID);
+      seriesLineStyleList.add(SeriesLineStyle.DOT_DOT);
+      seriesLineStyleList.add(SeriesLineStyle.DASH_DASH);
+      return seriesLineStyleList;
+    }
+
+  }
 }
diff --git a/xchart/src/main/java/org/knowm/xchart/internal/style/MatlabTheme.java b/xchart/src/main/java/org/knowm/xchart/internal/style/MatlabTheme.java
index f0b3f780766798f436ff2fc848d10f1cf105dbd4..8996dde5939b078e418665ef002f3fce255cd57e 100644
--- a/xchart/src/main/java/org/knowm/xchart/internal/style/MatlabTheme.java
+++ b/xchart/src/main/java/org/knowm/xchart/internal/style/MatlabTheme.java
@@ -20,8 +20,13 @@ import java.awt.BasicStroke;
 import java.awt.Color;
 import java.awt.Font;
 import java.awt.Stroke;
+import java.util.ArrayList;
+import java.util.List;
 
 import org.knowm.xchart.ChartColor;
+import org.knowm.xchart.SeriesColor;
+import org.knowm.xchart.SeriesLineStyle;
+import org.knowm.xchart.SeriesMarker;
 import org.knowm.xchart.StyleManager.LegendPosition;
 
 /**
@@ -29,6 +34,14 @@ import org.knowm.xchart.StyleManager.LegendPosition;
  */
 public class MatlabTheme implements Theme {
 
+  public static SeriesColor BLUE = new SeriesColor(0, 0, 255, 255);
+  public static SeriesColor GREEN = new SeriesColor(0, 128, 0, 255);
+  public static SeriesColor RED = new SeriesColor(255, 0, 0, 255);
+  public static SeriesColor TURQUOISE = new SeriesColor(0, 191, 191, 255);
+  public static SeriesColor MAGENTA = new SeriesColor(191, 0, 191, 255);
+  public static SeriesColor YELLOW = new SeriesColor(191, 191, 0, 255);
+  public static SeriesColor DARK_GREY = new SeriesColor(64, 64, 64, 255);
+
   // Chart Style ///////////////////////////////
 
   @Override
@@ -49,6 +62,12 @@ public class MatlabTheme implements Theme {
     return 10;
   }
 
+  @Override
+  public SeriesColorMarkerLineStyleCycler getSeriesColorMarkerLineStyleCycler() {
+
+    return new MatlabSeriesColorMarkerLineStyleCycler();
+  }
+
   // Chart Title ///////////////////////////////
 
   @Override
@@ -249,13 +268,13 @@ public class MatlabTheme implements Theme {
 
     return true;
   }
-  
+
   @Override
   public boolean isPlotGridHorizontalLinesVisible() {
 
     return true;
   }
-  
+
   @Override
   public Color getPlotBackgroundColor() {
 
@@ -334,4 +353,43 @@ public class MatlabTheme implements Theme {
 
     return false;
   }
+
+  public class MatlabSeriesColorMarkerLineStyleCycler extends SeriesColorMarkerLineStyleCycler {
+
+    @Override
+    public List<SeriesColor> getSeriesColorList() {
+
+      // 1. Color
+      List<SeriesColor> seriesColorMap = new ArrayList<SeriesColor>();
+      seriesColorMap.add(BLUE);
+      seriesColorMap.add(GREEN);
+      seriesColorMap.add(RED);
+      seriesColorMap.add(TURQUOISE);
+      seriesColorMap.add(MAGENTA);
+      seriesColorMap.add(YELLOW);
+      seriesColorMap.add(DARK_GREY);
+      return seriesColorMap;
+    }
+
+    @Override
+    public List<SeriesMarker> getSeriesMarkerList() {
+
+      // 2. Marker
+      List<SeriesMarker> seriesMarkerList = new ArrayList<SeriesMarker>();
+      seriesMarkerList.add(SeriesMarker.NONE);
+      return seriesMarkerList;
+    }
+
+    @Override
+    public List<SeriesLineStyle> getLineStyleList() {
+
+      // 3. Stroke
+      List<SeriesLineStyle> seriesLineStyleList = new ArrayList<SeriesLineStyle>();
+      seriesLineStyleList.add(SeriesLineStyle.SOLID);
+      seriesLineStyleList.add(SeriesLineStyle.DASH_DASH);
+      seriesLineStyleList.add(SeriesLineStyle.DOT_DOT);
+      return seriesLineStyleList;
+    }
+
+  }
 }
diff --git a/xchart/src/main/java/org/knowm/xchart/internal/style/SeriesColorMarkerLineStyleCycler.java b/xchart/src/main/java/org/knowm/xchart/internal/style/SeriesColorMarkerLineStyleCycler.java
index f73af62a83a857cae352931c027c78715844e439..31399dcb7a329a27aa8f162421d313d6e84e1f40 100644
--- a/xchart/src/main/java/org/knowm/xchart/internal/style/SeriesColorMarkerLineStyleCycler.java
+++ b/xchart/src/main/java/org/knowm/xchart/internal/style/SeriesColorMarkerLineStyleCycler.java
@@ -16,9 +16,7 @@
  */
 package org.knowm.xchart.internal.style;
 
-import java.util.EnumSet;
-import java.util.HashMap;
-import java.util.Map;
+import java.util.List;
 
 import org.knowm.xchart.SeriesColor;
 import org.knowm.xchart.SeriesLineStyle;
@@ -28,19 +26,25 @@ import org.knowm.xchart.SeriesMarker;
  * Cycles through the different colors, markers, and strokes in a predetermined way
  * <p>
  * This is an internal class that should not be used be clients
- * 
+ *
  * @author timmolter
  */
-public class SeriesColorMarkerLineStyleCycler {
+public abstract class SeriesColorMarkerLineStyleCycler {
+
+  public abstract List<SeriesColor> getSeriesColorList();
+
+  public abstract List<SeriesMarker> getSeriesMarkerList();
 
-  /** a map holding the SeriesColors */
-  private final Map<Integer, SeriesColor> seriesColorMap = new HashMap<Integer, SeriesColor>();
+  public abstract List<SeriesLineStyle> getLineStyleList();
+
+  /** a List holding the SeriesColors */
+  private final List<SeriesColor> seriesColorList;
 
   /** a map holding the SeriesMarkers */
-  private final Map<Integer, SeriesMarker> seriesMarkerMap = new HashMap<Integer, SeriesMarker>();
+  private final List<SeriesMarker> seriesMarkerList;
 
   /** a map holding the SeriesLineStyles */
-  private final Map<Integer, SeriesLineStyle> seriesLineStyleMap = new HashMap<Integer, SeriesLineStyle>();
+  private final List<SeriesLineStyle> seriesLineStyleList;
 
   /** an internal counter */
   private int colorCounter = 0;
@@ -52,51 +56,36 @@ public class SeriesColorMarkerLineStyleCycler {
    */
   public SeriesColorMarkerLineStyleCycler() {
 
-    // 1. Color
-    for (SeriesColor seriesColor : EnumSet.allOf(SeriesColor.class)) {
-      seriesColorMap.put(seriesColor.getIndex(), seriesColor);
-    }
-
-    // 2. Marker
-    for (SeriesMarker seriesMarker : EnumSet.allOf(SeriesMarker.class)) {
-      if (seriesMarker.getIndex() >= 0) { // skip SeriesMarker.NONE
-        seriesMarkerMap.put(seriesMarker.getIndex(), seriesMarker);
-      }
-    }
-
-    // 3. Stroke
-    for (SeriesLineStyle seriesLineStyle : EnumSet.allOf(SeriesLineStyle.class)) {
-      if (seriesLineStyle.getIndex() >= 0) { // skip SeriesLineStyle.NONE
-        seriesLineStyleMap.put(seriesLineStyle.getIndex(), seriesLineStyle);
-      }
-    }
+    seriesColorList = getSeriesColorList();
+    seriesMarkerList = getSeriesMarkerList();
+    seriesLineStyleList = getLineStyleList();
   }
 
   /**
    * Get the next SeriesColorMarkerLineStyle
-   * 
+   *
    * @return the next SeriesColorMarkerLineStyle
    */
   public SeriesColorMarkerLineStyle getNextSeriesColorMarkerLineStyle() {
 
     // 1. Color - cycle through colors one by one
-    if (colorCounter >= seriesColorMap.size()) {
+    if (colorCounter >= seriesColorList.size()) {
       colorCounter = 0;
       strokeCounter++;
     }
-    SeriesColor seriesColor = seriesColorMap.get(colorCounter++);
+    SeriesColor seriesColor = seriesColorList.get(colorCounter++);
 
     // 2. Stroke - cycle through strokes one by one but only after a color cycle
-    if (strokeCounter >= seriesLineStyleMap.size()) {
+    if (strokeCounter >= seriesLineStyleList.size()) {
       strokeCounter = 0;
     }
-    SeriesLineStyle seriesLineStyle = seriesLineStyleMap.get(strokeCounter);
+    SeriesLineStyle seriesLineStyle = seriesLineStyleList.get(strokeCounter);
 
     // 3. Marker - cycle through markers one by one
-    if (markerCounter >= seriesMarkerMap.size()) {
+    if (markerCounter >= seriesMarkerList.size()) {
       markerCounter = 0;
     }
-    SeriesMarker marker = seriesMarkerMap.get(markerCounter++);
+    SeriesMarker marker = seriesMarkerList.get(markerCounter++);
 
     return new SeriesColorMarkerLineStyle(seriesColor.getColor(), marker.getMarker(), seriesLineStyle.getBasicStroke());
   }
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 c593bf92c572d4cf3ed58e3888368589188f4d6b..84dfdff38f40fd9df292ed8d9378f1f9e9df1cc0 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
@@ -35,6 +35,8 @@ public interface Theme {
 
   public int getChartPadding();
 
+  public SeriesColorMarkerLineStyleCycler getSeriesColorMarkerLineStyleCycler();
+
   // Chart Title ///////////////////////////////
 
   public Font getChartTitleFont();
@@ -104,9 +106,9 @@ public interface Theme {
   // Chart Plot Area ///////////////////////////////
 
   public boolean isPlotGridLinesVisible();
-  
+
   public boolean isPlotGridVerticalLinesVisible();
-  
+
   public boolean isPlotGridHorizontalLinesVisible();
 
   public Color getPlotBackgroundColor();
diff --git a/xchart/src/main/java/org/knowm/xchart/internal/style/XChartTheme.java b/xchart/src/main/java/org/knowm/xchart/internal/style/XChartTheme.java
index fb69b0610c7d0d68927edb152a646bdc353c9a3e..99c117d9509ce32c57d19a5718c13a4e5963358c 100644
--- a/xchart/src/main/java/org/knowm/xchart/internal/style/XChartTheme.java
+++ b/xchart/src/main/java/org/knowm/xchart/internal/style/XChartTheme.java
@@ -20,8 +20,14 @@ import java.awt.BasicStroke;
 import java.awt.Color;
 import java.awt.Font;
 import java.awt.Stroke;
+import java.util.ArrayList;
+import java.util.EnumSet;
+import java.util.List;
 
 import org.knowm.xchart.ChartColor;
+import org.knowm.xchart.SeriesColor;
+import org.knowm.xchart.SeriesLineStyle;
+import org.knowm.xchart.SeriesMarker;
 import org.knowm.xchart.StyleManager.LegendPosition;
 
 /**
@@ -29,6 +35,42 @@ import org.knowm.xchart.StyleManager.LegendPosition;
  */
 public class XChartTheme implements Theme {
 
+  /** BLUE */
+  public static SeriesColor BLUE = new SeriesColor(0, 55, 255, 180);
+
+  /** ORANGE */
+  public static SeriesColor ORANGE = new SeriesColor(255, 172, 0, 180);
+
+  /** PURPLE */
+  public static SeriesColor PURPLE = new SeriesColor(128, 0, 255, 180);
+
+  /** GREEN */
+  public static SeriesColor GREEN = new SeriesColor(0, 205, 0, 180);
+
+  /** RED */
+  public static SeriesColor RED = new SeriesColor(205, 0, 0, 180);
+
+  /** YELLOW */
+  public static SeriesColor YELLOW = new SeriesColor(255, 215, 0, 180);
+
+  /** MAGENTA */
+  public static SeriesColor MAGENTA = new SeriesColor(255, 0, 255, 180);
+
+  /** PINK */
+  public static SeriesColor PINK = new SeriesColor(255, 166, 201, 180);
+
+  /** LIGHT_GREY */
+  public static SeriesColor LIGHT_GREY = new SeriesColor(207, 207, 207, 180);
+
+  /** CYAN */
+  public static SeriesColor CYAN = new SeriesColor(0, 255, 255, 180);
+
+  /** BROWN */
+  public static SeriesColor BROWN = new SeriesColor(102, 56, 10, 180);
+
+  /** BLACK */
+  public static SeriesColor BLACK = new SeriesColor(0, 0, 0, 180);
+
   // Chart Style ///////////////////////////////
 
   @Override
@@ -49,6 +91,12 @@ public class XChartTheme implements Theme {
     return 10;
   }
 
+  @Override
+  public SeriesColorMarkerLineStyleCycler getSeriesColorMarkerLineStyleCycler() {
+
+    return new XChartSeriesColorMarkerLineStyleCycler();
+  }
+
   // Chart Title ///////////////////////////////
 
   @Override
@@ -249,13 +297,13 @@ public class XChartTheme implements Theme {
 
     return true;
   }
-  
+
   @Override
   public boolean isPlotGridHorizontalLinesVisible() {
 
     return true;
   }
-  
+
   @Override
   public Color getPlotBackgroundColor() {
 
@@ -334,4 +382,55 @@ public class XChartTheme implements Theme {
     return false;
   }
 
+  public class XChartSeriesColorMarkerLineStyleCycler extends SeriesColorMarkerLineStyleCycler {
+
+    @Override
+    public List<SeriesColor> getSeriesColorList() {
+
+      // 1. Color
+      List<SeriesColor> seriesColorMap = new ArrayList<SeriesColor>();
+      seriesColorMap.add(BLUE);
+      seriesColorMap.add(ORANGE);
+      seriesColorMap.add(PURPLE);
+      seriesColorMap.add(GREEN);
+      seriesColorMap.add(RED);
+      seriesColorMap.add(YELLOW);
+      seriesColorMap.add(MAGENTA);
+      seriesColorMap.add(PINK);
+      seriesColorMap.add(LIGHT_GREY);
+      seriesColorMap.add(CYAN);
+      seriesColorMap.add(BROWN);
+      seriesColorMap.add(BLACK);
+
+      return seriesColorMap;
+    }
+
+    @Override
+    public List<SeriesMarker> getSeriesMarkerList() {
+
+      // 2. Marker
+      List<SeriesMarker> seriesMarkerList = new ArrayList<SeriesMarker>();
+      for (SeriesMarker seriesMarker : EnumSet.allOf(SeriesMarker.class)) {
+        if (seriesMarker.getIndex() >= 0) { // skip SeriesMarker.NONE
+          seriesMarkerList.add(seriesMarker);
+        }
+      }
+      return seriesMarkerList;
+    }
+
+    @Override
+    public List<SeriesLineStyle> getLineStyleList() {
+
+      // 3. Stroke
+      List<SeriesLineStyle> seriesLineStyleList = new ArrayList<SeriesLineStyle>();
+      for (SeriesLineStyle seriesLineStyle : EnumSet.allOf(SeriesLineStyle.class)) {
+        if (seriesLineStyle.getIndex() >= 0) { // skip SeriesLineStyle.NONE
+          seriesLineStyleList.add(seriesLineStyle);
+        }
+      }
+      return seriesLineStyleList;
+    }
+
+  }
+
 }