Skip to content

Plotting capabilities

Krastanov edited this page Apr 13, 2012 · 12 revisions

All this is about the in-development plotting module.

Many examples of the plotting module capabilities are given in the docstrings and the IPython notebooks that are part of the module. However, there are many other types of plots that can be implemented and those are not listed anywhere. Hence this page on which the capabilities of other software packages will be compared to the current plotting module.

All the syntax examples will be from the highest level convenience functions. No BaseSeries subclasses will be visible. The Plot class will not be called directly.

The most explicit form of the arguments is given for the API examples (eg. plot(expr, (var, from, to)) instead of plot(expr) which finds the independent variable and uses a default range).

Remark about the Plot class: The low-level way to create a plot is to create instances of BaseSeries and append them to a Plot instance. However, for convenience, Plot also supports creating these BaseSeries instances itself for a small subset of all BaseSeries subclasses. Check the factory class Series for details.

Remark about the examples from other software packages: Their APIs will differ.

Types of Plots

TODO: finish the table

Type API In Sympy Example Image Elsewhere
2D line plot of a list of points plot(list_x, list_y) Mathematica's ListPlot
2D line plot of an expression plot(expr, (var, from, to)) Mathematica's Plot
2D parametric line plot plot(expr_x, expr_y, (param, from, to)) Mathematica's ParamatricPlot
3D parametric line plot yes
3D surface plot of an expression yes
3D parametric surface plot yes
2D contour plot yes
3D contour plot needs better 3D backend
2D Density plot easy to add
3D Density plot needs better 3D backend
2D vector field plot easy to add
3D vector field plot easy to add
2D stream lines plot not too hard to add using scipy integrators
3D stream lines plot not too hard to add using scipy integrators
2D stream density plot ?
3D stream density plot ?, needs better 3D backend
Implicit 2D equations maybe a GSoC project for an efficient version (working on only a subset of all sympy expressions), not too hard to add inefficient version using scipy optimisation routines and/or sampling
Implicit 2D inequalities maybe a GSoC project for an efficient version, not too hard to add inefficient version using sampling
Implicit 3D equations not too hard to add inefficient version using scipy optimisation routines and/or sampling
Implicit 3D inequalities not too hard to add inefficient version using sampling, need better 3D backend

Remark about "needs better 3D backend": Matplotlib does not work well with volumes (as opposed to surfaces). The alternative is Mayavi.

Options

TODO

Aesthetics

TODO

Plotting multiple graphs

TODO

Clone this wiki locally