Sympy-plot-backends

Latest version: v3.4.0

Safety actively analyzes 627604 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 9

3.4.0

What's Changed

* Implemented animations.
* `BokehBackend` is now able to create contour plots.

3.3.0

What's Changed

* Control system plotting

* Fixed bug with missing title of ``plot_root_locus``.
* Implemented ``sgrid`` based on Matplotlib projection.
* Improved ``sgrid`` support on Bokeh interactive plots.
* Improved labeling of MIMO systems.
* ``step_response, impulse_response, ramp_response`` are now able to compute an appropriate upper time limit for the simulation.
* Updated code to use ``control 0.10.0``. As a consequence, Python 3.9 is no longer supported by this module.

* Improvements of interactive plots:

* Added support for multiple-values widgets, like ``RangeSlider``.
* Improvements of ``spb.interactive.panel``:

* Simplified underlying architecture. Previously, ``InteractivePlot`` inherited from ``param.Parameterized``: widgets were class attributes. Instantiating a new interactive plot would make the previous instance completely unusable. This inheritance has been removed. Now, widgets are instance attributes. Multiple instances work perfectly fine.
* Added support for widgets of Holoviz Panel.
* Updated plotgrid to work with the new architecture.

* Improvements to documentation.

* Fixed bug with legend of ``plot_vector``.

3.2.0

What's Changed

* add ``update_event`` keyword argument to enable/disable auto-update on panning for plots created with ``MatplotlibBackend``, ``PlotlyBackend`` and ``BokehBackend``. By default, this functionality is turned off, ``update_event=False``.

* Improved the logic handling the creation of sliders on interactive-widget plots. Consider this code: ``params = {k: (1, 0, 5, formatter, label)``. It now works both with `ipywidgets` as well as `panel`. Previously, ``formatter`` was not supported by ``ipywidgets``.

* Added ``arrows=`` keyword argument to ``nichols`` and ``plot_nichols``.

* Added ``show_minus_one=`` keyword argument to ``mcircles``.

* Implemented renderers for Bokeh in order to deal with control system plotting.

* Improved tooltips in ``BokehBackend``.

* Breaking: refactoring of ``NicholsLineSeries``. Previously, it returned data about the open-loop transfer function. Now, it also returns data about the closed-loop transfer function, which can be used on tooltips.

3.1.1

What's Changed

* Fix incorrect behavior of "arrow_3d".

v.3.1.0
What's Changed

* User can now specify an existing figure over which symbolic expressions will be plotted. Just use the ``ax=`` or ``fig=`` keyword argument.

* Added ``arrow_3d`` to ``spb.graphics.vectors`` in order to plot a single arrow in a three-dimensional space.

* Enhanced capabilities of line plots with the ``steps`` keyword argument. Possible values are ``"pre", "post", "mid"``, mimicking Matplotlib's ``step`` function.

* New features on the ``spb.graphics.control`` sub-module:

* It now depends on the [python-control module](https://python-control.readthedocs.io/). This dependency allows the implementation of new plotting functions and to seamlessly deal with transfer functions from ``sympy``, ``control`` and
``scipy.signal``, supporting both continous-time and discrete-time systems.

* Added support for MIMO systems.

* Created ``sgrid, zgrid, ngrid, mcircles`` functions to easily create grids for control system plots. Appropriate keyword arguments have been created on all major plot functions in order to activate these grids.

* Added ``plot_root_locus`` to the control submodule.

* ``plot_bode`` now auto-computes an appropriate frequency range.

* Removed the transfer function's Latex representation from the title of plots related to control systems. This decision is motivated from practical experience, where most of the transfer functions have floating point coefficients, which makes their Latex representation too big to fit into the small width of a plot.

* Refactoring of the ``series.py`` sub-module:

* code has been re-organized to make extensibility easier and slightly improve performance. In particular, the mixin class ``CommonUniformEvaluation`` has been introduced, which handles all the machinery necessary to evaluate symbolic expressions. Series classes may or may not inherit from it. ``CommonUniformEvaluation`` allows for a better separation of scopes: data series that don't need that code are faster to instantiate.

* Breaking: refactoring of ``NyquistLineSeries`` in order to use the ``control`` module. In particular, the ``get_data`` method now returns many more arrays.

* Breaking: removed attribute ``use_quiver_solid_color`` from ``Vector2DSeries``.

* Fixed bug with labels of 2D vector fields.

3.0.1

======

* Added new coloring option to ``domain_coloring``. Setting ``coloring="k+log"`` will apply a logarithm to the magnitude of the complex function. This improves the visibility of zeros in complex functions that have very steep poles.

* Added the ``hyper`` function to the list of functions to be evaluated with real numbers. This avoids unexpected errors.

* Set ``unwrap=True`` as defaul option for ``plot_bode``: this helps to get a continuous phase plot.

* Enabled ``plot_bode`` to deal with system containing time delays.

* Enabled panel's interactive applications to render Latex labels on widgets when served on a new window.

* Fixed bug with evaluation of user-defined python's function.

* Fixed bug with labels of ``plot_implicit``.

* Fixed bug with labels of ``plot_piecewise``.

* Fixed bug with difficult to render labels on Matplotlib. If Matplotlib detects an error while parsing legend's entries, the plot won't show the legend.

* Fixed bug with ``plot_bode_phase`` when ``phase_units="deg"`` and ``unwrap=True``.

* Added settings for bode plot's ``phase_unit`` and ``freq_unit`` to the ``defaults`` submodule.

* Fixed bug with title of Bode plots.

* Fixed title of ``plot_step_response``.

* Implemented workaround for holoviz's Panel interactive applications to be able to work with a currently open bug.

3.0.0

What's Changed

* Introducing the **graphics module**, which aims to solve the following problems about ordinary plotting functions (whose name's start with ``plot_``):

1. Some functions perform too many tasks, making them difficult and confusing to use.
2. The documentation is difficult to maintain because many keywords arguments are repeated on all plotting functions.
3. The procedures to combine multiple plots together is far from ideal.

The *graphics module* implements new functions into appropriate submodules. Each function solves a very specific task and is able to plot only one symbolic expression. Each function returns a list containing one or more data series, depending on the required visualization. In order to render the data series on the screen, they must be passed into the ``graphics`` function. Plenty of examples about its usage are available on the documentation.

* Added ``arrow_2d`` to ``spb.graphics.vectors`` in order to plot a single arrow in a two-dimensional space.

* Reorganized old plotting functions (whose name's start with ``plot_``) into a new submodule: ``spb.plot_functions``. In particular:

* Deprecated ``spb.vectors``. Its content is now into ``spb.plot_functions.vectors``.
* Deprecated ``spb.functions``. Its content is now into ``spb.plot_functions.functions_2d`` and ``spb.plot_functions.functions_3d``.
* Deprecated ``spb.control``. Its content is now into ``spb.plot_functions.control``.
* Deprecated ``spb.ccomplex.complex``. Its content is now into ``spb.plot_functions.complex_analysis``.
* Deprecated ``spb.ccomplex.wegert``. Its content is now into ``spb.wegert``.

Under the hood, many of these plotting functions now uses the *graphics module*.

* Bug fix on ``MatplotlibBackend`` about updating y-axis limits. Thanks to [Chrillebon](https://github.com/Chrillebon) for the fix.

* Improved performance of the evaluation with ``adaptive=False`` (the default one). Removed ``np.vectorize`` when the evaluation module is NumPy/Scipy in order to take full advantage of Numpy's vectorized operations.

* Keyword argument ``is_point`` now has an alias: ``scatter``. Setting ``scatter=True`` will render a sequence of points as a scatter rather than a line.

* Improved warning messages to provide more useful information.

* Fixed import-related bug with older versions of SymPy.

Page 1 of 9

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.