From d0daa7a91153e42031b7f58a8788381698863ba4 Mon Sep 17 00:00:00 2001
From: Tim Molter <tim@knowm.org>
Date: Fri, 22 Jan 2016 16:21:10 +0100
Subject: [PATCH] allow removal of series from chart (Issue #127)

---
 .../xchart/standalone/TestForIssue127.java    | 33 +++++++++++++++++--
 .../main/java/org/knowm/xchart/Chart_XY.java  |  4 +--
 .../xchart/internal/chartpart/Chart.java      |  5 +++
 3 files changed, 38 insertions(+), 4 deletions(-)

diff --git a/xchart-demo/src/main/java/org/knowm/xchart/standalone/TestForIssue127.java b/xchart-demo/src/main/java/org/knowm/xchart/standalone/TestForIssue127.java
index b7e8c36a..7c23b15a 100644
--- a/xchart-demo/src/main/java/org/knowm/xchart/standalone/TestForIssue127.java
+++ b/xchart-demo/src/main/java/org/knowm/xchart/standalone/TestForIssue127.java
@@ -16,6 +16,13 @@
  */
 package org.knowm.xchart.standalone;
 
+import java.text.DateFormat;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
 import org.knowm.xchart.ChartBuilder_XY;
 import org.knowm.xchart.Chart_XY;
 import org.knowm.xchart.SwingWrapper;
@@ -25,7 +32,7 @@ import org.knowm.xchart.SwingWrapper;
  */
 public class TestForIssue127 {
 
-  public static void main(String[] args) {
+  public static void main(String[] args) throws InterruptedException, ParseException {
 
     int[] x = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 };
     int[] y = new int[] { 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1 };
@@ -34,9 +41,31 @@ public class TestForIssue127 {
 
     Chart_XY chart = new ChartBuilder_XY().width(640).height(480).xAxisTitle("x").yAxisTitle("y").build();
     chart.setTitle("TEst");
-    // chart.addSeries("test", x, y);
     chart.getStyler().setLegendVisible(false);
     new SwingWrapper(chart).displayChart();
+    Thread.sleep(1000);
+
+    chart.addSeries("test", x, y);
+    new SwingWrapper(chart).displayChart();
+    Thread.sleep(1000);
+
+    chart.removeSeries("test");
+    new SwingWrapper(chart).displayChart();
+
+    DateFormat sdf = new SimpleDateFormat("dd-HH-mm");
+
+    List<Date> xDate = new ArrayList<Date>();
+    xDate.add(sdf.parse("25-01-00"));
+    xDate.add(sdf.parse("25-02-00"));
+    xDate.add(sdf.parse("25-03-00"));
+    List<Double> yDate = new ArrayList<Double>();
+    yDate.add(2d);
+    yDate.add(3d);
+    yDate.add(5d);
+    chart.addSeries("test2", xDate, yDate);
+    new SwingWrapper(chart).displayChart();
+    Thread.sleep(1000);
+
   }
 
 }
diff --git a/xchart/src/main/java/org/knowm/xchart/Chart_XY.java b/xchart/src/main/java/org/knowm/xchart/Chart_XY.java
index 1350d81c..9f367d82 100644
--- a/xchart/src/main/java/org/knowm/xchart/Chart_XY.java
+++ b/xchart/src/main/java/org/knowm/xchart/Chart_XY.java
@@ -261,8 +261,8 @@ public class Chart_XY extends Chart<Styler_XY, Series_XY> {
    */
   public void setSeriesStyles() {
 
-    SeriesColorMarkerLineStyleCycler seriesColorMarkerLineStyleCycler = new SeriesColorMarkerLineStyleCycler(getStyler().getSeriesColors(), getStyler().getSeriesMarkers(),
-        getStyler().getSeriesLines());
+    SeriesColorMarkerLineStyleCycler seriesColorMarkerLineStyleCycler = new SeriesColorMarkerLineStyleCycler(getStyler().getSeriesColors(), getStyler().getSeriesMarkers(), getStyler()
+        .getSeriesLines());
     for (Series_XY series : getSeriesMap().values()) {
 
       SeriesColorMarkerLineStyle seriesColorMarkerLineStyle = seriesColorMarkerLineStyleCycler.getNextSeriesColorMarkerLineStyle();
diff --git a/xchart/src/main/java/org/knowm/xchart/internal/chartpart/Chart.java b/xchart/src/main/java/org/knowm/xchart/internal/chartpart/Chart.java
index 1bc01543..34cd05c7 100644
--- a/xchart/src/main/java/org/knowm/xchart/internal/chartpart/Chart.java
+++ b/xchart/src/main/java/org/knowm/xchart/internal/chartpart/Chart.java
@@ -197,6 +197,11 @@ public abstract class Chart<ST extends Styler, S extends Series> implements Char
     return seriesMap;
   }
 
+  public S removeSeries(String seriesName) {
+
+    return seriesMap.remove(seriesName);
+  }
+
   /**
    * Gets the Chart's styler, which can be used to customize the Chart's appearance
    *
-- 
GitLab