Skip to content
Prev Previous commit
Next Next commit
reworded ui_introduction.rst
  • Loading branch information
tobias47n9e authored and WeatherGod committed Jun 27, 2014
commit 65bcb3184a2e5fc719249ba4f0713d54f5065a40
60 changes: 39 additions & 21 deletions doc/users/ui_introduction.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,40 +3,58 @@
Introduction
============

Matplotlib can be placed as a widget into a variety of user-interface frameworks (or user-interface toolkits). This allows one to build custom applications that can display Matplotlib-plots.
Matplotlib can be placed into a variety of user-interface frameworks (or user-interface toolkits), which allows for the rapid development of applications that visualize data. The user dynamically change the appearance of the plot and can even manipulate the data through the plot. The integration of Matplotlib into web-frameworks brings these same features to webpages. In addition, many rendering backends (or graphical libraries) are supported, which can be used for dynamic applications or exporting the graphs into static documents.

.. figure:: ../_static/mpl_with_glade_3.png
:width: 50 %
:alt: Figure of the Glade interface, showing how to divide the window into 2 scrolled windows.
:align: center

**Figure 1:** Example of Matplotlib embedded as a widget in a user-interface framework. This example shows the GTK+ 3.x framework under Ubuntu 14.04. *Note that the appearance of the window will depend on the operating system and can additonialy be customized.*

The different frameworks offer different features and programming-language bindings. Most offer graphical user-interface-builders (or rapid-application-development programs) that are useful for larger applications.
The different user-interface frameworks offer different features and programming-language bindings. Most offer graphical user-interface-builders (or rapid-application-development programs) that are useful for constructing the layout of larger applications. The appearance of the user interface will be, by default, similar to the style of the operating system, but can be customized.

The following user-interface frameworks are supported (graphical builders in brackets):

- Gtk+

- Gtk+ 2.x (Glade 3.8.x)
- Gtk+ 3.x (Glade 3.16.x)
- Gtk+ 2.x (Glade 3.8.x)
- Gtk+ 3.x (Glade 3.16.x)

- macosx

- Qt (Qt-Creator)

- Qt4
- Qt5
- Qt4
- Qt5

- Tk

- Wx (wxFormbuilder)
- wxWidgets (wxFormbuilder)

- Wx 2.x
- Wx 3.x
- wx 2.x
- wx 3.x

*The wxWidget-framework is, as of June 2014, the only toolkit that does not support Python 3.x*

The supported web-frameworks are:

The different frameworks offer different features and programming-language bindings. The appearance of the user interface will be, by default, similar to the style of the operating system, but can be customized.
- Django

.. figure:: ../_static/mpl_with_glade_2.png
The following backends are supported:

- Agg (Anti-Grain Geometry)

- CocoaAgg
- GTKAgg
- TkAgg
- QtAgg
- WebAgg


- Cairo
- Gdk (GIMP Drawing Kit)
- Pdf (Portable Document Format)
- Pgf (Portable Graphics Format)
- Ps (PostScript)
- Svg (Scalable Vector Graphics)

.. figure:: ../_static/mpl_with_glade_3.png
:width: 50 %
:alt: Glade window as an example for a graphical user-interface-builder or rapid-application development program.
:alt: Figure of the Glade interface, showing how to divide the window into 2 scrolled windows.
:align: center
**Figure 2:** Glade is just one of many programs that can be used to design more complex user interfaces using a graphical interface.

**Figure 1:** Example of Matplotlib embedded as a widget in a user-interface framework. This example shows the GTK+ 3.x framework under Ubuntu 14.04. *Note that the appearance of the window will depend on the operating system and can additonialy be customized.*