diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/bar/BarChart02.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/bar/BarChart02.java index 1d9c0603b8afb7b39e988d24c885a7d08fceeefe..db89c5f4a36476682e1ce3fcc5974e4c09b1125f 100644 --- a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/bar/BarChart02.java +++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/bar/BarChart02.java @@ -75,7 +75,7 @@ public class BarChart02 implements ExampleChart { xData.add(date); yData.add(-1 * ((random.nextInt(i) + 1))); } - Series series = chart.addDateSeries("Model 77", xData, yData); + Series series = chart.addSeries("Model 77", xData, yData); series.setLineColor(SeriesColor.RED); chart.getStyleManager().setPlotGridLinesVisible(false); diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/bar/BarChart05.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/bar/BarChart05.java index 03ebdac379bc8b16cc53e9478a7bdd942e79e585..b15395ac3f8663eea8a3d045ac9a91fd9bfd95b4 100644 --- a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/bar/BarChart05.java +++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/bar/BarChart05.java @@ -48,8 +48,8 @@ public class BarChart05 implements ExampleChart { // Create Chart Chart chart = new ChartBuilder().chartType(ChartType.Bar).width(800).height(600).title("Temperature vs. Color").xAxisTitle("Color").yAxisTitle("Temperature").theme(ChartTheme.GGPlot2).build(); - chart.addCategorySeries("fish", new ArrayList<String>(Arrays.asList(new String[] { "Blue", "Red", "Green", "Yellow" })), new ArrayList<Number>(Arrays.asList(new Number[] { -40, 30, 20, 60 }))); - chart.addCategorySeries("worms", new ArrayList<String>(Arrays.asList(new String[] { "Blue", "Red", "Green", "Yellow" })), new ArrayList<Number>(Arrays.asList(new Number[] { 50, 10, -20, 40 }))); + chart.addSeries("fish", new ArrayList<String>(Arrays.asList(new String[] { "Blue", "Red", "Green", "Yellow" })), new ArrayList<Number>(Arrays.asList(new Number[] { -40, 30, 20, 60 }))); + chart.addSeries("worms", new ArrayList<String>(Arrays.asList(new String[] { "Blue", "Red", "Green", "Yellow" })), new ArrayList<Number>(Arrays.asList(new Number[] { 50, 10, -20, 40 }))); return chart; } diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/date/DateChart01.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/date/DateChart01.java index 25c60f8d0d7434760d21ecd91ccc3f08c539b51d..42ace1a0b3c2f1bf460467dfc8ba838e6121e04b 100644 --- a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/date/DateChart01.java +++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/date/DateChart01.java @@ -75,7 +75,7 @@ public class DateChart01 implements ExampleChart { yData.add(Math.random() * i); } - Series series = chart.addDateSeries("blah", xData, yData); + Series series = chart.addSeries("blah", xData, yData); series.setMarker(SeriesMarker.NONE); return chart; diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/date/DateChart02.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/date/DateChart02.java index 548b0e1d6e032978a1e05d23bb1b72ea251f68e7..cf11711ee1c6943a6f8f601e105ce63dfe685cfe 100644 --- a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/date/DateChart02.java +++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/date/DateChart02.java @@ -65,7 +65,7 @@ public class DateChart02 implements ExampleChart { yData.add(Math.random() * i); } - chart.addDateSeries("blah", xData, yData); + chart.addSeries("blah", xData, yData); return chart; diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/date/DateChart03.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/date/DateChart03.java index c426788f91468e5a268d50e4226d645cb5d54dae..5d9786aef032876e0e09591760767b3bfd6620ad 100644 --- a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/date/DateChart03.java +++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/date/DateChart03.java @@ -67,7 +67,7 @@ public class DateChart03 implements ExampleChart { yData.add(Math.random() * i); } - chart.addDateSeries("blah", xData, yData); + chart.addSeries("blah", xData, yData); return chart; diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/date/DateChart04.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/date/DateChart04.java index 3bdcceac28346d7531e218f116087dc7d47d4476..cdc842dc5d0eda9a797e8448f648b9171c1da7e7 100644 --- a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/date/DateChart04.java +++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/date/DateChart04.java @@ -65,7 +65,7 @@ public class DateChart04 implements ExampleChart { yData.add(Math.random() * i); } - chart.addDateSeries("blah", xData, yData); + chart.addSeries("blah", xData, yData); return chart; diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/date/DateChart05.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/date/DateChart05.java index 3fd6616fff5b9d1a92672c9b2ae710cc02fe644f..7bca4d329d896e4b4aee3595feaeffefed460d20 100644 --- a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/date/DateChart05.java +++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/date/DateChart05.java @@ -65,7 +65,7 @@ public class DateChart05 implements ExampleChart { yData.add(Math.random() * i); } - chart.addDateSeries("blah", xData, yData); + chart.addSeries("blah", xData, yData); return chart; diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/date/DateChart06.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/date/DateChart06.java index da6688c999eae55321f829910dbc9efb55c8912b..1a95329946ed5819988d3df57958a096ad1d46e1 100644 --- a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/date/DateChart06.java +++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/date/DateChart06.java @@ -65,7 +65,7 @@ public class DateChart06 implements ExampleChart { yData.add(Math.random() * i); } - chart.addDateSeries("blah", xData, yData); + chart.addSeries("blah", xData, yData); return chart; diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/date/DateChart07.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/date/DateChart07.java index a9f2b7bcb122e14c8fae6dc3c80d963bcb50f133..da274a443fe2e5950859f451d27c1fe51a82db51 100644 --- a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/date/DateChart07.java +++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/date/DateChart07.java @@ -65,7 +65,7 @@ public class DateChart07 implements ExampleChart { yData.add(Math.random() * i); } - chart.addDateSeries("blah", xData, yData); + chart.addSeries("blah", xData, yData); return chart; diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/line/LineChart03.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/line/LineChart03.java index 969f2db0de06ff7ba3578e556eb3638f0d3b2fec..da94fc7a1c8fe32ba5c9c18b2d9fa6a6b331fc59 100644 --- a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/line/LineChart03.java +++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/line/LineChart03.java @@ -100,7 +100,7 @@ public class LineChart03 implements ExampleChart { chart.getStyleManager().setNormalDecimalPattern("#0.000"); chart.getStyleManager().setLocale(Locale.GERMAN); - Series series = chart.addDateSeries("Fake Data", xData, yData); + Series series = chart.addSeries("Fake Data", xData, yData); series.setLineColor(SeriesColor.BLUE); series.setMarkerColor(Color.ORANGE); series.setMarker(SeriesMarker.CIRCLE); diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/realtime/RealtimeChart01.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/realtime/RealtimeChart01.java index 4561aa93fcc89b7fd84d0ec063b971362f861a60..c96c243f8729254870008472f16ee2dfd3b8f12d 100644 --- a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/realtime/RealtimeChart01.java +++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/realtime/RealtimeChart01.java @@ -28,8 +28,11 @@ import com.xeiam.xchart.demo.charts.ExampleChart; /** * Realtime - * - * @author timmolter + * <p> + * Demonstrates the following: + * <ul> + * <li>real-time chart updates + * <li>fixed window */ public class RealtimeChart01 implements ExampleChart { diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/realtime/RealtimeChart02.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/realtime/RealtimeChart02.java index d031319925acc37251a02a4cec782da8623541e7..f805714df0e2baeb0619e0b3abb7c836084b4b07 100644 --- a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/realtime/RealtimeChart02.java +++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/realtime/RealtimeChart02.java @@ -28,8 +28,11 @@ import com.xeiam.xchart.demo.charts.ExampleChart; /** * Realtime - * - * @author timmolter + * <p> + * Demonstrates the following: + * <ul> + * <li>real-time chart updates + * <li>dynamic window */ public class RealtimeChart02 implements ExampleChart { 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 index 9ddec50df324779fc23cfd22b667cff294db8ef5..7862a72a859653fda9286fe1ab22c488f33b1266 100644 --- 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 @@ -15,9 +15,9 @@ */ package com.xeiam.xchart.demo.charts.scatter; -import java.util.ArrayList; -import java.util.List; +import java.util.HashSet; import java.util.Random; +import java.util.Set; import com.xeiam.xchart.Chart; import com.xeiam.xchart.StyleManager.ChartType; @@ -27,8 +27,11 @@ import com.xeiam.xchart.demo.charts.ExampleChart; /** * Gaussian Blob - * - * @author timmolter + * <p> + * Demonstrates the following: + * <ul> + * <li>ChartType.Scatter + * <li>Series data as a Set */ public class ScatterChart01 implements ExampleChart { @@ -42,8 +45,8 @@ public class ScatterChart01 implements ExampleChart { @Override public Chart getChart() { - List<Double> xData = new ArrayList<Double>(); - List<Double> yData = new ArrayList<Double>(); + Set<Double> xData = new HashSet<Double>(); + Set<Double> yData = new HashSet<Double>(); Random random = new Random(); int size = 1000; for (int i = 0; i < size; i++) { diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/theme/ThemeChart03.java b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/theme/ThemeChart03.java index 6668cc951d1e218bab3878f687ef12448f54db94..1d463c96424c5baae8d2005034b5a853f2d9c516 100644 --- a/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/theme/ThemeChart03.java +++ b/xchart-demo/src/main/java/com/xeiam/xchart/demo/charts/theme/ThemeChart03.java @@ -103,9 +103,9 @@ public class ThemeChart03 implements ExampleChart { e.printStackTrace(); } - Series series1 = chart.addDateSeries("downloads", xData, y1Data); + Series series1 = chart.addSeries("downloads", xData, y1Data); series1.setLineStyle(SeriesLineStyle.DOT_DOT); - chart.addDateSeries("price", xData, y2Data); + chart.addSeries("price", xData, y2Data); return chart; } diff --git a/xchart/src/main/java/com/xeiam/xchart/Chart.java b/xchart/src/main/java/com/xeiam/xchart/Chart.java index 3c6f41565029c396a6b03f96402b24367f2ef0bc..7eb04bae693dd9d00c132f0752d9eb84aeb1e4e4 100644 --- a/xchart/src/main/java/com/xeiam/xchart/Chart.java +++ b/xchart/src/main/java/com/xeiam/xchart/Chart.java @@ -18,7 +18,7 @@ package com.xeiam.xchart; import java.awt.Graphics2D; import java.util.ArrayList; import java.util.Collection; -import java.util.Date; +import java.util.List; import java.util.Map; import com.xeiam.xchart.StyleManager.ChartTheme; @@ -104,60 +104,20 @@ public class Chart { } /** - * Add a Category series to the chart - * - * @param seriesName - * @param xData - * @param yData - * @return - */ - public Series addCategorySeries(String seriesName, Collection<String> xData, Collection<? extends Number> yData) { - - return chartPainter.getAxisPair().addSeries(seriesName, xData, yData, null); - } - - /** - * Add a Date series to the chart - * - * @param seriesName - * @param xData the X-Axis data - * @param yData the Y-Axis data - * @return A Series object that you can set properties on - */ - public Series addDateSeries(String seriesName, Collection<Date> xData, Collection<? extends Number> yData) { - - return chartPainter.getAxisPair().addSeries(seriesName, xData, yData, null); - } - - /** - * Add a Date series to the chart with error bars - * - * @param seriesName - * @param xData the X-Axis data - * @param yData the Y-Axis data - * @param errorBars the error bar data - * @return A Series object that you can set properties on - */ - public Series addDateSeries(String seriesName, Collection<Date> xData, Collection<? extends Number> yData, Collection<? extends Number> errorBars) { - - return chartPainter.getAxisPair().addSeries(seriesName, xData, yData, errorBars); - } - - /** - * Add a Number series to the chart using Collection<Number> + * Add a series to the chart using Collections * * @param seriesName * @param xData the X-Axis data * @param yData the Y-Axis data * @return A Series object that you can set properties on */ - public Series addSeries(String seriesName, Collection<? extends Number> xData, Collection<? extends Number> yData) { + public Series addSeries(String seriesName, Collection<?> xData, Collection<? extends Number> yData) { return chartPainter.getAxisPair().addSeries(seriesName, xData, yData, null); } /** - * Add a Number series to the chart using Collection<Number> with error bars + * Add a Number series to the chart using Collections with error bars * * @param seriesName * @param xData the X-Axis data @@ -165,7 +125,7 @@ public class Chart { * @param errorBars the error bar data * @return A Series object that you can set properties on */ - public Series addSeries(String seriesName, Collection<? extends Number> xData, Collection<? extends Number> yData, Collection<? extends Number> errorBars) { + public Series addSeries(String seriesName, Collection<?> xData, Collection<? extends Number> yData, Collection<? extends Number> errorBars) { return chartPainter.getAxisPair().addSeries(seriesName, xData, yData, errorBars); } @@ -194,20 +154,20 @@ public class Chart { */ public Series addSeries(String seriesName, double[] xData, double[] yData, double[] errorBars) { - Collection<Number> xDataNumber = null; + List<Double> xDataNumber = null; if (xData != null) { - xDataNumber = new ArrayList<Number>(); + xDataNumber = new ArrayList<Double>(); for (double d : xData) { xDataNumber.add(new Double(d)); } } - Collection<Number> yDataNumber = new ArrayList<Number>(); + List<Double> yDataNumber = new ArrayList<Double>(); for (double d : yData) { yDataNumber.add(new Double(d)); } - Collection<Number> errorBarDataNumber = null; + List<Double> errorBarDataNumber = null; if (errorBars != null) { - errorBarDataNumber = new ArrayList<Number>(); + errorBarDataNumber = new ArrayList<Double>(); for (double d : errorBars) { errorBarDataNumber.add(new Double(d)); } diff --git a/xchart/src/main/java/com/xeiam/xchart/Series.java b/xchart/src/main/java/com/xeiam/xchart/Series.java index 8d0109a7c996f6dafd5ec80b8d0582e7264a544a..213dd15776ef8387b3d361005d84eadcf29be638 100644 --- a/xchart/src/main/java/com/xeiam/xchart/Series.java +++ b/xchart/src/main/java/com/xeiam/xchart/Series.java @@ -20,7 +20,6 @@ import java.awt.Color; import java.util.Collection; import java.util.Date; import java.util.Iterator; -import java.util.List; import com.xeiam.xchart.internal.chartpart.Axis.AxisType; import com.xeiam.xchart.internal.markers.Marker; @@ -303,13 +302,13 @@ public class Series { return name; } - void replaceXData(List<?> newXData) { + void replaceXData(Collection<?> newXData) { xData = newXData; calculateMinMax(); } - void replaceYData(List<? extends Number> newYData) { + void replaceYData(Collection<? extends Number> newYData) { yData = newYData; calculateMinMax(); diff --git a/xchart/src/main/java/com/xeiam/xchart/XChartPanel.java b/xchart/src/main/java/com/xeiam/xchart/XChartPanel.java index b1f5161bd40a1c26a70e541311c4a7be66b26998..c2c9eedfd7e8df8a0d71fcf56fc1ad2cd94486f8 100644 --- a/xchart/src/main/java/com/xeiam/xchart/XChartPanel.java +++ b/xchart/src/main/java/com/xeiam/xchart/XChartPanel.java @@ -27,6 +27,7 @@ import java.awt.event.MouseListener; import java.io.File; import java.io.IOException; import java.util.ArrayList; +import java.util.Collection; import java.util.List; import javax.swing.AbstractAction; @@ -251,7 +252,7 @@ public class XChartPanel extends JPanel { * @param newYData * @return */ - public Series updateSeries(String seriesName, List<? extends Number> newYData) { + public Series updateSeries(String seriesName, Collection<? extends Number> newYData) { Series series = chart.getSeriesMap().get(seriesName); if (series == null) { @@ -280,7 +281,7 @@ public class XChartPanel extends JPanel { * @param newYData * @return */ - public Series updateSeries(String seriesName, List<?> newXData, List<? extends Number> newYData) { + public Series updateSeries(String seriesName, Collection<?> newXData, List<? extends Number> newYData) { Series series = chart.getSeriesMap().get(seriesName); if (series == null) { 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 6cbab1c1e7189700c09c566480bba3de2aabb3e4..fef1bda9dacaabdfcad169c4bbb08cc108d722ba 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 @@ -59,11 +59,13 @@ public class AxisPair implements ChartPart { } /** - * @param <T> + * @param seriesName * @param xData * @param yData + * @param errorBars + * @return Series */ - public <T> Series addSeries(String seriesName, Collection<T> xData, Collection<? extends Number> yData, Collection<? extends Number> errorBars) { + public Series addSeries(String seriesName, Collection<?> xData, Collection<? extends Number> yData, Collection<? extends Number> errorBars) { // Sanity checks if (seriesName == null) { @@ -81,7 +83,7 @@ public class AxisPair implements ChartPart { Series series = null; if (xData != null) { - // Check if xAxis series contains Number or Date data + // inspect the series to see what kind of data it contains (Number, Date or String) Iterator<?> itr = xData.iterator(); Object dataPoint = itr.next(); if (dataPoint instanceof Number) { @@ -93,6 +95,9 @@ public class AxisPair implements ChartPart { else if (dataPoint instanceof String) { xAxis.setAxisType(AxisType.String); } + else { + throw new RuntimeException("Series data must be either Number, Date or String type!!!"); + } yAxis.setAxisType(AxisType.Number); series = new Series(seriesName, xData, xAxis.getAxisType(), yData, yAxis.getAxisType(), errorBars, seriesColorMarkerLineStyleCycler.getNextSeriesColorMarkerLineStyle()); }