From c7f6cd51719352afe276ce541c5e79dade40091c Mon Sep 17 00:00:00 2001 From: Manish Dait Date: Sun, 31 Dec 2023 14:48:17 +0530 Subject: [PATCH 1/6] feat:Added fies for areaPlot --- .../github/manishdait/jplotlib/Jplotlib.java | 15 ++- .../jplotlib/charts/area/AreaChart.java | 37 ++++++++ .../jplotlib/charts/area/AreaChartOption.java | 5 + .../jplotlib/charts/area/AreaChartPotter.java | 92 +++++++++++++++++++ .../jplotlib/charts/area/AreaChartStyle.java | 5 + .../jplotlib/charts/helper/GraphPlotter.java | 6 ++ .../jplotlib/internals/util/ChartType.java | 4 +- 7 files changed, 162 insertions(+), 2 deletions(-) create mode 100644 src/main/java/io/github/manishdait/jplotlib/charts/area/AreaChart.java create mode 100644 src/main/java/io/github/manishdait/jplotlib/charts/area/AreaChartOption.java create mode 100644 src/main/java/io/github/manishdait/jplotlib/charts/area/AreaChartPotter.java create mode 100644 src/main/java/io/github/manishdait/jplotlib/charts/area/AreaChartStyle.java diff --git a/src/main/java/io/github/manishdait/jplotlib/Jplotlib.java b/src/main/java/io/github/manishdait/jplotlib/Jplotlib.java index fb503b3..db58a88 100755 --- a/src/main/java/io/github/manishdait/jplotlib/Jplotlib.java +++ b/src/main/java/io/github/manishdait/jplotlib/Jplotlib.java @@ -27,6 +27,8 @@ import java.util.ArrayList; import java.util.List; +import io.github.manishdait.jplotlib.charts.area.AreaChart; +import io.github.manishdait.jplotlib.charts.area.AreaChartOption; import io.github.manishdait.jplotlib.charts.bar.BarGraph; import io.github.manishdait.jplotlib.charts.bar.BarGraphOptions; import io.github.manishdait.jplotlib.charts.helper.Graph; @@ -74,7 +76,8 @@ public final class Jplotlib implements LineChartOptions, ScatterChartOptions, BarGraphOptions, - PieChartOptions { + PieChartOptions, + AreaChartOption { protected Window window; protected Config axisConfiguration; @@ -295,4 +298,14 @@ public PieChart pie(double[] dataPoints, String[] labels) { isPlotable = true; return pieChart; } + + @Override + public AreaChart areaPlot(double[] xPoints, double[] yPoints) { + setAxisType(AxisType.PLOT); + setAxisParameters(xPoints, yPoints); + AreaChart areaChart = new AreaChart(new CartesianData(xPoints, yPoints)); + graphs.add(areaChart); + isPlotable = true; + return areaChart; + } } diff --git a/src/main/java/io/github/manishdait/jplotlib/charts/area/AreaChart.java b/src/main/java/io/github/manishdait/jplotlib/charts/area/AreaChart.java new file mode 100644 index 0000000..5512c09 --- /dev/null +++ b/src/main/java/io/github/manishdait/jplotlib/charts/area/AreaChart.java @@ -0,0 +1,37 @@ +package io.github.manishdait.jplotlib.charts.area; + +import io.github.manishdait.jplotlib.charts.helper.Graph; +import io.github.manishdait.jplotlib.data.util.Data; +import io.github.manishdait.jplotlib.internals.util.ChartType; + +public class AreaChart implements Graph { + private Data data; + private AreaChartStyle style; + private static final ChartType CHART_TYPE = ChartType.AREA; + + public AreaChart(Data data) { + this.data = data; + this.style = new AreaChartStyle(); + } + + public Data getData() { + return data; + } + + public void setData(Data data) { + this.data = data; + } + + public AreaChartStyle getStyle() { + return style; + } + + public void setStyle(AreaChartStyle style) { + this.style = style; + } + + public static ChartType getChartType() { + return CHART_TYPE; + } + +} diff --git a/src/main/java/io/github/manishdait/jplotlib/charts/area/AreaChartOption.java b/src/main/java/io/github/manishdait/jplotlib/charts/area/AreaChartOption.java new file mode 100644 index 0000000..cc9761c --- /dev/null +++ b/src/main/java/io/github/manishdait/jplotlib/charts/area/AreaChartOption.java @@ -0,0 +1,5 @@ +package io.github.manishdait.jplotlib.charts.area; + +public interface AreaChartOption { + AreaChart areaPlot(double[] xPoints, double[] yPoints); +} diff --git a/src/main/java/io/github/manishdait/jplotlib/charts/area/AreaChartPotter.java b/src/main/java/io/github/manishdait/jplotlib/charts/area/AreaChartPotter.java new file mode 100644 index 0000000..f997a42 --- /dev/null +++ b/src/main/java/io/github/manishdait/jplotlib/charts/area/AreaChartPotter.java @@ -0,0 +1,92 @@ +package io.github.manishdait.jplotlib.charts.area; + +import javax.swing.JPanel; + +import java.awt.Color; +import java.awt.Graphics; +import java.awt.Graphics2D; +import java.awt.Polygon; +import java.awt.RenderingHints; + +import io.github.manishdait.jplotlib.charts.helper.Plotter; +import io.github.manishdait.jplotlib.data.CartesianData; +import io.github.manishdait.jplotlib.defaults.color.PlotColor; +import io.github.manishdait.jplotlib.internals.components.axis.Config; + +public class AreaChartPotter implements Plotter { + + private Graphics2D g; + private JPanel context; + private Config axisConfiguration; + private AreaChart areaGraph; + private int indx; + + private int yValDiff; + private int xValDiff; + + private int xIncrement; + private int yIncrement; + + private int xLowerBound; + private int yLowerBound; + private double[] xPoints; + private double[] yPoints; + + private int heigth; + + public AreaChartPotter(Graphics g, + JPanel context, + Config axisConfiguration, + AreaChart areaGraph, + int indx) { + this.g = (Graphics2D) g; + this.context = context; + this.axisConfiguration = axisConfiguration; + this.areaGraph = areaGraph; + this.indx = indx; + this.heigth = context.getHeight(); + + this.yValDiff = axisConfiguration.getyValDiff(); + this.xValDiff = axisConfiguration.getxValDiff(); + + this.xIncrement = axisConfiguration.getxIncrement(); + this.yIncrement = axisConfiguration.getyIncrement(); + + this.xLowerBound = axisConfiguration.getxLowerBound(); + this.yLowerBound = axisConfiguration.getyLowerBound(); + } + + @Override + public void draw() { + xPoints = ((CartesianData) areaGraph.getData()).getxPoints(); + yPoints = ((CartesianData) areaGraph.getData()).getyPoints(); + + int[] xTemp = new int[xPoints.length + 2]; + int[] yTemp = new int[yPoints.length + 2]; + + this.g.setRenderingHint( + RenderingHints.KEY_ANTIALIASING, + RenderingHints.VALUE_ANTIALIAS_ON); + + int extraSpace = (int) (Math.min(xIncrement, yIncrement) * 0.5); + + for (int i = 0; i < xPoints.length; i++) { + xTemp[i+1] = ((int)(xIncrement * (xPoints[i] - xLowerBound)) / xValDiff) + extraSpace; + } + + for (int i = 0; i < xPoints.length; i++) { + yTemp[i+1] = (heigth - (int)(yIncrement * (yPoints[i] - yLowerBound)) / yValDiff) - extraSpace; + } + + xTemp[0] = ((int)(xIncrement * (xPoints[0] - xLowerBound)) / xValDiff) + extraSpace; + yTemp[0] = (heigth - (yIncrement * (0 - yLowerBound)) / yValDiff) - extraSpace; + + xTemp[xTemp.length - 1] = ((int)(xIncrement * (xPoints[xPoints.length - 1] - xLowerBound)) / xValDiff) + extraSpace; + yTemp[yTemp.length - 1] = (heigth - (yIncrement * (0 - yLowerBound)) / yValDiff) - extraSpace; + Color color = PlotColor.getColor(indx); + g.setColor(color); + g.fillPolygon(xTemp, yTemp, xTemp.length); + + } + +} diff --git a/src/main/java/io/github/manishdait/jplotlib/charts/area/AreaChartStyle.java b/src/main/java/io/github/manishdait/jplotlib/charts/area/AreaChartStyle.java new file mode 100644 index 0000000..7a22721 --- /dev/null +++ b/src/main/java/io/github/manishdait/jplotlib/charts/area/AreaChartStyle.java @@ -0,0 +1,5 @@ +package io.github.manishdait.jplotlib.charts.area; + +public class AreaChartStyle { + +} diff --git a/src/main/java/io/github/manishdait/jplotlib/charts/helper/GraphPlotter.java b/src/main/java/io/github/manishdait/jplotlib/charts/helper/GraphPlotter.java index a0f6e80..ce908ed 100755 --- a/src/main/java/io/github/manishdait/jplotlib/charts/helper/GraphPlotter.java +++ b/src/main/java/io/github/manishdait/jplotlib/charts/helper/GraphPlotter.java @@ -29,6 +29,8 @@ import javax.swing.JPanel; +import io.github.manishdait.jplotlib.charts.area.AreaChart; +import io.github.manishdait.jplotlib.charts.area.AreaChartPotter; import io.github.manishdait.jplotlib.charts.bar.BarGraph; import io.github.manishdait.jplotlib.charts.bar.BarGraphPlotter; import io.github.manishdait.jplotlib.charts.line.LineChart; @@ -81,6 +83,10 @@ else if (graphs.get(i) instanceof ScatterChart) { else if (graphs.get(i) instanceof BarGraph) { new BarGraphPlotter(g, this, axisConfiguration, (BarGraph) graphs.get(i), i).draw(); } + + else if (graphs.get(i) instanceof AreaChart) { + new AreaChartPotter(g, this, axisConfiguration, (AreaChart) graphs.get(i), i).draw(); + } } } } diff --git a/src/main/java/io/github/manishdait/jplotlib/internals/util/ChartType.java b/src/main/java/io/github/manishdait/jplotlib/internals/util/ChartType.java index d5f5ce4..64ad0a2 100755 --- a/src/main/java/io/github/manishdait/jplotlib/internals/util/ChartType.java +++ b/src/main/java/io/github/manishdait/jplotlib/internals/util/ChartType.java @@ -56,6 +56,8 @@ public enum ChartType { /** * The PIE chart type represents a pie chart. */ - PIE; + PIE, + + AREA; } From a42efd1667b9c412a580f1c3727a978350caf06d Mon Sep 17 00:00:00 2001 From: Manish Dait Date: Mon, 1 Apr 2024 11:04:27 +0530 Subject: [PATCH 2/6] feat: added styles for area plot --- .../jplotlib/charts/area/AreaChart.java | 53 +++++++++++++ .../jplotlib/charts/area/AreaChartOption.java | 44 +++++++++++ .../jplotlib/charts/area/AreaChartPotter.java | 79 +++++++++++++++++-- .../jplotlib/charts/area/AreaChartStyle.java | 60 +++++++++++++- .../jplotlib/internals/util/ChartType.java | 3 + 5 files changed, 232 insertions(+), 7 deletions(-) diff --git a/src/main/java/io/github/manishdait/jplotlib/charts/area/AreaChart.java b/src/main/java/io/github/manishdait/jplotlib/charts/area/AreaChart.java index 5512c09..a139701 100644 --- a/src/main/java/io/github/manishdait/jplotlib/charts/area/AreaChart.java +++ b/src/main/java/io/github/manishdait/jplotlib/charts/area/AreaChart.java @@ -1,14 +1,54 @@ +/* + * MIT License + * + * Copyright (c) 2023 Manish Dait + * + * 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 io.github.manishdait.jplotlib.charts.area; +import java.awt.Color; + import io.github.manishdait.jplotlib.charts.helper.Graph; import io.github.manishdait.jplotlib.data.util.Data; import io.github.manishdait.jplotlib.internals.util.ChartType; +/** + * The AreaChart class implements the Graph interface and represents a area + * chart. + * It allows plotting area chart using polygon with customizable styles. + * + */ public class AreaChart implements Graph { + private Data data; private AreaChartStyle style; private static final ChartType CHART_TYPE = ChartType.AREA; + /** + * Constructs a AreaChart with the provided data coordinates and initializes + * default style settings. + * + * @param data + * The data coordinates to be plotted on the area chart. + */ public AreaChart(Data data) { this.data = data; this.style = new AreaChartStyle(); @@ -34,4 +74,17 @@ public static ChartType getChartType() { return CHART_TYPE; } + public AreaChart color(Color color) { + style.setColor(color); + return this; + } + + public AreaChart alpha(float alpha) { + if (alpha > 1 || alpha < 0) { + alpha = 1; + } + style.setAlpha(alpha); + return this; + } + } diff --git a/src/main/java/io/github/manishdait/jplotlib/charts/area/AreaChartOption.java b/src/main/java/io/github/manishdait/jplotlib/charts/area/AreaChartOption.java index cc9761c..3a34193 100644 --- a/src/main/java/io/github/manishdait/jplotlib/charts/area/AreaChartOption.java +++ b/src/main/java/io/github/manishdait/jplotlib/charts/area/AreaChartOption.java @@ -1,5 +1,49 @@ +/* + * MIT License + * + * Copyright (c) 2023 Manish Dait + * + * 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 io.github.manishdait.jplotlib.charts.area; +/** + * The AreaChartOptions interface defines methods related to creating area + * charts. + * Implementations of this interface are expected to provide functionality for + * generating + * AreaChart objects based on given x and y data points. + * + */ public interface AreaChartOption { + + /** + * Creates a AreaChart with the provided x and y data points. + * + * @param xPoints + * An array of double values representing the x-axis data points. + * @param yPoints + * An array of double values representing the y-axis data points. + * @return AreaChart An object representing a area chart constructed using + * the given data. + */ AreaChart areaPlot(double[] xPoints, double[] yPoints); + } diff --git a/src/main/java/io/github/manishdait/jplotlib/charts/area/AreaChartPotter.java b/src/main/java/io/github/manishdait/jplotlib/charts/area/AreaChartPotter.java index f997a42..8bf5358 100644 --- a/src/main/java/io/github/manishdait/jplotlib/charts/area/AreaChartPotter.java +++ b/src/main/java/io/github/manishdait/jplotlib/charts/area/AreaChartPotter.java @@ -1,3 +1,27 @@ +/* + * MIT License + * + * Copyright (c) 2023 Manish Dait + * + * 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 io.github.manishdait.jplotlib.charts.area; import javax.swing.JPanel; @@ -5,7 +29,6 @@ import java.awt.Color; import java.awt.Graphics; import java.awt.Graphics2D; -import java.awt.Polygon; import java.awt.RenderingHints; import io.github.manishdait.jplotlib.charts.helper.Plotter; @@ -13,11 +36,16 @@ import io.github.manishdait.jplotlib.defaults.color.PlotColor; import io.github.manishdait.jplotlib.internals.components.axis.Config; +/** + * The AreaChartPlotter class is responsible for rendering AreaChart + * objects on a JPanel by drawing + * individual data polygon based on the provided axis configuration, coordinates + * and style information. + * + */ public class AreaChartPotter implements Plotter { private Graphics2D g; - private JPanel context; - private Config axisConfiguration; private AreaChart areaGraph; private int indx; @@ -34,14 +62,27 @@ public class AreaChartPotter implements Plotter { private int heigth; + /** + * Constructs a AreaChartPlotter with the necessary rendering context and + * chart data. + * + * @param g + * The Graphics object used for rendering. + * @param context + * The JPanel where the area chart will be drawn. + * @param axisConfiguration + * The configuration for rendering the axis. + * @param areaGraph + * The AreaChart object containing data to be plotted. + * @param indx + * The index used for styling multiple charts. + */ public AreaChartPotter(Graphics g, JPanel context, Config axisConfiguration, AreaChart areaGraph, int indx) { this.g = (Graphics2D) g; - this.context = context; - this.axisConfiguration = axisConfiguration; this.areaGraph = areaGraph; this.indx = indx; this.heigth = context.getHeight(); @@ -83,10 +124,36 @@ public void draw() { xTemp[xTemp.length - 1] = ((int)(xIncrement * (xPoints[xPoints.length - 1] - xLowerBound)) / xValDiff) + extraSpace; yTemp[yTemp.length - 1] = (heigth - (yIncrement * (0 - yLowerBound)) / yValDiff) - extraSpace; - Color color = PlotColor.getColor(indx); + Color color = areaGraph.getStyle().getColor(); + if (color == null) { + color = PlotColor.getColor(indx); + } + + g.setColor(color); + g.drawPolygon(xTemp, yTemp, xTemp.length); + + color = setAlpa(color); g.setColor(color); g.fillPolygon(xTemp, yTemp, xTemp.length); } + /** + * Adjusts the alpha (transparency) level of the provided color based on style + * information + * to ensure proper rendering of the area chart. + * + * @param color + * The input color for which alpha will be adjusted. + * @return Color The adjusted color with alpha transparency applied. + */ + private Color setAlpa(Color color) { + Color currColor = color; + float alpha = areaGraph.getStyle().getAlpha(); + if (alpha < 0 || alpha > 1) { + alpha = 1; + } + return new Color(currColor.getRed(), currColor.getGreen(), currColor.getBlue(), (int) (alpha * 255)); + } + } diff --git a/src/main/java/io/github/manishdait/jplotlib/charts/area/AreaChartStyle.java b/src/main/java/io/github/manishdait/jplotlib/charts/area/AreaChartStyle.java index 7a22721..3921334 100644 --- a/src/main/java/io/github/manishdait/jplotlib/charts/area/AreaChartStyle.java +++ b/src/main/java/io/github/manishdait/jplotlib/charts/area/AreaChartStyle.java @@ -1,5 +1,63 @@ +/* + * MIT License + * + * Copyright (c) 2023 Manish Dait + * + * 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 io.github.manishdait.jplotlib.charts.area; +import java.awt.Color; + +/** + * The AreaChartStyle class holds style properties for configuring the + * appearance of a area chart. + * It includes settings for colors, and alpha. + * + */ public class AreaChartStyle { - + + private Color color; + private float alpha; + + /** + * Constructs a AreaChartStyle with default style settings. + */ + public AreaChartStyle () { + this.color = null; + this.alpha = 1F; + } + + public Color getColor() { + return color; + } + + public void setColor(Color color) { + this.color = color; + } + + public float getAlpha() { + return alpha; + } + + public void setAlpha(float alpha) { + this.alpha = alpha; + } + } diff --git a/src/main/java/io/github/manishdait/jplotlib/internals/util/ChartType.java b/src/main/java/io/github/manishdait/jplotlib/internals/util/ChartType.java index 64ad0a2..04d2242 100755 --- a/src/main/java/io/github/manishdait/jplotlib/internals/util/ChartType.java +++ b/src/main/java/io/github/manishdait/jplotlib/internals/util/ChartType.java @@ -58,6 +58,9 @@ public enum ChartType { */ PIE, + /** + * The AREA chart type represents a area chart. + */ AREA; } From 90a21ae54c4510110eeb29560b4f13bc01710811 Mon Sep 17 00:00:00 2001 From: Manish Dait Date: Tue, 2 Apr 2024 16:17:15 +0530 Subject: [PATCH 3/6] added areachart to beta-1.20 --- src/main/java/io/github/manishdait/jplotlib/Jplotlib.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/io/github/manishdait/jplotlib/Jplotlib.java b/src/main/java/io/github/manishdait/jplotlib/Jplotlib.java index db58a88..99525b8 100755 --- a/src/main/java/io/github/manishdait/jplotlib/Jplotlib.java +++ b/src/main/java/io/github/manishdait/jplotlib/Jplotlib.java @@ -299,6 +299,8 @@ public PieChart pie(double[] dataPoints, String[] labels) { return pieChart; } + // Area Chart + @Override public AreaChart areaPlot(double[] xPoints, double[] yPoints) { setAxisType(AxisType.PLOT); From bab96e3de58ee930d1b8349e6bc646a8601d5c81 Mon Sep 17 00:00:00 2001 From: Manish Dait Date: Sat, 20 Apr 2024 15:16:42 +0530 Subject: [PATCH 4/6] docs: added docs for the areaPlot --- docs/AREA_PLOT.md | 155 ++++++++++++++++++++++++++++++++++ docs/assets/area/area_EG1.png | Bin 0 -> 16163 bytes docs/assets/area/area_EG2.png | Bin 0 -> 15474 bytes docs/assets/area/area_EG3.png | Bin 0 -> 30723 bytes docs/assets/area/area_EG4.png | Bin 0 -> 21479 bytes docs/assets/area/area_EG5.png | Bin 0 -> 24159 bytes 6 files changed, 155 insertions(+) create mode 100644 docs/AREA_PLOT.md create mode 100644 docs/assets/area/area_EG1.png create mode 100644 docs/assets/area/area_EG2.png create mode 100644 docs/assets/area/area_EG3.png create mode 100644 docs/assets/area/area_EG4.png create mode 100644 docs/assets/area/area_EG5.png diff --git a/docs/AREA_PLOT.md b/docs/AREA_PLOT.md new file mode 100644 index 0000000..f80e9a7 --- /dev/null +++ b/docs/AREA_PLOT.md @@ -0,0 +1,155 @@ +# Jplotlib.areaPlot() + +The `areaPlot()` method in the `Jplotlib.areaPlot()` allows you to create 2D area plots with ease. This method is designed to visualize datasets using y-coordinates and x-coordinates: + +## Method Signatures +`areaPlot(double[] xPoints, double[] yPoints)`: + - Description: Plots a 2D area chart using the given x-coordinates and y-coordinates. + - Example usage: + ```java + double[] xCoords = {1.0, 2.0, 3.0, 4.0}; + double[] yCoords = {2.5, 5.1, 3.9, 6.2}; + new Jplotlib.areaPlot(xCoords, yCoords); + ``` + + +## Area Color + +To customize the color of the area in the chart, you can use the `.color()` method available in the Jplotlib library. This method allows you to specify the color using either the `LibColor` enum from Jplotlib or the `java.awt.Color` class. + +### Using `LibColor` from Jplotlib: + +The `LibColor` enum provides a set of predefined colors that you can use to style the line in your plot. Here's an example of how to use it: + +```java +import io.github.manishdait.jplotlib.Jplotlib; +import io.github.manishdait.jplotlib.defaults.color.LibColor; + +public class App { + public static void main(String[] args) { + Jplotlib jplotlib = new Jplotlib(); + double[] y = {6, 2, 7, 11}; + double[] x = {1, 2, 3, 4}; + jplotlib.areaPlot(x, y) + .color(LibColor.LIME.getColor()); + jplotlib.show(); + } +} +``` + +In this example, we use the `.color(LibColor.LIME.getColor())` method to set the color of the line to lime. + +area_eg1.png + +For more information about the `LibColor` enum and the available colors, refer to the [LibColor Enum section](LIB_COLOR.md). + + +### Using `java.awt.Color`: + +If you prefer to use the `java.awt.Color` class, you can do so as follows: + +```java +import java.awt.Color; +import io.github.manishdait.jplotlib.Jplotlib; + +public class App { + public static void main(String[] args) { + Jplotlib jplotlib = new Jplotlib(); + double[] y = {6, 2, 7, 11}; + double[] x = {1, 2, 3, 4}; + jplotlib.areaPlot(x, y) + .color(Color.RED); + jplotlib.show(); + } +} +``` + +In this example, we use the `.color(Color.RED)` method to set the color of the line to red. + +area_eg2.png + +Whichever method you choose, the `.color()` method allows you to customize the appearance of your line plots with different colors according to your preferences. + + +## Alpha + +In Jplotlib, you can adjust the transparency of the area in area plots using the `.alpha()` method. This feature allows you to control the opacity of area, making the area plot visually more informative and expressive. + +### Example Usage: + +```java +import io.github.manishdait.jplotlib.Jplotlib; + +public class App { + public static void main(String[] args) { + double[] x = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}; + double[] y = {99,86,87,88,111,86,103,87,94,78,77,85,86}; + + Jplotlib jplotlib = new Jplotlib(); + jplotlib.areaPlot(x, y) + .alpha(0.5F); + jplotlib.show(); + } +} +``` + +In this example, we use the `.alpha()` argument with the areaPlot() method to set the transparency (opacity) of the aarea in the area plot. The `alphaValue` is a float value between 0 and 1, where 0 means completely transparent (invisible) area, and 1 means completely opaque (fully visible) area. + +By adjusting the transparency of the area, you can reveal underlying patterns in the data, especially when data points overlap closely together. It helps in visualizing the density of data points and identifying areas with overlaping concentration. + +area_eg3.png + + + + +## Multiples Lines + +You can plot as many area chart as you like by simply adding more `Jplotlib.areaPlot()` method calls: + +### Example Usage: + +```java +import io.github.manishdait.jplotlib.Jplotlib; + +public class App { + public static void main(String[] args) { + Jplotlib jplotlib = new Jplotlib(); + double[] x1 = {0, 1, 2, 3}; + double[] x2 = {2, 3, 4, 5}; + double[] y1 = {6, 2, 7, 11}; + double[] y2 = {3, 8, 1, 10}; + jplotlib.areaPlot(x1, y1); + jplotlib.areaPlot(x2, y2); + jplotlib.show(); + } +} +``` + +In this example, we create two sets of y-coordinates (`y1` and `y2`) and two sets of x-coordinates (`x1` and `x2`) and plot them using two separate `Jplotlib.areaPlot()` method calls. + +area_eg4.png + +### Example Usage: + +```java +import io.github.manishdait.jplotlib.Jplotlib; + +public class App { + public static void main(String[] args) { + Jplotlib jplotlib = new Jplotlib(); + double[] x1 = {0, 1, 2, 3}; + double[] x2 = {2, 3, 4, 5}; + double[] y1 = {6, 2, 7, 11}; + double[] y2 = {3, 8, 1, 10}; + jplotlib.areaPlot(x1, y1); + jplotlib.areaPlot(x2, y2).alpha(0.3f); + jplotlib.show(); + } +} +``` + +In this example, we create two sets of y-coordinates (`y1` and `y2`) similar to above example but with alpha. + +area_eg5.png + + diff --git a/docs/assets/area/area_EG1.png b/docs/assets/area/area_EG1.png new file mode 100644 index 0000000000000000000000000000000000000000..93a43324b4094d00f624aa8edff77e8dce4e6a62 GIT binary patch literal 16163 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 literal 0 HcmV?d00001 diff --git a/docs/assets/area/area_EG2.png b/docs/assets/area/area_EG2.png new file mode 100644 index 0000000000000000000000000000000000000000..76bebb11caef62b7363511a31a8f2b173ef4ecf7 GIT binary patch literal 15474 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

h>slpOx19>{>Y)A_SH|Mqj67#t=f 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 CaJq^B literal 0 HcmV?d00001 diff --git a/docs/assets/area/area_EG4.png b/docs/assets/area/area_EG4.png new file mode 100644 index 0000000000000000000000000000000000000000..f5ac2e856a4dcedcf2fbbb262d14072d28a6516d GIT binary patch literal 21479 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 literal 0 HcmV?d00001 diff --git a/docs/assets/area/area_EG5.png b/docs/assets/area/area_EG5.png new file mode 100644 index 0000000000000000000000000000000000000000..0fc6b4c8b5078d5394e8a7c0b9961b0ce445ba9f GIT binary patch literal 24159 zcmeGEWmJ`4)IJJtN)bf_327vxLAoTRyE~+$q`MJCq`O7Vm<&* zQa@Y@fp6%p5^|cD;L8uw;w$)_*iA~;O~diMo2RLZCB(|X(cY5P)!fC>(!tf*(G8B) zB?4Z0jeO~?i>0ZXjiUpVrj5NNM8nk0-NnMxn~L)_mAI3O%?I!UCpXn=F2UCVg52Cx zs!Hu-F2oQB6+})_T+=J_VA(S@5xRbHax*f*X301e!Oht8!Z#{BIJPI%I&zY>C{$q!p9RAdOs;vmGmPpl+o%`(vrT!|IE6|=Qt5sjbv+=vi_C|WA$M62Q zx1G9+kNlu9`={Ra@bVR2@Xj-I9)gc;@?!2e8BD9?hrBp<2lP_8dGzw4)kP z8-FDTUW}Eu6%?-?*9zJbsYVFHVxQmIIt-H`M80h*h}k>7q|Z)hI z1^;ULN>R=0+$LPNRGGdN+&tYALAr2CsqwjI($aBG8U39$lqh&FT8-zIsSf&{21EiZ zTIHoGE4=*M3-BgY64V_?C`Wmya`raV&(HeN#7oN1GQW<6MbWeHAL7uYpfZfyy`6q} zL7gd^ctM3d>QXK2{;Egxw@BrK7ql-+kDxbLayL)ETPmc}+q5%{=inF<@L!$$Tous8 z{E%c$ZV_4Vgy&#Wl-8!Ez_HO`*=K^IpX~YJ?^^TXk&zLHIN5^Gf+jiPCqN*?R)Zv_ z-%~1oQWygR!~6RBI&EufYoE4*%BF)!_|C;Lt#Sp# z#UZKVV$)%bBsFeWubIo(pg!}?o_-%b5GiI9$$=Fj!P&<^L-Tgs={F$(fq#qt&4r|t zRIhKmv_d%S7**AZ7_;1k{bTwzMDuc1d}=vM$Wz37?Z?L)=dmnZZEeEv{tcuoNbVyt zzgl667-o{FbnQz0bNFPwOtUV__R!FfazcZwdV@&+8(nnUbaXP2O*>Pq=$m`@YU2*X z+3w^|h{<1hylDh&eUU;ur8kmXV1y;xf0TEFSi%pa5N^Q%YpCOU<*6W<~ zD)i6g-|vlg#2{eRR|^O4kex zFrIe!3GMJd{cRo-m6DQT#RC&Y4pC(X4mk8Z-y=wH>#!Bc5k2_cwfDu0r;^0&!~SgL zLrV(_L$Zk8bT|cgo5~*8ztI*dA15o>rx|VRJjO^7Q~vFn#EDlX8TQC}rbfATw6A&hX_op`BlY#fkXpyPfu)+3V%r!;(2vbPje=4f&_ zTWLUPu9)*+)f@;!59g337j#o?_c+9VI(O^i!cV3RRzZLjGLxFG8k|Uj7j`f-K8_=Y zs7ZIEWWh)hEl;n;B=gbAE$1kbQEz?9fM5aSV z3*vef+n{q#`oKc#S8KrTJ6`A;76#f<4F>!@ZTJkBAG6@%aFK7f;4&8kPpMJ6$7YFD zv=jf*TXlLUhnj8~*~PTJ%+p6@i0ejV1XleVM9F0<>Of>&6C3%R=w(Lo+3F#duN2QAba~mqEhl3^s05%I?2T z?Y`V8Ns2}K@*QXY*$LUBDSr%2fd`!&%Gq3;ocIyFGZWY!KBfM8k&u>>(rl3AieA9< z>*Legg}g(tGHELdJB#S~HJ zaR^Q4WeB^UIF9g{YNKT?g@7$739VLr3@H4NDMhni!#-;tJrI6#TIpBXKXK=4T zZjYySmG8$gONEYF-VzfNr@!&8qlNt)W}iE3UagX$^w*qS__8g#x71ms_35cGIV3ik zb8KSHv0Y84X*4P0Hu6ZTosb)%8bu9kq>9RieS56dA#6! zoSK*2hA^SrwL8==HQT}J;6jKC^E;%4XIcmb=*4tg27URG41?>KR2TEU$U4m+_CaJU zYw@r5lU#)2oDcr7&0|9xbR?V?8h1d8sC6QY?_=%|fzu6n--rA$b8_wA?QiF@d3F8U zJk{G}(>z!LbrM!q@}G;|OBp%&Sur|(5}~-~TfW&eJZz4i(cZZ~;8^yDp6o5tDa3`} zE;MW^37;N|o-Hh>Gx`O0dfaCr_Da!a>Rn|T9XB)++ch0y0%UPibW6>2md)Wa`|&xu ze4_38J5Tp2Wc9K=9K7D*tRiw(SW9ne<7lVv@cj>Ux~4p3{Pcyn9yfYh$>Nd=zHW$K zI=}YSx((ET-qgFrR<+;jfJr{h6#LR!h731Y{X!k}I$A}HCu)_sm-y6;|6ItHX|yy@ z8{d&N>ZV8E=|q*Y9w^^davsqf;P6Md$xV@aF1?fsm(Fk7h!#5A&5sFCe-ceCqxAOE z(?z|O1&+6Zejjjys9qnsjghPDhdJV?7yV&kEmIBMV4Ii=@Jv@0++J*3?mOrKp&v2&rbd2LzdeDhqV>bt#AB4xrKAuRXbiS*Ca zw3&-<3zdx!nWg3M0L`#UlPO9OmQt8C&r(X$-h5a21)N=@WYM|p*dP#UzJA-b{ZT;h zKz4ma(De!fp(#`x{_U2jrhoT0SJjltc&y!$diiP;@~ zFh#TB(JtTRyZf-Mz}^tUV9rLtTj=~KyY#P_=WnSc63Pr!9HZ-<`@QC0F>!Kgf zlu`#CN_SfXZU54%_oJOjwQi+GnDF+`4q~dOh`O$%{IBP#Z7%b=5`PyFIdn><82c68 zy(!jYTT*%(8mNCxVW0lHs+JEMI$`?OeJe*q_2c96@suj46c6jdyJnlE820Ij@s*;| zn~F`Qv&kHh@(8xO_@f*nCZfHPQ?@r!N!34l8jpXn?{cLCsLlEBJn+9=#IaK@#fJqp zjlFS`*#2m4>~oTY7+z9ub;7|eU+?_fcBzpwD_!-W>h7dt-|Y~ZGu@kVuXp-%S+pp* z|J4%wF#^#`P9Xnbs)aIYV#1Wj_O~#+^iPd}9Oor&j3sMeb=z-ylE7h1>~^P?&eJn2 zt<SJ}}by%h5Ddw8@ z5w(wc%^%4*+xzYqu|_Bq9XgXN6<<6`sj_Z$;iaX0uD;l0Z;9vI;3s7n?U5y@xs7=_ z(JOjiy^_kMLfIjt;i&vwfvABeeo%dp7y2(D?RV)xp%61%p;;NalG5`<5AjYz)7Cfd z$lL#m@zrn)&)*hat#GZ;7$vW@MTb4exBm^*uAf*Z&E@T9v~#pdSaw~Nx%^Qt z*%(Ay>qxh$zRHcIx!}$M?c2D;LHCpN%lJXF}$8v6G>}TiKiSts9NrGFlfff znPkJ{*fmC%Yos_?l3;=VG_-89Lt*pmHxvkZX4ya0F z6YpiUX9GXC=xVCbGg{zR!Txcj(QDA`#P3~_g-LejY?i=6uH9Oz#oqR8oRH8D%<|&u zlzF2%vJjSE>|>8kszzmPfc{qPq5R{g027XE_BR|-#(N$+z#JQ`}3LPDrachyQkyZS?$ z-09B`^!pe32&9;z1sP`)-agP~vwsmT8E+Do>(_OWq{}#?Q=Gk^B-fE_v#>usXH=*n zLu*hYQI2=tjMLq2UtDWGcaw5^DQk)X;)O*5y zsmfupRc;Bhjta7Dd7s_mVI|qZ%rPc&u1@oPl858@w$XaUg4r~A=Ij#$L^$f9HTXwv zU%q5b8@<#^I$X@3`bE(>(_TI7YJ+O+M?gTp6X5u}#08|L8qc#_q@S2kOyah6~GrsBW?wJ&-1(DQP4&(3GJ+qY=< zmXd&Zrq=FUih9OiPWU2O1inyi*UyVpuKQS~BllKEq=J&{I}XDk^Fd6UUY;4u;VROWKrVpD@}|9a9yV|L8&kZDX4{?l}jfRWF$x&kqKedDoc zAuMp6f!NWxvA*iiIQuz%S^B0vg0m3qxdLfydtcYwDnZv#(~hfKr}H>Ezqy4X=jbgr&?CMBzY&Uayzx&ZXkKa zmDV7l`ljRVZ&oK3T}8zsMlw!yv(S~yrsHFQ7mS`JGW#2K>G%J{-u7-d_nOs8FDg(G zMnHWB$J$(Gv<1_dLmRa{SG=tn6+SCx@G3ceKap-+RRBI>Kcc)iZ!^ZpM~8_23FqE% zi*R(D7{7;GcHEwz zj@~458hRt6KR|u6}l3d zh3(7J;CCc?HvG^8`e&&{FvqQmjo&eM0sq6~-`3N{yRSUj3C|x9Sf3&!EZryzp2xr$ z>zQSyDLRyJzQ^S(O)%@^;vC&q1^gYKYqYitqwaUpD30VjoNrNd-LBB?v=cibxi{7} zu=OUx5sGJ?9;@^o+Kr_naF{wE3aHF^!&&W8nBMa~s_PO($*@H$!@gmC&~bO~-oW^t?rB_|L`P?-+BAGtAPVc&+~S>JreSf)Gud(}ga_GU%iG8t9KX=tmV22=Ze3%D8)JwJcB z3}yYrP-~yJ?YLcyBgVwWrpFDi2KGAc!MyxAS8nmvTSw*T=G_*x?HDv|Lg#YWafW>o|lc$`^olm?-#j;+2qNkwC*JJ%u~$sDTM&1f9A4 zZVf2;;;8yRzo{O22N;otBWViRw~YiSRY*1!Qd-&P>I19`zECuEaM#L^KgFio3a6;N zr$mucx3Pgu${@!~P}3TrdmQ|pOcX%A!X5l6BLNyBfTRS)AZlQZkRZsn|B)k!i+lt1 zD>d>P`ZFoyH%zK<&p7|jBS-&*c_bVeahQ<*SH>2@A0aV8 z&OX1twXSS1I5KTULzq#OehBDn$OYK1BI`u@(s{d_^Fa}|vO`6vZ4(d(pL zC&f-iycPZe@=O<`pIH6Pc~4<_&FeYOClE~TWE^|cP&QnjJ#>tkgNU)Dj=y9Q9B>rR|!P_R|7^jFH-6o z-2+R(gCI1J<3X?Z{9($VQH_GRe!TqeNn>%1p(ttdZ}3En0I5$x+g@!9fx>Iy7Z80C z;L6;=e|}4N_T%iQf&t7hvD^6% zJ|C{PjR6r;kOm9qE;Hz3nT-y1S>*uibuNe$lF=TiMQ(f8Q{)r5|DNF6?5w}bh?zZZkWX3w8&SoX5oyp9U9uB&QlhXbT(cUOx=FSE?Lu%*~5~{#1Q2qLH*~_lZDbFWVl`RC- zh-ipkFwzy_hbpw@A9dY7Q)Sy0#xh{HwqhoTkD|E0( zr__E?-D&~Si|c5V0`g|J?{Lf?rbsPSDt@aKbSar^2t9}m$V@UiErR3!_X$K!o!jBO zkzOR(vI}^=^&Bo==nae(ng^UpD>o;~qatPLyvh;OU{T*M*9Ss^>L9EgQ7|j zwJ(&vU2g)JP+UqUR`ix5(2RJsTrP_z=}HEZV+3#cpUTR@WIz|FBpT6)9tRz=~$nS zQG@AzIF}d66G%OIEFlkaS1diP(W6@0zhw}Niv2J)%z5ZL=ti<8gr$ni$%44SA?3U1ZngzE8 zCtiquJEGO06g~r*7R-#Bw0QjSNy6ti2?kUO7Na&zz7?+0*Z3=Jzz$Anbqv)tn0vJmx& z5v_I}hZRDk2V9v=63hxeP=85$enL)FQqid2U>$eVw$JwJFG`lQl8AdD7$;aTZ5K}mf< z$=%zEu>wWaiv8wb?R&`RW;9cA)@+W}>jrUO_%(UZ;VxFGC$_@%htM-iUO_Mz~mFb zMz_B|AXgJ>z^hht3Q4=@0GUb>2~=jCQR!!!z4(XhSDIRC)a^D+iY8SLs2V{^=3=CO z_sS^RJOD*hjA!X@nEH1Kvw775eh|$KuZ8{&yZ3)41LJ0>Y7Yp~#`*^v;4mR9Cr#v( z-G0}gNz?u2ePSK=t=A>P3Pk%9vgYW=QVMs;wqt=jXwdY4p)=xIf=IwXihTB*aCH&0sf=d1;C=~;l`SxoH43udRfQ=aKhChOJxCVdylo{3Iuk=Ke~mfDzv8o{ zF=QgXH8Tb0$z!ts$P^lw?@hb+nZzMu8FCHe2X$efstj7VgCby!4}>1?_FfyD%?=rX z@Gnu2iaSX5t|0u}fNWMOyl`fya6&RDCF zyA%W#0-P{veVc7|3v1jm6MGgbcu=Qf*+#)`=?;R}S`#_;)vWy7oz+w1gzCxk?NLCc z%74%K-f)@RDC8rRf0%I_pZJxF1=A)BDRFHchtFnq0omnC=$lK-eZFNolo1kb`N{)HSDHp-LL7P)Tw$CUQhsr8nv*-$QV=?!I zQbSKk<3w6_eUTwolH3QwCYHL-rYOJ)NaoK~#4xifJ1D@!6mtWVbbnolu-qQjH+yJTN_sUow^1piaLZOg zMj;s?@i=xMKusA~trclCBw~|+O*YTjOm6$Fa_Bd#e#y~DW}d$4Ii~5fdJq-6*skqx zyGRj_66(tQYS>Lk&USgy6aT*{*BC5z2zT$_SDlmRO9_ouOlz&<@bEZyUX=dAUFBO= zNrVYXdW>yQOreA_tS~mSW|)d&K0(@3)q80#LuJgeD@gx^z;en-;zgVJS&?w@HYFLi zgabe}9f?d=3A+EjS-c?pyoPL?X#R&M0!&r!jK%C7FuU>+MhK&n42wQ@^W0^^?ulD@ zvvlS011dAAr*ADv&*OBeg4_UF4SL|UIodchW(h_Krcp1GcuPG#c%%IiUC*4b^?!L*TSP08|E5vlC}qK|jEtHa{%CN% z2pdz=R7Wum<{Um#)&XY_tN(8*zw?tAE%mr#U_&mKHom_N9&KYj{n=VwtK{4gyp9O~ z=O`sU<&S4xdezJo3QR}_Oh^lJoYt|Mzd!{p`<~IQ!85RFt7uk$cm8iR5?HJ`U#Egq#j=9b$Of_P>ko{c3)K(67$Ga#OH~-~OG@ID2k0!7;Li>q06T zyVy||H;uxhdqVOn_?avS$&$A=+*NRqcCqL%6nDhiJ}xYQ@~|)kQokqDmv2h#i3F;! zas}`=hmH)HrgMOTNK`qqo_;@~W|QcR;@(QtpqPU_K5gNfhXrj~e~2Yz@xZ7^a!f&8 z&v*j^y(~_bQ=8K?O{DRI*TVuvJcNwy_o$i zs>(B;d=8s}kzjMEGJV0iAN^^P?wjo&HB{PUbV(bPqbthzk6GZm>c)Z!|nF`Q#(AJ-;2%Z`TjSP407fhrq{bjfrCnLi3Y&5SWR7uIi+#dV{#hHC6crP zk@wYoJu*W)edz0ZsWl_9adpGSaq<`3qxMv>2SbdU9m+|ZF=nL(RK05GZ=A;b|6cq+ z!`VgbS6`Ap3MweSKaXQFoAr!LoR~Y9y!@qcF8+txUOVPh2P@aE`k9|W2o2ST$S^sqo$(xR(6H3o_TfoyQj^r#QH4(?aDQb_bcPo#q9R zxOo^PBtw(vzG3pvHg5;F0ohWo6abVmb}nL9v^$LjSQzpjy=p;Y{7k(zIjtf(3WfZr zzXizkDn#mlD7HZH`81qM+Ad2-n{qKBY0d!?P^9jDnFCM7Jk}Fu>$cZcLlcfPX^TN*DRRF%v~%+{i`N$5EQNK8#YO; zib@XAkGi28((eZbhP+Xwgl;Xw| zZCCn0!!C%N4c|K&cv0zc%RQd8$*1_q{sFKH}1HwWzRetY5;IkcR1mdaTLj~1rHb)hj+#qnu;!J=vw9gJA?cHg9f75554bWOkRF3_2Cd%@=PR2+xRkM(GUm96`TPKDJuog;@SW~XdT9Y3Yl6lDXN^k zn@WYhVBA2j*PHvY0woP|Z8XU8>o3(SXdKC1uX`+`Q0ua4Ga=Es%)EI~4fc^WRJlyy zkf4U9F50qUk)<^dHP^0v8bh9k+{;BjI3qsE3?yw0Z%2ZP$eIZHB35%e%>4^!8xe1D zA+fW_Z7JRXRc3>uD@mA>}N^_9IUJaZ5(EnSsi5{Z+fG-(wBc?gtB+D+k}x9kO>WVW)`IVq}lSQPFy_h1j{pBsrbEJ2Zi zh%F%IBO?4|WEnkWvUP-#Z2Z1$DL<=DX<8+zQipJ9asOh-i(#PclQ5X)jZn2R-o`s2sLFnu?o#!9an6#w#o2 ztMJVS@kVNf&Ox#O?L@;15xObr^6n%2K?udO?(8wFW@V`YcGp z|6SP=)^DI&1<~jn8GbfBA<630Zx=$kCNwq)a7B2sX7pp3HLa(Q1p!VHV?{c8XuKcP z$d`rx*iHo+ISG6OL`FOl^HZQ&d!FK3$5j0Uc~q`Kb(W8t2F_GIcD#nfAP4o`YUq^Z zMv{L{aDVR=)oK0S&h`)2kcRK7Gf4N86r97v{b(q$(6U=xGa(Coa7Dt<@0JUt4U6!{cBlNhJqX#Av6Y7LuLSF$p|{ zn+(mNM&b{cuJ@301EZ+~F{c8ZRh$MJq_4s0p8MYtN z!ym@Yxn<7h)rR5LaRLJha9Mx;u=1*vhs#e!oXfeqm~jT|?Zl9qd-bVB(8=W3fH9zN zZ_a-m+ojv9O!|0M!1+hJ-N*r?rJZkOp(8=}*!ODAF<91-p9f0wQ|4LUHx9pvh>ng(>zOqeT2o1DBXMu$VXI%QMV98HceU$(o=buYp*%%&hv=~OSy;qP#WGe$Bh4%XB-=P zbcVXsv}_mTy+V9m1)8zU&9-HrNLhftD`@S`QeQm<`K-97 zbk$0yfnA&g9cySbHIT5(@ALBc=lyk}xJP?77j_@~KI2ay!2n2y!M&gA-)wpu5VBR) zd?0)te8bGuf3&~3dA7mvSWErqrr_1-_Fp6YA@ucv^EqXIdhWOI`RSx`ht7=#mRBrX z76pJ*D2NvZ{={v`bWZve?2~x_sKj^%)Dksrhepf5)__~AQ;fAx*QrBxuE>0mqhT+7 zf}x4c9;wd!2HE!$h4Bdo!B&1UKPO$3J zON0f)gLoJM_E3JbV-e{#{5V2$#1Dl#0WR7smi(w&u3gwXvn>rZDlF!hys(#x{ATD( z#K_|)5Tw^z0s7``r4U4BKfqQD$0j)O>bT7d+NwoD^skLcl^hXunf;L?;J}x{>9?{{PgV?U?th~#215* z=m%1ebF)f~-5-7*yE(ONYLs-57MRL}ewjCPV^2u<2E+Lo`^h}R6d9=7 z-vOLb^00kfxYQzNCPt|zC|?R!tV3!;TPT9*jQNXWZk+#pYe?M)j`D&Lpj#}$d3XcT z;0&dV^_ARCEeHRs3cNz#+_Le*6iA#Br;0v7b@CaSG3;qO6G{r~ke=G+7OGt`r}! zrtO>PV0^1ex4F-Sf6T=GQVe*hW3VYqvpoMC^943xu>HG!Yg^<<2rK^GTonP;DS%(y7EyK|%94VT5|gJ`nWQA#k2 zU`u97K~oms;NZX|gbV<^143uz8`iRjh{3__=P$prO^Q+oHxbcsoPs5q%`(R7O{4`M zkhrMfolkbr1c$$6E7L@sz_6{j7)?IrT1hXSGMCQbY(hOR$Ps+E4Qr2QRWT-3-*Ydj zBsc#2@|TgL?2`pRr^?TWDL1i6)8SS~-6nem?8L>)^DuMOK1)n}a;%u`9tAWRRfyu~ ze5saDII_tXr(z@IchQtoGK>B9c7>GnIr_1a2CZp??ip9rRMFZkG83VCMUO$n=##(| z%dgSKBF+crlj_DcGoEAx5WB+mSKF_}TPTjkz2t8UA9k3IpOVwvO6m`TU3$Ay13vR* z)&s5i&r8VDCSjyHG$7F?d+@Yx6u!0DlbvFyHn*oy8M3cNk4zMgyy{4Ok;ni1b4DMa zAuO-!1U7(236N}1onI+sxdlp87KI)DhMv>*LjDJG$7i>WSZ= z%7#{*G|=bo|f6afUUwgO(01}K6Em4Y5;)m zx3Aj>u6&sM-GfP&O11Q1Bq*X_#KYw@`^Cz#l#8RtoFMUUu0@yj2_2(aP+XNkp6=6{+!2V%j|6Rigjaanku5v*8R%eS*bbOEcMPnp?U( z$-LY)Tp#OdH&NWBo>XueB6p%!(RhlVz9>xM&C{9t(?4qHnMz^Oaou|ZN<0-SU?sp` z5Y3s~BXqKy`-lN%FSYJ2%Vin!`v~!MKk=xX*F!=Re)a~59MDNX8)8xw0+wVfFQ0)2 z53P&;Yu^fu8mlQd_3&ttj-fadQcsAWtJtm>pU!uz26X=@ zi)mH>mrWYja?#Kh`*KO!v>z5-9>6*`(9{19P>m<+aqd?7T^2BHO0U3Oh-ZZx@p*$z z%833&JNJtq0%NzrS}$R9@ygJSTtnFof$V3!Pw-3$X(CMtK@tl60tJZ(p2??LVfr`Gp9E6@qr@9P)$CgcXRsLtWVeo5H|SGo zs_1K3uIjY-Q}!FK4f#RWsHIE}l}Bj}OJM&JXKIGC2Hzf^8#egS#=Umiw%rt@M0(ktiVGArHD zXqEzCMQDZ$d%Wcrr>VO{4tWB$w+YXQfNX^AvRd99(coC1e4X>E%~ZI7pjweRB{)h3 zXOpM^ND=l5Fw&4s*|Tpk@Kuj^lF_agVzlay1BmM{@qeUg#K zXmu$sLPW=lm|515io9zCb_Lf+{(xq+b@JJPxLvjuJ>#;$!rAV;e-IfWMPab!^_|AP z^GPz_Iyk>I)wFjIAfxLOt!Z4Ci)Cxo!>GZffpCa^f$oy6w?p0?XVf(+>%2X?WqBeJ zSJJ#OURLbv>yrUJJ)Z|K2iq}Q9-CLn@q{17(9_Ic5TbMQfzcJ8T}jR-Uv<=eCD<^WwEMZBrRo72}g0Ek@N{IzM?OB&0R4(gVHS+u!9aZNV+_pfrHrnm>mVQ5{w%_7w=OgVh5#W3wj#*O#CaQd0J_`Q?Qi?`A zIMG6f#wh9N%sQtFimcNPif{l!;RO(ge9bJZHHL5hJd?aLAAJS5wuA*)HkOHr%axJ) zhBgvTb*2@%=094ia_aF0B68tL;NW=ekrafH29LANRU(@A$Wk_(ecyv<|D4R@neyzT z_vM|0-Ug1Z#wH!y|B^pc`r&rKJbmLf-+F&ePDck|rG?;mip}aUXgjeCsItV)`}obu z&5?Q)Slf@ioKIaJ_x@YkT+TU3#QKn2r1wR*pz;65`?4Kp(KbpdZ1D#60B_KQL)7KL zR_VP}+}#<8`Ao)Q#A&k&PZ32Gc31KAsD6~f6CF)l&>B7~!nq1BI$D`jRXpY;TXiwY zF;FPf&|_Wj#%vD0v!;Ll{E}&uF1aSL+Q+(@a~U^4O<`Hgvi&D0b*02KTox8vZ$46A z%*rMk@YcGdY+nc?lRJVsC=vfrsM{s;ux@u<+CMYHrXfI=*?3x#J|WG6K*+O@|1SUl zltr5CNLChOwCDc-_N6cNsoTAqp6H-Ks(}gQPCkQO+wE>hNM#2}0SD4N}JU*aF;1##vynOle zB`qyVd|Qsy{WF)(6O%y&#qBwldTVup_HB9=}t=D5!ZEE3ihcN7Vt>^ZQpbY&o)MqXL z(DP@_-(|MOGGmu7lHs&+Hlx zB*#e(P1juIb`W8IF;meK;MVaGsJTU-a-6|^9h_mXvQ_+IqL|ZA2yz?^q!2~DxUF7w zn9kn72Dy_|lnTAq>kV@HR;B&vP7qNPen@NY%7=(XQyD4nn=fN^2^9gcX;aIBDNBKm zQt&<1y>8Y95p0&V9^Txs?UbdvBF50;Y z4mX@>`!1GWqR+@NFu{4aO`d>*drg~~s9xu&XJSLmjrFIM7GA5%}lI0th zrP4ar(P%l5aeuKahPCC~2|A}~bBcWCKjk>%0@_R!J(kyO7FPL3o|W~F=qmI1t@jg5 z`k?{X{BE^-w^8}(B4g(U)uYrfoFR*+@yq=Eo{0q;O`VMM??IiU1@||m z_H_ZUXSBPs3e`0J1&nZK*Vo=QpIH7nyP6-ZJGQ_&S@B47UdgpE*%hcj&~BeLa_-If zRvNejT+}W|OLceA_Av_xBS|A_u~6bDL40esY=T+GAOrbv3ox&Z3~-P9sJh267B z+hZ7SRW822RdD_nsl^Mt2k~I@Yf}u&(Nd%q*!-a!sIv1gLSd!{V*&4Cde;zJwSFa1 z6#TVjd?c};`l}m?COrFo2Y-!lJ}ycKEiPDx`iNj9gYdU*>@DES$Sj%t^Sg@;6epxpn18*vy$wHP zDi=Hyl9#_4zRuVrqv;O&IsmgubJg6cnxi}<2R4;UQ)?c2k};tDE#9q3yUOg7A}Il^nKf{$im9mWuUH!x;iu;K%Y)3Zi?`WJ zrJp(zyeykplK!x=JVuRwa{uXNB~Ncfbf#dr)ry&ME;F#^{f*Fr&(C={)yrX%TZoYW zHQy!ORp;2vkm*KxRUNn7WW`-B9}VnV(_tk?a=fy`se~HI| zm@gw=(AL`#l2>Oe7p%PWBs&GCLVk30TGzx<`VMfNjt9W8nsGu}whoD`tY=w0kK4V& zHve$Wn*d}b_7F(ZXvy&{w9az^|QEzdQ zMRirXd#eVaU3=VMC1aq-g;NK;XCz^Ddj6P&2XH~{IhB<9v1>qJwkL^aI_ta7h%v*e^_FCKP|qh_FZt! zjA!2nX;6Lo^OU&e^V-|^r`8Q{ep&JNo2;C_=m!G`XSKhbG+ByoASHk<68xM)dc2Bl zdOO@{2P2z>1r#wPlW_O)lt)kMZ1L(7*yAT{Z4VzB(dcyad&b|@o41a9%_tQAZdxtesL@=0h2gV zZkEhSNz!sl=5Sr00tb*VLsl%Eg4P{2tf?p()tQIp5Gm5s3;>m8N}P89 z^P~jK5Mgq%TKRgoyPWNMQ%KqX52|k<~tWi8rrpO(I zCz$y}sY|6UO|9o`s5WB`25ek^2pRYF0mbPCKx%H<*RvRSa%syyKsosz8Ad?weM3>! zB`x<`IssEexiHA&363|#+g@;2xQ9)A(V2Fp^Nb`pkk&ss(%Ty z?h96jX3N37KN3HVfa0rcpv4$p)Q^~y>#4EEtO9U9g>V)tx{QK%(6xQhPt%)%&NcI>u} zbVrtVTS%$;YYM(R-f(abzBumjyOrMkC8v_EP z;0!5;C)d55GzF33wo~^bh9#VQ#!^RwtIp4!rRY#Wwf?Vmt~?yduK(Y5EmBgbXp$&P zLOo@l7L2qY4A}}ZLUY7vmw@>10!!BJt#?=GV3cez66K>=bk2G^4l^UR-hboGE*9a`G^4{7h$t)+_w3pgdiyExypf*xpGo>x7Vy zXV&O_z7bgN`yQ&ioV@6s?{k!3n?ay}o5#l56;^G?-f>(dbaUFlWDk!wOmLk-6b2_J z4XcwS3%tJbK7GoIq37*714_;>lKN?cr-S%=H_p1+mttWT;i<#sRLPgp(^zgVC3XB_ zJCb%<6V$BGi!~h*weX_v0gGOEHmh)cK9EkQdo4~g?rURWxhT%9yYDtczlS^J$rqSq zsd-oX4X%T)Xvk0c<*~JC3^97?W9~8W)Yha-8wBv*{TX>b2~($ls&yRt5?ZJ*la&D?yhJG{GCLu8(ammw z?G~;b!xmZdogv7V>9h4kiS1gK9(UZ41cBq(*xKcDxQRBqw)lp#I}Y{ZrJ!_>;;r;p z7h8Qf`p#Ndrvl6BU|@|dIeOJl=q2)WmJQ;_u9V?tBlu*C3+O$L)n~B=KMp#hufuLnQ}yF_Z#d)HL_Cyqup>jipyW+{m&3K8K!*D;rh-9`L77MkeAKRLF8fWs z_#N)S;1~@kR)TVC<~pdcNjB45qzosxU=~$0VfDPqGS=g5JOylppmcB{=%mb!cX6S( z`WVg(v))VhecLE5h+BE{B8w6_7Q7>I8v!>YNSeR9Cku-OUz>ZTDFS zNS<*L&XpN6RK<_qn69afRGF}T9`sN;rY)WX0yAPe$O#}@;zo+|pWD$w@n~AqIBz9O zcC%=2MtyjE$NK|;Qy?BF@WGULn6f^EiwYr6gX6l!rq&7c?wP^+6{AsW4w`ELISF)? zxj+G^@#UGe^s*sEJm&&fpOAUtbd0?AC__UWg^?D>l{uz@F^wnG<=dEfcP}#7hktv` z>-GVIow#JmB)_d@RG5d_A*f*wrCU85HYa`FFNg$r5c;GzhfaI@Jp0`eb4EtAy6z7< zk;z)7ZE8sxj{E4gK;#4lYt;Aaz^q0CdE@1cXVBAP_4uRu`VsubxJ?6`lt#erJz86L z-)r5aLH3ap6if_P zsVs!5p|iT_KpPl^ZY4}K+8pOt-CVj>{M23}Ai{)e8-1`anmn0!BG;XPP`=9L$l1`$k+onK-22`W z2lSBGX_5;L;>ZI&OTI4a+nKYgpIf8QSUTu$VEG8xm+3JZ$oh_4a7oA0m=Cp5!5E+h zmjRa#!ehi?W%)DyHJqMSiyWB@EBjut7;tC)T(F+WZ6)b(#zvVj&Vlp@5LV@bu)U|n zEubhZbZSB5zI%-3To|EKf%I|xOQ=g{>ukE{Mu3EfP4D(+YFx?fkOlGJ1jrfWT_4Y| zb)b9kuhJ84P=E3m+xhd?8>6z5`hV<1N=G%=3*Rcs<^t_ z-UHww_P6G`F6M=mQNOATj7}x@H9DLVdAD`a&SuO34v@00j2pFfN05`0|^xcjW?K zVf^=bTXbt~*b(fbsUnmV4-#CU{0%94be9v3tLJ$oNhu5}N4 zsTn}|VCykr2*gM51kB*hjK6(r$qgziHCh?%y6+CHHZes2r3^E&*UE+JWOCQZ#43?B zd0NIos61KjHLz?jBoXROlEW1R(KBvztp_!9_9sUrdT6iikt2HiT041g*!Cnh_+0MV zm2?(XlAwrRl?77s3sQ=@fc<<@`|jhb?|hsIiNh7Bwubx6zu%#SL@kb{WesVR0pb2%ZRlSaiM{Q&9yWREIqmxUFUjULUf06Vr4@Tv5Pmi1Q z=K6S;65gHEhNvJV2twho*3_%??e!;f)>h2f9(Wone2W&4$K#(}sbX(3y8R)DcSL70 z#Dv_L=8Ly$QdmZL8|)byVQa}jIWT~U{UsYlux?)O4ooGZ!q(dPrc$e~gSte69kyA< z;7_5CFnpH?{m(&8QLsY~d8v!Ly_w;Ku(4tR#vzSwV_QK~&peFA{%GvYOz8~;B*AW%LP<&_d^Dc#6z2o8$(S+Z_!v_4j_x`0AtHcjegLeGJ+~{obJPE2J-aUMx z>}D=sqmrqiIQcP7tb3mNJlU6ua3UC6FyOp&MWheYRBLESjF#PvyGBL4ry}!HZ?nr znepmfGG$iJkk9M82#DjNkU5U^fdw%1PeM-n6zltkB^xWNPoVSh&a9#=zXo$qQd3B5 zQ~&KPdjaWhK-tlS=B?+iv?lM<3!Bg99)k=%>j@?)+1lBu0;-b_Uw$bJ{tiDU%qw?Y zn@?XIKS~2fjg~`crcTlPg^QGsGS;DMSG>J@!5j)@TqCU*42G(v=92t@W3O&WTu_pF z_e#>ZRK_LrIGD;e`E>$7Mf6?|ncRSxa1oIDAbKr~W%bAB>sT&Wq^YKBLgC|?;4*8y z>382R@2$zv{N)zofi9B%k#HWT`{(S=9Xldh*1r^zG{`km2s@>#3vg1Zy*vG%f6|xg zVGj|y&SV@qo^{lJV5A-gwuK+<;Q}a7{+2XRSW7rkz~ljQ@>k)D|33a7IAMu5X(G{J z?xPHu3f(xuRqo8ezi3itt$MJ?a9I7jxd=0srk3L&b4Le50Lct-Hl5p-^Z zn<3|?ChXVp~)Y!9Vb`gHx_@?-q)bH=)1pX;k6OUTlf6QWquTpkm;MXV#l6)7m?Uc_ae{BU8XLp3yVwv+&iPWH3AJ1Ah}eFemd>o*gzkONkf>u&?X0zN92! zJJs|1DQi=eB{{=L<{EVdJH)J|J$dC`9RW)6LgFT#Vn3M9gC(OcqMoOG50!MSrPa!J zi&v2(t_&Y|TzP#l;j&H_Ysp5iLC>d$F$g|E>P<}^{TXxhOW(7NRmNYr%aLe`SUovS zw0a_x_`&GXa3-;)#a9IJPO9mJF=+q$C#{g-DE#1x_s=?aInH!Ik;Qc>x$U#EPe+&V zASIS36M#2f^hU%>621sma^*@*ix9Ps~z z5fi|3!lm!5*;+~ZoN6 Date: Sat, 20 Apr 2024 15:22:14 +0530 Subject: [PATCH 5/6] docs: added area plot to main docs --- docs/GETTING_STARTED.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/docs/GETTING_STARTED.md b/docs/GETTING_STARTED.md index 2d4c9b3..93bd72d 100644 --- a/docs/GETTING_STARTED.md +++ b/docs/GETTING_STARTED.md @@ -9,6 +9,7 @@ Jplotlib is a Java library that allows you to create 2D line plots, scatter plot - [Creating a Scatter Plot](#creating-a-scatter-plot) - [Creating a Bar Graph](#creating-a-bar-graph) - [Creating a Pie Chart](#creating-a-pie-chart) +- [CReating a Area PLot](#creating-a-area-plot) ## Installation @@ -88,6 +89,19 @@ jplotlib.pie(dataPoints); More information about pie charts can be found in the [PIE.md](PIE.md) document. +## Creating a Area Plot + +To create a 2D area plot using Jplotlib, follow the same steps as above, by using the `areaPlot()` method. + +```java +double[] x = {1.0, 2.0, 3.0, 4.0}; +double[] y = {2.5, 5.1, 3.9, 6.2}; +jplotlib.areaPlot(x, y); +``` + +You can find more information about scatter plots in the [AREA_PLOT.md](AREA_PLOT.md) document. + + That's it! You now have the basic knowledge to create various types of visualizations using Jplotlib. Experiment with different data and customization options to create meaningful plots and charts. From fa8ffcd48b1852032d7abd63c65bc34b6ce9686d Mon Sep 17 00:00:00 2001 From: Manish Dait Date: Sat, 20 Apr 2024 15:22:48 +0530 Subject: [PATCH 6/6] roll out v 1.2.0 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index c7b72db..8c7f55d 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ io.github.manishdait jplotlib - 1.1.0 + 1.2.0 jplotlib https://github.com/ManishDait/jplotlib