diff --git a/xchart-demo/src/main/java/org/knowm/xchart/demo/charts/line/LineChart07.java b/xchart-demo/src/main/java/org/knowm/xchart/demo/charts/line/LineChart07.java index 827c4f3218c05bf4e2f874bcf6914cad048e37f4..79f67c2155c473930de95c93d2a89c35334f84bc 100644 --- a/xchart-demo/src/main/java/org/knowm/xchart/demo/charts/line/LineChart07.java +++ b/xchart-demo/src/main/java/org/knowm/xchart/demo/charts/line/LineChart07.java @@ -36,6 +36,7 @@ import org.knowm.xchart.internal.style.markers.SeriesMarkers; * <ul> * <li>A Line Chart created from multiple category series types * <li>GGPlot2 Theme + * <li>disabling some series shown in legend */ public class LineChart07 implements ExampleChart { @@ -97,7 +98,7 @@ public class LineChart07 implements ExampleChart { for (int i = 0; i < seriesNames.length; i++) { Series_Category series = chart.addSeries(seriesNames[i], xAxisKeys, Arrays.asList(dataPerSeries[i])); series.setMarker(SeriesMarkers.NONE); - // series.setChartCategorySeriesRenderStyle(ChartCategorySeriesRenderStyle.Line); + series.setShowInLegend(i % 2 == 0); } return chart; diff --git a/xchart/src/main/java/org/knowm/xchart/internal/Series.java b/xchart/src/main/java/org/knowm/xchart/internal/Series.java index ae4c6a815cc9786b4627e5736e643d67711d5dd8..128b3a59e29c44a5851586220887a43760e055c4 100644 --- a/xchart/src/main/java/org/knowm/xchart/internal/Series.java +++ b/xchart/src/main/java/org/knowm/xchart/internal/Series.java @@ -21,7 +21,7 @@ import java.awt.Color; import org.knowm.xchart.internal.chartpart.RenderableSeries.LegendRenderType; /** - * A Series containing X and Y data to be plotted on a Chart + * A Series containing data to be plotted on a Chart * * @author timmolter */ @@ -29,11 +29,12 @@ public abstract class Series { public abstract LegendRenderType getLegendRenderType(); - private String name = ""; + private final String name; - /** Fill Color */ private Color fillColor; + private boolean showInLegend; + /** * Constructor * @@ -46,7 +47,6 @@ public abstract class Series { throw new IllegalArgumentException("Series name cannot be null or zero-length!!!"); } this.name = name; - } public Color getFillColor() { @@ -64,4 +64,14 @@ public abstract class Series { return name; } + public boolean isShowInLegend() { + + return showInLegend; + } + + public void setShowInLegend(boolean showInLegend) { + + this.showInLegend = showInLegend; + } + } diff --git a/xchart/src/main/java/org/knowm/xchart/internal/chartpart/Legend_.java b/xchart/src/main/java/org/knowm/xchart/internal/chartpart/Legend_.java index 71f7d58a0c14b67c8868b02ee09210eb16731eec..81acfa4c767f59da00520d1e88d7fc8bf61f130e 100644 --- a/xchart/src/main/java/org/knowm/xchart/internal/chartpart/Legend_.java +++ b/xchart/src/main/java/org/knowm/xchart/internal/chartpart/Legend_.java @@ -72,7 +72,7 @@ public abstract class Legend_<ST extends Styler, S extends Series> implements Ch // We call get bounds hint because sometimes the Axis object needs it to know it's bounds (if Legend is outside Plot). If it's null, we just need to calulate it before painting, because the paint // methods needs the bounds. if (bounds == null) { // No other part asked for the bounds yet. Probably because it's an "inside" legend location - bounds = getBoundsHint(); // Actually, the only information contained in thsi bounds is the width and height. + bounds = getBoundsHint(); // Actually, the only information contained in this bounds is the width and height. } // legend draw position @@ -136,6 +136,10 @@ public abstract class Legend_<ST extends Styler, S extends Series> implements Ch Map<String, S> map = chart.getSeriesMap(); for (Series series : map.values()) { + if (series.isShowInLegend()) { + continue; + } + Map<String, Rectangle2D> seriesTextBounds = getSeriesTextBounds(series); double legendEntryHeight = 0; // could be multi-line diff --git a/xchart/src/main/java/org/knowm/xchart/internal/chartpart/Legend_AxesChart.java b/xchart/src/main/java/org/knowm/xchart/internal/chartpart/Legend_AxesChart.java index 39ce97fe6c682c8ba9eb6031c16b390eb87af4b9..9f05f7b8266c6dde58115812f0fded6d882e24c6 100644 --- a/xchart/src/main/java/org/knowm/xchart/internal/chartpart/Legend_AxesChart.java +++ b/xchart/src/main/java/org/knowm/xchart/internal/chartpart/Legend_AxesChart.java @@ -69,6 +69,10 @@ public class Legend_AxesChart<ST extends Styler_AxesChart, S extends Series> ext Map<String, Series_AxesChart> map = chart.getSeriesMap(); for (Series_AxesChart series : map.values()) { + if (series.isShowInLegend()) { + continue; + } + Map<String, Rectangle2D> seriesTextBounds = getSeriesTextBounds(series); float legendEntryHeight = 0; diff --git a/xchart/src/main/java/org/knowm/xchart/internal/chartpart/Legend_Pie.java b/xchart/src/main/java/org/knowm/xchart/internal/chartpart/Legend_Pie.java index 6257b92d6e9f0a420b184cf8e7ee6bb4820bf9e4..4197d6a91cf1703ce0ba206b14f46c4c308a0266 100644 --- a/xchart/src/main/java/org/knowm/xchart/internal/chartpart/Legend_Pie.java +++ b/xchart/src/main/java/org/knowm/xchart/internal/chartpart/Legend_Pie.java @@ -66,6 +66,10 @@ public class Legend_Pie<ST extends Styler_AxesChart, S extends Series> extends L Map<String, Series> map = chart.getSeriesMap(); for (Series series : map.values()) { + if (series.isShowInLegend()) { + continue; + } + Map<String, Rectangle2D> seriesTextBounds = getSeriesTextBounds(series); float legendEntryHeight = 0;