Highlights
- New `Polygon` object to create any given shapes from vertices and supporting set operation methods
- New `FitFromFOTF` object to fit using a first order transfer function
- You can now set a custom style as default to replace `plain`
- Many new features for `Curve`, `Scatter` and `Point` objects
New Features
New function `get_styles`
The new function `get_styles` makes it possible to fetch all available styles.
[pr-420](https://github.com/GraphingLib/GraphingLib/pull/420)
Added possibility to plot the area between 2 curves
The method `get_area_between` from the Curve class has a new parameter `other_curve` making it possible to get the area between two Curve objects.
[pr-422](https://github.com/GraphingLib/GraphingLib/pull/422)
Added `add_error_curves` method
Added `add_error_curves` method to the Curve class to display error around a curve with curves instead of error bars.
[pr-426](https://github.com/GraphingLib/GraphingLib/pull/426)
New `aspect_ratio` parameter for Figure
The parameter `aspect_ratio` is used to specify an aspect ratio for the axis scaling. Can take a float, "auto" or "equal".
[pr-428](https://github.com/GraphingLib/GraphingLib/pull/428)
Added absolute value functionality to Curve and Scatter
It is possible to get the absolute value of a Curve or Scatter by passing a Curve or Scatter object to `abs()`.
[pr-432](https://github.com/GraphingLib/GraphingLib/pull/432)
Added object copying methods
All Plottables now have a `copy` method to create a duplicate of the object.
[pr-441](https://github.com/GraphingLib/GraphingLib/pull/441)
Added in-place operators for Curve and Scatter
Implemented in-place operators (`+=`, `-=`, `*=`, `/=` and `**=`) for Curve and Scatter objects.
[pr-442](https://github.com/GraphingLib/GraphingLib/pull/442)
Added `FitFromFOTF` (first order transfer function)
New `FitFromFOTF` object to create fits using a first order transfer function.
[pr-443](https://github.com/GraphingLib/GraphingLib/pull/443)
New Curve and Scatter slicing methods
Curve and Scatter now have `create_slice_x` and `create_slice_y` methods to create a new object from a slice of an existing object.
[pr-448](https://github.com/GraphingLib/GraphingLib/pull/448)
New `Polygon` object
A new `Polygon` object to plot a general polygon from a list of vertices.
[pr-450](https://github.com/GraphingLib/GraphingLib/pull/450)
Added possibility to set different default style
Added two new functions, `set_default_style` to set your default style and `get_default_style` to get the name of the current default style.
[pr-453](https://github.com/GraphingLib/GraphingLib/pull/453)
Getters and setters for every objects' properties
All properties can now be set and retrieved using `object.property` notation.
[pr-464](https://github.com/GraphingLib/GraphingLib/pull/464)
Manual legend placement and columns
Placement of the legend can now be controlled manually in Figures when using `show` and `save`. A number of columns can also be specified.
[pr-481](https://github.com/GraphingLib/GraphingLib/pull/481)
Added support for color maps with Scatter
Scatter has new parameters `color_map` and `show_color_bar` to specify a color map and display the color bar. To be used in combination with `face_color` to provide intensity values.
[pr-503](https://github.com/GraphingLib/GraphingLib/pull/503)
Added support for color cycles and colormaps with Scatter edge_color
The `edge_color` attribute of Scatter objects now accepts a list of colors or intensities. When set to "color cycle" or if this is what the style's default is set to, the edge_color will cycle through the colors in the style's color cycle.
[pr-537](https://github.com/GraphingLib/GraphingLib/pull/537)
DPI resolution now supported
DPI resolution is now available as a style controlled parameter and can be overridden in the Figure and MultiFigure save methods.
[pr-559](https://github.com/GraphingLib/GraphingLib/pull/559)
More flexibility for Point colors
Point face and edge colors can now be set to a color or None (transparent). Text color can also be set to a color or to "same as point" (the default) to match the point color, with the edge color being prioritized over the face color if both aren't None.
[pr-561](https://github.com/GraphingLib/GraphingLib/pull/561)
Other Changes
Use trapezoidal integration for `create_integral_curve`
Changed the method used for numerical integration of curves to work with unevenly spaced data and added a parameter `initial_value`.
[pr-433](https://github.com/GraphingLib/GraphingLib/pull/433)
Simplified `VectorField` options
Options for `VectorField` arrows have been simplified and the arrows shape is now controlled only by `arrow_width` and `arrow_head_size`.
[pr-476](https://github.com/GraphingLib/GraphingLib/pull/476)
Contributors
A total of 3 people contributed to this release.
* [Oddball777](https://github.com/Oddball777)
* [yalap13](https://github.com/yalap13)
* [mamar828](https://github.com/mamar828)
Merged Pull Requests
A total of 19 pull requests were merged for this release.
* [420](https://github.com/GraphingLib/GraphingLib/pull/420) : Added get_styles function
* [422](https://github.com/GraphingLib/GraphingLib/pull/422) : Added possibility to plot area between 2 curves in get_area_between
* [426](https://github.com/GraphingLib/GraphingLib/pull/426) : Added add_error_curves method and default params
* [428](https://github.com/GraphingLib/GraphingLib/pull/428) : Added aspect_ratio to Figure init
* [432](https://github.com/GraphingLib/GraphingLib/pull/432) : Add absolute value functionality to Curve and Scatter classes
* [433](https://github.com/GraphingLib/GraphingLib/pull/433) : Add cumulative trapezoidal integration for creating integral curves
* [441](https://github.com/GraphingLib/GraphingLib/pull/441) : Added object copying methods
* [442](https://github.com/GraphingLib/GraphingLib/pull/442) : Added in place operators for Curves and Scatters
* [443](https://github.com/GraphingLib/GraphingLib/pull/443) : Added FitFrom FOTF (first order transfer function)
* [448](https://github.com/GraphingLib/GraphingLib/pull/448) : 406 feature request curve slicing new curve from part of existing curve
* [450](https://github.com/GraphingLib/GraphingLib/pull/450) : 437 feature request implement arbitrary polygons
* [453](https://github.com/GraphingLib/GraphingLib/pull/453) : 452 feature request possibility to set different default style
* [464](https://github.com/GraphingLib/GraphingLib/pull/464) : 462 feature request use properties with getters and setters
* [476](https://github.com/GraphingLib/GraphingLib/pull/476) : 468 feature request reduce vector field options to be more similar to arrow
* [481](https://github.com/GraphingLib/GraphingLib/pull/481) : Added option for manual legend placement and columns
* [503](https://github.com/GraphingLib/GraphingLib/pull/503) : Added support for colour maps with Scatters
* [537](https://github.com/GraphingLib/GraphingLib/pull/537) : Curve fix fill between color cycle, Scatter flexibility
* [559](https://github.com/GraphingLib/GraphingLib/pull/559) : 558 feature request set dpi when saving
* [561](https://github.com/GraphingLib/GraphingLib/pull/561) : Added flexibility to Point class text color