# Sympy Plotting Backends
[![PyPI version](https://badge.fury.io/py/sympy-plot-backends.svg)](https://badge.fury.io/py/sympy-plot-backends)
[![Conda Version](https://img.shields.io/conda/vn/conda-forge/sympy_plot_backends.svg)](https://anaconda.org/conda-forge/sympy_plot_backends)
[![Documentation Status](https://readthedocs.org/projects/sympy-plot-backends/badge/?version=latest)](http://sympy-plot-backends.readthedocs.io/)
![Coverage](https://github.com/Davide-sd/sympy-plot-backends/blob/master/coverage.svg)
[![](https://img.shields.io/static/v1?label=Github%20Sponsor&message=%E2%9D%A4&logo=GitHub&color=%23fe8e86)](https://github.com/sponsors/Davide-sd)
This module contains a few plotting backends that can be used with [SymPy](github.com/sympy/sympy) and [Numpy](https://github.com/numpy/numpy). A backend represents the plotting library: it provides the necessary functionalities to quickly and easily plot the most common types of symbolic expressions (line plots, surface plots, parametric plots, vector plots, complex plots, control system plots).
The following plotting libraries are supported: [Matplolib](https://matplotlib.org/), [Plotly](https://plotly.com/), [Bokeh](https://github.com/bokeh/bokeh), [K3D-Jupyter](https://github.com/K3D-tools/K3D-jupyter).
<div>
<img src="https://raw.githubusercontent.com/Davide-sd/sympy-plot-backends/master/imgs/iplot_bokeh.png" width=250/>
<img src="https://raw.githubusercontent.com/Davide-sd/sympy-plot-backends/master/imgs/mpl-streamplot.png" width=250/>
<img src="https://raw.githubusercontent.com/Davide-sd/sympy-plot-backends/master/imgs/plotly_streamlines_2.png" width=250/>
<img src="https://raw.githubusercontent.com/Davide-sd/sympy-plot-backends/master/imgs/K3D-spherical-harmonics.png" width=250/>
<img src="https://raw.githubusercontent.com/Davide-sd/sympy-plot-backends/master/imgs/bokeh_domain_coloring.png" width=250/>
<img src="https://raw.githubusercontent.com/Davide-sd/sympy-plot-backends/master/imgs/K3D-cone-vectors.png" width=250/>
</div>
## What's new in comparison to SymPy
On top of the usual plotting functions exposed by SymPy (`plot`,
`plot_parametric`, `plot3d`, etc.), this module offers the capabily to:
* use a different plotting library.
* visualize discontinuities on 2D line plots.
* visualize 2D/3D vector fields with quivers or streamlines.
* visualize complex functions with [domain coloring](https://en.wikipedia.org/wiki/Domain_coloring).
* visualize entities from the `sympy.geometry` module.
* visualize control systems' response to input signals, root locus, as well as Bode, Nyquist and Nichols diagrams.
* create parametric-interactive plots using widgets
(sliders, buttons, etc.) with *ipywidgets* or *Holoviz's Panel*.
Please, read the
[following documentation page](https://sympy-plot-backends.readthedocs.io/en/latest/overview.html#differences-with-sympy-plotting)
to understand the differences between this module and ``sympy.plotting``.
## Development and Support
If you feel like a feature could be implemented, open an issue or create a PR.
If you really want a new feature but you don't have the capabilities or the
time to make it work, I'm willing to help; but first, open an issue or send
me an email so that we can discuss a sponsorship strategy.
Developing this module and its documentation was no easy job. Implementing
new features and fixing bugs requires time and energy too. If you found this
module useful and would like to show your appreciation, please consider
sponsoring this project with either one of these options:
[!["Buy Me A Coffee"](https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png)](https://www.buymeacoffee.com/davide_sd)
or
[![](https://img.shields.io/static/v1?label=Github%20Sponsor&message=%E2%9D%A4&logo=GitHub&color=%23fe8e86)](https://github.com/sponsors/Davide-sd)
## Installation
*SymPy Plotting Backends* can be installed with `pip` or `conda`. By default,
only basic plotting with Matplotlib will be installed:
```
pip install sympy_plot_backends
```
Or
```
conda install -c conda-forge sympy_plot_backends
```
To install the complete requirements in order to get interactive plots, bokeh,
plotly, k3d, vtk, execute the following command:
```
pip install sympy_plot_backends[all]
```
If you are using zshell, the above `pip` command is going to fail.
Use the following instead:
```
pip install "sympy_plot_backends[all]"
```
Or, if you are using `conda`:
```
conda install -c anaconda scipy notebook colorcet
conda install -c conda-forge adaptive
conda install -c conda-forge panel
conda install -c anaconda ipywidgets
conda install -c conda-forge ipympl
conda install -c bokeh ipywidgets_bokeh
conda install -c conda-forge k3d msgpack-python
conda install -c plotly plotly
conda install -c conda-forge vtk
conda install -c conda-forge control slycot
```
## Warnings
**Some backend comes with a memory cost**. Since they require external libraries and/or open a server-process in order to visualize the data, memory usage can quickly rise if we are showing many plots. Keep an eye on you system monitor and act accordingly (close the kernels, restart the browser, etc.).
Raw data
{
"_id": null,
"home_page": "https://github.com/Davide-sd/sympy-plot-backends",
"name": "sympy-plot-backends",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": "sympy plot plotting backend plotly bokeh mayavi k3d panel",
"author": "Davide Sandona",
"author_email": "sandona.davide@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/4c/c8/a8d41c1c6a924d428e97fdb494444b8d841ce8cb64157f44e91b1c326e7d/sympy_plot_backends-3.3.0.tar.gz",
"platform": null,
"description": "# Sympy Plotting Backends\n\n[![PyPI version](https://badge.fury.io/py/sympy-plot-backends.svg)](https://badge.fury.io/py/sympy-plot-backends)\n[![Conda Version](https://img.shields.io/conda/vn/conda-forge/sympy_plot_backends.svg)](https://anaconda.org/conda-forge/sympy_plot_backends)\n[![Documentation Status](https://readthedocs.org/projects/sympy-plot-backends/badge/?version=latest)](http://sympy-plot-backends.readthedocs.io/)\n![Coverage](https://github.com/Davide-sd/sympy-plot-backends/blob/master/coverage.svg)\n[![](https://img.shields.io/static/v1?label=Github%20Sponsor&message=%E2%9D%A4&logo=GitHub&color=%23fe8e86)](https://github.com/sponsors/Davide-sd)\n\n\nThis module contains a few plotting backends that can be used with [SymPy](github.com/sympy/sympy) and [Numpy](https://github.com/numpy/numpy). A backend represents the plotting library: it provides the necessary functionalities to quickly and easily plot the most common types of symbolic expressions (line plots, surface plots, parametric plots, vector plots, complex plots, control system plots).\n\nThe following plotting libraries are supported: [Matplolib](https://matplotlib.org/), [Plotly](https://plotly.com/), [Bokeh](https://github.com/bokeh/bokeh), [K3D-Jupyter](https://github.com/K3D-tools/K3D-jupyter).\n\n<div>\n<img src=\"https://raw.githubusercontent.com/Davide-sd/sympy-plot-backends/master/imgs/iplot_bokeh.png\" width=250/>\n<img src=\"https://raw.githubusercontent.com/Davide-sd/sympy-plot-backends/master/imgs/mpl-streamplot.png\" width=250/>\n<img src=\"https://raw.githubusercontent.com/Davide-sd/sympy-plot-backends/master/imgs/plotly_streamlines_2.png\" width=250/>\n<img src=\"https://raw.githubusercontent.com/Davide-sd/sympy-plot-backends/master/imgs/K3D-spherical-harmonics.png\" width=250/>\n<img src=\"https://raw.githubusercontent.com/Davide-sd/sympy-plot-backends/master/imgs/bokeh_domain_coloring.png\" width=250/>\n<img src=\"https://raw.githubusercontent.com/Davide-sd/sympy-plot-backends/master/imgs/K3D-cone-vectors.png\" width=250/>\n</div>\n\n\n## What's new in comparison to SymPy\n\nOn top of the usual plotting functions exposed by SymPy (`plot`,\n`plot_parametric`, `plot3d`, etc.), this module offers the capabily to:\n\n* use a different plotting library.\n* visualize discontinuities on 2D line plots.\n* visualize 2D/3D vector fields with quivers or streamlines.\n* visualize complex functions with [domain coloring](https://en.wikipedia.org/wiki/Domain_coloring).\n* visualize entities from the `sympy.geometry` module.\n* visualize control systems' response to input signals, root locus, as well as Bode, Nyquist and Nichols diagrams.\n* create parametric-interactive plots using widgets\n (sliders, buttons, etc.) with *ipywidgets* or *Holoviz's Panel*.\n\nPlease, read the\n[following documentation page](https://sympy-plot-backends.readthedocs.io/en/latest/overview.html#differences-with-sympy-plotting)\nto understand the differences between this module and ``sympy.plotting``.\n\n\n## Development and Support\n\nIf you feel like a feature could be implemented, open an issue or create a PR.\n\nIf you really want a new feature but you don't have the capabilities or the\ntime to make it work, I'm willing to help; but first, open an issue or send\nme an email so that we can discuss a sponsorship strategy.\n\nDeveloping this module and its documentation was no easy job. Implementing\nnew features and fixing bugs requires time and energy too. If you found this\nmodule useful and would like to show your appreciation, please consider\nsponsoring this project with either one of these options:\n\n[![\"Buy Me A Coffee\"](https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png)](https://www.buymeacoffee.com/davide_sd)\nor\n[![](https://img.shields.io/static/v1?label=Github%20Sponsor&message=%E2%9D%A4&logo=GitHub&color=%23fe8e86)](https://github.com/sponsors/Davide-sd)\n\n\n## Installation\n\n*SymPy Plotting Backends* can be installed with `pip` or `conda`. By default,\nonly basic plotting with Matplotlib will be installed:\n\n```\npip install sympy_plot_backends\n```\n\nOr\n\n```\nconda install -c conda-forge sympy_plot_backends\n```\n\nTo install the complete requirements in order to get interactive plots, bokeh,\nplotly, k3d, vtk, execute the following command:\n\n```\npip install sympy_plot_backends[all]\n```\n\nIf you are using zshell, the above `pip` command is going to fail.\nUse the following instead:\n\n```\npip install \"sympy_plot_backends[all]\"\n```\n\nOr, if you are using `conda`:\n\n```\nconda install -c anaconda scipy notebook colorcet\nconda install -c conda-forge adaptive\nconda install -c conda-forge panel\nconda install -c anaconda ipywidgets\nconda install -c conda-forge ipympl\nconda install -c bokeh ipywidgets_bokeh\nconda install -c conda-forge k3d msgpack-python\nconda install -c plotly plotly\nconda install -c conda-forge vtk\nconda install -c conda-forge control slycot\n```\n\n\n## Warnings\n\n**Some backend comes with a memory cost**. Since they require external libraries and/or open a server-process in order to visualize the data, memory usage can quickly rise if we are showing many plots. Keep an eye on you system monitor and act accordingly (close the kernels, restart the browser, etc.).\n",
"bugtrack_url": null,
"license": "BSD License",
"summary": "Backends for plotting with SymPy",
"version": "3.3.0",
"project_urls": {
"Homepage": "https://github.com/Davide-sd/sympy-plot-backends"
},
"split_keywords": [
"sympy",
"plot",
"plotting",
"backend",
"plotly",
"bokeh",
"mayavi",
"k3d",
"panel"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "5835a6396260ee26bf1b50179c6aab75b56a7db53fd77e94a505f7ad819d60e7",
"md5": "1a2ed077207f137aafaa58c3ffe9caae",
"sha256": "4d7430669fc949c3f3879ef33ed2e14b4b6fd482ec2bd01bf8683bcf4f6050c3"
},
"downloads": -1,
"filename": "sympy_plot_backends-3.3.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "1a2ed077207f137aafaa58c3ffe9caae",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 341460,
"upload_time": "2024-04-14T17:57:09",
"upload_time_iso_8601": "2024-04-14T17:57:09.884776Z",
"url": "https://files.pythonhosted.org/packages/58/35/a6396260ee26bf1b50179c6aab75b56a7db53fd77e94a505f7ad819d60e7/sympy_plot_backends-3.3.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "4cc8a8d41c1c6a924d428e97fdb494444b8d841ce8cb64157f44e91b1c326e7d",
"md5": "02665d7df70b16cedf3f5950be0c6ab5",
"sha256": "fffb1c82e212fa0d024386591cd421324e505594c95a68ef48482f9991e9fb94"
},
"downloads": -1,
"filename": "sympy_plot_backends-3.3.0.tar.gz",
"has_sig": false,
"md5_digest": "02665d7df70b16cedf3f5950be0c6ab5",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 422603,
"upload_time": "2024-04-14T17:57:12",
"upload_time_iso_8601": "2024-04-14T17:57:12.222062Z",
"url": "https://files.pythonhosted.org/packages/4c/c8/a8d41c1c6a924d428e97fdb494444b8d841ce8cb64157f44e91b1c326e7d/sympy_plot_backends-3.3.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-04-14 17:57:12",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Davide-sd",
"github_project": "sympy-plot-backends",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [],
"lcname": "sympy-plot-backends"
}