.. currentmodule:: sisl.viz
.. _toc-sisl-viz:
Visualization
----------------------------
This is a full visualization framework developed specifically for ``sisl`` to visualize
all the processing that you can do with the package. The aim is to provide a **high-level API**
to generate plots through sisl, so that you can avoid **boilerplate code** and the iteration loop
with your results can be as fast as possible.
The plots that you can generate with it are **not bound to a specific visualization framework**. Instead, the users
can choose the one that they want based on their taste or on what is available in their environment. Currently,
there is support for visualizing the plots with `plotly`_, `matplotlib`_, `blender `_. The flexibility of the framework
allows for the user to **extend the visualizing options** quite simply without modifying ``sisl``'s internal code.
The framework started as a GUI, but then evolved to make it usable by ``sisl`` users directly. Therefore,
it can serve as a very robust (highly tested) and featureful **backend to integrate visualizations into graphical interfaces**.
An example of this is `the sisl-gui package `_.
Basic Tutorials
^^^^^^^^^^^^^^^
Following, you will find some tutorials that will introduce you to the framework.
.. nbgallery::
:name: viz-tutorials-gallery
basic-tutorials/Demo.ipynb
Showcase of plot classes
^^^^^^^^^^^^^^^^^^^^^^^^
The following notebooks will help you develop a deeper understanding of what each plot class is capable of.
.. nbgallery::
:name: viz-plotly-showcase-gallery
showcase/GeometryPlot.ipynb
showcase/SitesPlot.ipynb
showcase/GridPlot.ipynb
showcase/AtomicMatrixPlot.ipynb
showcase/BandsPlot.ipynb
showcase/FatbandsPlot.ipynb
showcase/PdosPlot.ipynb
showcase/WavefunctionPlot.ipynb
Using it with blender
^^^^^^^^^^^^^^^^^^^^^
The sisl visualization framework is independent of the plotting backend used, but `blender `_ is a special one. Therefore
we dedicate this section to it with the hope of making the usage of it less confusing.
.. nbgallery::
:name: viz-plotly-blender
blender/Getting started.rst
blender/First animation.rst
Combining plots
^^^^^^^^^^^^^^^
Have two plots that you would like to see displayed together, maybe as an animation or subplots? You've come
to the right place!
.. nbgallery::
:name: viz-plotly-combining-plots-gallery
combining-plots/Intro to combining plots.ipynb
Do it yourself
^^^^^^^^^^^^^^
Whether you feel like you would like to customize the framework a bit to fit your needs, you are a `sisl`
developer or you are building a framework (e.g. GUI) around `sisl.viz`, this is your section!
.. nbgallery::
:name: viz-plotly-diy-gallery
diy/Building a new plot.ipynb
diy/Adding new backends.ipynb
.. note::
Consider contributing to the package if you build a useful extension. The community will appreciate it! :)