{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "Visualising Data\n", "================\n", "\n", "The purpose of scientific computation is insight not numbers: To understand the meaning of the (many) numbers we compute, we often need postprocessing, statistical analysis and graphical visualisation of our data. The following sections describe\n", "\n", "- Matplotlib/Pylab — which allows us to generate high quality graphs of the type *y* = *f*(*x*) (and a bit more)\n", "\n", "- Visual Python — which is a very handy tool to quickly generate animations of time dependent processes taking place in 3d space.\n", "\n", "Matplotlib (Pylab) – plotting y=f(x), (and a bit more)\n", "------------------------------------------------------\n", "\n", "The Python library *Matplotlib* is a python 2D plotting library which produces publication quality figures in a variety of hardcopy formats and interactive environments. Matplotlib tries to make easy things easy and hard things possible. You can generate plots, histograms, power spectra, bar charts, errorcharts, scatterplots, etc, with just a few lines of code.\n", "\n", "For more detailed information, check these links\n", "\n", "- A very nice introduction in the object oriented Matplotlib interface, and summary of all important ways of changing style, figure size, linewidth, etc. This is a useful reference:\n", " \n", "\n", "- Matplotlib tutorial\n", "\n", "- Matplotlib home page\n", "\n", "- List of simple screenshot examples \n", "\n", "- Extended thumbnail gallery of examples \n", "\n", "### Matplotlib and Pylab\n", "\n", "Matplotlib as *an object oriented plotting library*. Pylab is an interface to the same set of functions that imitates the (state-driven) Matlab plotting interface.\n", "\n", "Pylab is slightly more convenient to use for easy plots, and Matplotlib gives far more detailed control over how plots are created. If you use Matplotlib routinely to produce figures, you are well advised to learn about the object oriented matplotlib interface (instead of the pylab interface).\n", "\n", "This chapter focusses on the Pylab interface.\n", "\n", "An excellent introduction and overview of the Matplotlib plotting interface is available in." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### First example\n", "\n", "The recommended way of using Matplotlib in a simple example is shown here (let’s call this example 1a):" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# example 1 a\n", "import numpy as np # get access to fast arrays\n", "import matplotlib.pyplot as plt # the plotting functions\n", "\n", "x = np.arange(-3.14, 3.14, 0.01) # create x-data\n", "y = np.sin(x) # compute y - data\n", "plt.plot(x, y) # create plot" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### How to import matplotlib, pylab, pyplot, numpy and all that\n", "\n", "The submodule `matplotlib.pyplot` provides an object oriented interface to the plotting library. Many of the examples in the matplotlib documentation follow the import convention to import `matplotlib.pyplot` as `plt` and `numpy` as `np`. It is of course entirely the user’s decision whether to import the `numpy` library under the name `np` (as often done in matplotlib examples) or `N` as done in this text (and in the early days when the predecessor of numpy was called “Numeric”) or any other name you like. Similarly, it is a matter of taste whether the plotting submodule (`matplotlib.pyplot`) is imported as `plt` as is done in the matplotlib documentation or `plot` (which could be argued is slightly clearer) etc." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As always a balance has to be struck between personal preferences and consistency with common practice in choosing these name. Consistency with common use is of course more important if the code is likely to be used by others or published.\n", "\n", "Plotting nearly always needs arrays of numerical data and it is for this reason that the `numpy` module is used a lot: it provides fast and memory efficient array handling for Python (see [chapter 14](14-numpy.ipynb)).\n", "\n", "We could thus also have written the example 1a above as in example 1b (which is identical in functionality to the example above and will create the same plot):" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import pylab\n", "import numpy as N\n", "\n", "x = N.arange (-3.14, 3.14, 0.01)\n", "y = N.sin(x)\n", "\n", "pylab.plot(x, y)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Because the `numpy.arange` and `numpy.sin` objects have already been imported into the (convenience) `pylab` namespace, we could also write it as example 1c:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#example 1c\n", "import pylab as p\n", "\n", "x = p.arange(-3.14, 3.14, 0.01)\n", "y = p.sin(x)\n", "\n", "p.plot(x, y)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If we really want to cut down on characters to type, we could also important the whole functionality from the `pylab` convenience module, and rewrite the code as example 1d:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#example 1 d\n", "from pylab import * # not generally recommended\n", " # okay for interactive testing\n", "\n", "x = arange(-3.14, 3.14, 0.01)\n", "y = sin(x)\n", "plot(x, y)\n", "show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This can be extremely convenient, but comes with a big health warning:\n", "\n", "- While using `from pylab import *` is acceptable at the command prompt to interactively create plots and analyse data, this should never be used in any plotting scripts.\n", "\n", "- The pylab toplevel provides over 800 different objects which are all imported into the global name space when running `from pylab import *`. This is not good practice, and could conflict with other objects that exist already or are created later.\n", "\n", "- As a rule of thumb: do never use `from somewhere import *` in programs we save. This may be okay at the command prompt.\n", "\n", "In the following examples, we usually use the `pylab` interface to the plotting routines but this is purely a matter of taste and habit and by no means the only way (note that the Matplotlib authors recommend the import style as in example 1a, see also this [Matplot FAQ entry](http://matplotlib.sourceforge.net/faq): [Matplotlib, pylab, and pyplot: how are they related?](http://matplotlib.sourceforge.net/faq/usage_faq.html#matplotlib-pylab-and-pyplot-how-are-they-related))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### IPython’s inline mode\n", "\n", "Within the Jupyter Notebook or Qtconsole (see the [Python shells notebook](11-python-shells.ipynb)) we can use the `%matplotlib inline` magic command to make further plots appear within our console or notebook. To force pop up windows instead, use `%matplotlib qt`.\n", "\n", "There is also the `%pylab` magic, which will not only switch to inline plotting but also automatically execute `from pylab import *`." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Saving the figure to a file\n", "\n", "Once you have created the figure (using the `plot` command) and added any labels, legends etc, you have two options to save the plot.\n", "\n", "1. You can display the figure (using `show`) and *interactively* save it by clicking on the disk icon.\n", "\n", "2. You can (without displaying the figure) save it directly from your Python code. The command to use is `savefig`. The format is determined by the extension of the file name you provide. Here is an example (`pylabsavefig.py`) which saves the plot shown in Figure \\[fig:pylab1" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import pylab\n", "import numpy as N\n", "\n", "x = N.arange(-3.14, 3.14, 0.01)\n", "y = N.sin(x)\n", "\n", "pylab.plot(x, y, label='sin(x)')\n", "pylab.savefig('myplot.png') # saves png file\n", "pylab.savefig('myplot.eps') # saves eps file\n", "pylab.savefig('myplot.pdf') # saves pdf file\n", "pylab.close()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A note on file formats: Choose the `png` file format if you plan to include your graph in a word document or on a webpage. Choose the `eps` or `pdf` file format if you plan to include the figure in a Latex document – depending on whether you want to compile it using `latex` (needs `eps`) or pdflatex (can use `pdf` \\[better\\] or `png`). If the version of MS Word (or other text processing software you use) can handle `pdf` files, it is better to use `pdf` than `png`.\n", "\n", "Both `pdf` and `eps` are vector file formats which means that one can zoom into the image without loosing quality (lines will still be sharp). File formats such as `png` (and `jpg`, `gif`, `tif`, `bmp`) save the image in form of a bitmap (i.e. a matrix of colour values) and will appear blurry or pixelated when zooming in (or when printed in high resolution)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Interactive mode\n", "\n", "Matplotlib can be run in two modes:\n", "\n", "- non-interactive (this is the default)\n", "\n", "- interactive.\n", "\n", "In non-interactive mode, no plots will be displayed until the `show()` command has been issued. In this mode, the `show()` command should be the last statement of your program.\n", "\n", "In interactive mode, plots will be immediately displayed after the plot command has been issued.\n", "\n", "One can switch the interactive mode on using `pylab.ion()` and off using `pylab.ioff()`. IPython's `%matplotlib` magic also enables interactive mode." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Fine tuning your plot\n", "\n", "Matplotlib allows us to fine tune our plots in great detail. Here is an example:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import pylab\n", "import numpy as N\n", "\n", "x = N.arange(-3.14, 3.14, 0.01)\n", "y1 = N.sin(x)\n", "y2 = N.cos(x)\n", "pylab.figure(figsize =(5 , 5))\n", "pylab.plot(x, y1, label='sin(x)')\n", "pylab.plot(x, y2, label='cos(x)')\n", "pylab.legend()\n", "pylab.grid()\n", "pylab.xlabel('x')\n", "pylab.title('This is the title of the graph')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "showing some other useful commands:\n", "\n", "- `figure(figsize=(5,5))` sets the figure size to 5inch by 5inch\n", "\n", "- `plot(x,y1,label=’sin(x)’)` The “label” keyword defines the name of this line. The line label will be shown in the legend if the `legend()` command is used later.\n", "\n", "- Note that calling the `plot` command repeatedly, allows you to overlay a number of curves.\n", "\n", "- `axis([-2,2,-1,1])` This fixes the displayed area to go from xmin=-2 to xmax=2 in x-direction, and from ymin=-1 to ymax=1 in y-direction\n", "\n", "- `legend()` This command will display a legend with the labels as defined in the plot command. Try `help(pylab.legend)` to learn more about the placement of the legend.\n", "\n", "- `grid()` This command will display a grid on the backdrop.\n", "\n", "- `xlabel(’...’)` and `ylabel(’...’)` allow labelling the axes.\n", "\n", "Note further than you can chose different line styles, line thicknesses, symbols and colours for the data to be plotted. (The syntax is very similar to MATLAB.) For example:\n", "\n", "- `plot(x,y,’og’)` will plot circles (`o`) in green (`g`)\n", "\n", "- `plot(x,y,’-r’)` will plot a line (`-`) in red (`r`)\n", "\n", "- `plot(x,y,’-b’,linewidth=2)` will plot a blue line (`b`) with two two pixel thickness `linewidth=2` which is twice as wide as the default.\n", "\n", "The full list of options can be found when typing `help(pylab.plot)` at the Python prompt. Because this documentation is so useful, we repeat parts of it here:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " plot(*args, **kwargs)\n", " Plot lines and/or markers to the\n", " :class:`~matplotlib.axes.Axes`. *args* is a variable length\n", " argument, allowing for multiple *x*, *y* pairs with an\n", " optional format string. For example, each of the following is\n", " legal::\n", "\n", " plot(x, y) # plot x and y using default line style and color\n", " plot(x, y, 'bo') # plot x and y using blue circle markers\n", " plot(y) # plot y using x as index array 0..N-1\n", " plot(y, 'r+') # ditto, but with red plusses\n", "\n", " If *x* and/or *y* is 2-dimensional, then the corresponding columns\n", " will be plotted.\n", "\n", " An arbitrary number of *x*, *y*, *fmt* groups can be\n", " specified, as in::\n", "\n", " a.plot(x1, y1, 'g^', x2, y2, 'g-')\n", "\n", " Return value is a list of lines that were added.\n", "\n", " The following format string characters are accepted to control\n", " the line style or marker:\n", "\n", " ================ ===============================\n", " character description\n", " ================ ===============================\n", " '-' solid line style\n", " '--' dashed line style\n", " '-.' dash-dot line style\n", " ':' dotted line style\n", " '.' point marker\n", " ',' pixel marker\n", " 'o' circle marker\n", " 'v' triangle_down marker\n", " '^' triangle_up marker\n", " '<' triangle_left marker\n", " '>' triangle_right marker\n", " '1' tri_down marker\n", " '2' tri_up marker\n", " '3' tri_left marker\n", " '4' tri_right marker\n", " 's' square marker\n", " 'p' pentagon marker\n", " '*' star marker\n", " 'h' hexagon1 marker\n", " 'H' hexagon2 marker\n", " '+' plus marker\n", " 'x' x marker\n", " 'D' diamond marker\n", " 'd' thin_diamond marker\n", " '|' vline marker\n", " '_' hline marker\n", " ================ ===============================\n", "\n", " The following color abbreviations are supported:\n", "\n", " ========== ========\n", " character color\n", " ========== ========\n", " 'b' blue\n", " 'g' green\n", " 'r' red\n", " 'c' cyan\n", " 'm' magenta\n", " 'y' yellow\n", " 'k' black\n", " 'w' white\n", " ========== ========\n", "\n", " In addition, you can specify colors in many weird and\n", " wonderful ways, including full names (``'green'``), hex\n", " strings (``'#008000'``), RGB or RGBA tuples (``(0,1,0,1)``) or\n", " grayscale intensities as a string (``'0.8'``). Of these, the\n", " string specifications can be used in place of a ``fmt`` group,\n", " but the tuple forms can be used only as ``kwargs``.\n", "\n", " Line styles and colors are combined in a single format string, as in\n", " ``'bo'`` for blue circles.\n", "\n", " The *kwargs* can be used to set line properties (any property that has\n", " a ``set_*`` method). You can use this to set a line label (for auto\n", " legends), linewidth, anitialising, marker face color, etc. Here is an\n", " example::\n", "\n", " plot([1,2,3], [1,2,3], 'go-', label='line 1', linewidth=2)\n", " plot([1,2,3], [1,4,9], 'rs', label='line 2')\n", " axis([0, 4, 0, 10])\n", " legend()\n", "\n", " If you make multiple lines with one plot command, the kwargs\n", " apply to all those lines, e.g.::\n", "\n", " plot(x1, y1, x2, y2, antialised=False)\n", "\n", " Neither line will be antialiased.\n", "\n", " You do not need to use format strings, which are just\n", " abbreviations. All of the line properties can be controlled\n", " by keyword arguments. For example, you can set the color,\n", " marker, linestyle, and markercolor with::\n", "\n", " plot(x, y, color='green', linestyle='dashed', marker='o',\n", " markerfacecolor='blue', markersize=12). See\n", " :class:`~matplotlib.lines.Line2D` for details." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The use of different line styles and thicknesses is particularly useful when colour cannot be used to distinguish lines (for example when graph will be used in document that is to be printed in black and white only).\n", "\n", "### Plotting more than one curve\n", "\n", "There are three different methods to display more than one curve.\n", "\n", "#### Two (or more) curves in one graph\n", "\n", "By calling the `plot` command repeatedly, more than one curve can be drawn in the same graph. Example:" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nVWuFzPs2wgAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import numpy as N\n", "t = N.arange(0,2*N.pi,0.01)\n", "\n", "import pylab\n", "pylab.plot(t,N.sin(t),label='sin(t)')\n", "pylab.plot(t,N.cos(t),label='cos(t)')\n", "pylab.legend()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Two (or more graphs) in one figure window\n", "\n", "The `pylab.subplot` command allows to arrange several graphs within one figure window. The general syntax is\n", "\n", " subplot(numRows, numCols, plotNum)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For example, to arrange 4 graphs in a 2-by-2 matrix, and to select the first graph for the next plot command, one can use:\n", "\n", "```python\n", "subplot(2, 2, 1)\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here is a complete example plotting the sine and cosine curves in two graphs that are aligned underneath each other within the same window:" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import numpy as N\n", "t = N.arange (0 , 2 * N . pi , 0.01)\n", "\n", "import pylab\n", "\n", "pylab.subplot(2, 1, 1)\n", "pylab.plot(t, N.sin(t))\n", "pylab.xlabel('t')\n", "pylab.ylabel('sin(t)')\n", "\n", "pylab.subplot(2, 1, 2)\n", "pylab.plot(t, N.cos(t))\n", "pylab.xlabel('t')\n", "pylab.ylabel('cos(t)')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Two (or more) figure windows" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\nEjHoS1KJ/D8jUyUh+X6iJgAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import pylab\n", "pylab.figure(1)\n", "pylab.plot(range(10),'o')\n", "\n", "pylab.figure(2)\n", "pylab.plot(range(100),'x')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that you can use `pylab.close()` to close one, some or all figure windows (use `help(pylab.close)` to learn more).\n", "\n", "### Histograms\n", "\n", "\n", "\n", "The program below demonstrates how to create histograms from stastical data in Matplotlib. The resulting plot is show in figure" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n/wGJsWFUZgJIVAAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#modified version of\n", "#http://matplotlib.sourceforge.net/plot_directive/mpl_examples/...\n", "# /pylab_examples/histogram_demo.py\n", "import numpy as np\n", "import matplotlib.mlab as mlab\n", "import matplotlib.pyplot as plt\n", "\n", "# create data\n", "mu, sigma = 100, 15\n", "x = mu + sigma * np.random.randn(10000)\n", "\n", "# histogram of the data\n", "n, bins, patches = plt.hist(x, 50, normed=1,\n", " facecolor='green', alpha=0.75)\n", "\n", "#some finetuning of plot\n", "plt.xlabel('Smarts')\n", "plt.ylabel('Probability')\n", "#Can use Latex strings for labels and titles:\n", "plt.title(r'$\\mathrm{Histogram\\ of\\ IQ:}\\ \\mu=100,\\ \\sigma=15$')\n", "plt.axis([40, 160, 0, 0.03])\n", "plt.grid(True)\n", "\n", "\n", "# add a 'best fit' line\n", "y = mlab.normpdf(bins, mu, sigma)\n", "l = plt.plot(bins, y, 'r--', linewidth=1)\n", "\n", "#save to file\n", "plt.savefig('pylabhistogram.pdf')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Do not try to understand every single command in this file: some are rather specialised and have not been covered in this text. The intention is to provide a few examples to show what can – in principle – be done with Matplotlib. If you need a plot like this, the expectation is that you will need to experiment and possibly learn a bit more about Matplotlib." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Visualising matrix data\n", "\n", "The program below demonstrates how to create a bitmap-plot of the entries of a matrix." ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\ndJJMXkmSdJI7J2Ux50ySip4AAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import numpy as np\n", "import matplotlib.mlab as mlab # Matlab compatibility commands\n", "import matplotlib.pyplot as plt\n", "\n", "#create matrix Z that contains some interesting data\n", "delta = 0.1\n", "x = y = np.arange(-3.0, 3.0, delta)\n", "X, Y = np.meshgrid(x, y)\n", "Z = mlab.bivariate_normal(X, Y, 3.0, 1.0, 0.0, 0.0)\n", "\n", "#display the 'raw' matrix data of Z in one figure\n", "plt.figure(1)\n", "plt.imshow(Z, interpolation='nearest')\n", "plt.title(\"imshow example 1a: no interpolation\")\n", "plt.savefig(\"pylabimshow1a.pdf\")\n", "\n", "#display the data interpolated in other figure\n", "plt.figure(2)\n", "im = plt.imshow(Z, interpolation='bilinear')\n", "plt.title(\"imshow example 1b: with bi-linear interpolation\")\n", "plt.savefig(\"pylabimshow1b.pdf\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To use different colourmaps, we make use of the `matplotlib.cm` module (where cm stands for Colour Map). The code below demonstrates how we can select colourmaps from the set of already provided maps, and how we can modify them (here by reducing the number of colours in the map). The last example mimics the behaviour of the more sophisticated `contour` command that also comes with `matplotlib`." ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n7vPaaMMiT6fUstYrf3ul2PGe107sme0vm22bPP574/3cgYHtINNY+tUxiNRFZJdA6J9U1ZSOf0lE\njqnqpeh3T4sLDl7z8KP/TPVgn7wXTt4fKxIZe/L2EcV0BfaBtPu5Olw9rsyX09FmHnJZE9ZRb0ni\nZk+ZTdlJH1uX2+5qE5/zvfOw90IwMj8dR72Nqderr32tItGdO+9j53CIWDVzzaW+hyfhpBuW9YSm\nRW2Do8nit3W2aKKtuka9xyKWe4YKWymMCTNTpK4+WdeZukZKYsuaT220RejTay8yvfpdVJXptTOp\n3Wh6Ddgz2w/ETxesu+CjPe0AfjVTdg9hpNOtgLOZss8xTnrZufgZhkErH4nIJ4CXVfVDpuwU8Kqq\nnuoIvPws4TXuq3QFSh+jaTnnSLtrWGZyvxiiaOQVJqvb7kumDNokniPvZZI/fbTVE70na3ucLUsu\nFmuN3XDtc6k9vp3z1b//3+Adh+DPn6MKvIyh18N3/4EpcEFM6yrpylBJg5Ey7fI55/mynBXv0U5v\nnAdtu1dy+56woUXiWVJvuGq02barndu+fuUfQA4zvfbN0fQaZWhYGW9b8BP7+FuvEoKA24CPrRYo\nFZGHgF8DnhWR04Rb6o+AU8DfichvAi8A7wNYaM1D25HnErZz+31J39D2l+fapHZ+lJCvzxHFIvBE\n3dcu9+aVS5Sfl0xv930aj3HHfO1l+NQ5+KkfCfsi8hQj6XV23bhKzPoiMnFTaPUEONlxa/dk/OOd\nQVAxnYJHS86KXoiOPPbkasoZatncdx9gdce1jrH7SpX7Prt5gen1M8jkHcC4et0+PLfpE9hKbHSN\nUj1J0xLzhA39BA95ws6V5WQPqVsXckNW59UNIXmfbO9lZfZlj96efxGIiB46/Ptxx1T4XHG/v9P2\ng7dIPBv4nONWWcRlNga6hhvjrG1bPoTkZ9o81gdkvWyFa2/+6Wh6hW201G9XrGiprxVpeKwnaus6\niaMTKwv8TdMuZ5Xn5M0rnydvbAwdquqxCtlD+22gr2NZAbOUS58LYsayyhKNRK12/u8uovbEH6Hz\niLuP+EfE3Em0uqx6T9h98nLBWG/VDwjqFhxcbJbUrxIe6uvk/d2+TDJltn26Gj8cN9X1DdPdT2t9\n3lBVqPPNux7sXJ33vff9ng2kjgydTgGJo71oWNcq7TKgMaIUjMvGWOfqF37IWe4OSe6+cNyMtr/d\n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\nksuH6gAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import numpy as np\n", "import matplotlib.mlab as mlab # Matlab compatibility commands\n", "import matplotlib.pyplot as plt\n", "import matplotlib.cm as cm # Colour map submodule\n", "\n", "#create matrix Z that contains some data interesting data\n", "delta = 0.025\n", "x = y = np.arange(-3.0, 3.0, delta)\n", "X, Y = np.meshgrid(x, y)\n", "Z = mlab.bivariate_normal(X, Y, 3.0, 1.0, 0.0, 0.0)\n", "\n", "Nx, Ny = 2, 3\n", "plt.subplot(Nx, Ny, 1) # next plot will be shown in\n", " # first subplot in Nx x Ny\n", " # matrix of subplots\n", "\n", "plt.imshow(Z, cmap=cm.jet) # default colourmap 'jet'\n", "plt.title(\"colourmap jet\")\n", "\n", "plt.subplot(Nx, Ny, 2) # next plot for second subplot\n", "plt.imshow(Z, cmap=cm.jet_r) # reverse colours in jet\n", "plt.title(\"colourmap jet_r\")\n", "\n", "plt.subplot(Nx, Ny, 3)\n", "plt.imshow(Z, cmap=cm.gray)\n", "plt.title(\"colourmap gray\")\n", "\n", "plt.subplot(Nx, Ny, 4)\n", "plt.imshow(Z, cmap=cm.hsv)\n", "plt.title(\"colourmap hsv\")\n", "\n", "plt.subplot(Nx, Ny, 5)\n", "plt.imshow(Z, cmap=cm.gist_earth)\n", "plt.title(\"colourmap gist_earth\")\n", "\n", "plt.subplot(Nx, Ny, 6)\n", "#make isolines by reducing number of colours to 10\n", "mycmap = cm.get_cmap('jet', 10) # 10 discrete colors\n", "plt.imshow(Z, cmap=mycmap)\n", "plt.title(\"colourmap jet\\n(10 colours only)\")\n", "\n", "plt.savefig(\"pylabimshowcm.pdf\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Plots of *z* = *f*(*x*, *y*) and other features of Matplotlib\n", "\n", "Matplotlib has a large number of features and can create all the standard (1d and 2d) plots such as histograms, pie charts, scatter plots, 2d-intensity plots (i.e. *z* = *f*(*x*, *y*)) and contour lines) and much more. Figure \\[fig:pylabcontour\\_demo\\] shows such an example (the `contour_demo.py` program is a standard example of the `pylab` package). This link provides source code to produce this kind of plot: [contour\\_demo.py](http://matplotlib.org/examples/pylab_examples/contour_demo.html)\n", "\n", "Other examples are\n", "\n", "- \n", "- \n", "- Recently, creation of 3d-plots has been added to pylab: \n", "\n", "\"The" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Visual Python\n", "-------------\n", "\n", "Visual Python is a Python module that makes it fairly easy to create and animate three-dimensional scenes.\n", "\n", "Further information:\n", "\n", "- The Visual Python home page\n", "\n", "- The Visual Python documentation (explaining all objects with all their parameters)\n", "\n", "Short videos introducing Visual Python:\n", "\n", "- Shawn Weatherford, Jeff Polak (students of Ruth Chabay): \n", "\n", "- Eric Thompson: \n", "\n", "### Basics, rotating and zooming\n", "\n", "Here is an example showing how to create a red and a blue sphere at two different positions together with a flat box (`vpythondemo1.py`):" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "```python\n", "import visual\n", "sphere1 = visual.sphere(pos=[0, 0, 0], color=visual.color.blue)\n", "sphere2 = visual.sphere(pos=[5, 0, 0], color=visual.color.red, radius=2)\n", "base = visual.box(pos=(0, -2, 0), length=8, height=0.1, width=10)\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\"Snapshot\n", "\n", "Once you have created such a visual python scene, you can\n", "\n", "- rotate the scene by pressing the right mouse button and moving the mouse\n", "\n", "- zoom in and out by pressing the middle mouse button (this could be the wheel) and moving the mouse up and down. (On some (Windows?) installations, one has to press the left and the right mouse button simultaneously and then move the move the mouse up and down to zoom.)\n", "\n", "### Setting the frame rate for animations\n", "\n", "A particular strength of Visual Python is its ability to display time-dependent data:\n", "\n", "- A very useful command is the `rate()` command which ensures that a loop is only executed at a certain frame rate. Here is an example printing exactly two “Hello World”s per second (`vpythondemo2.py`):" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "```python\n", "import visual\n", "\n", "for i in range(10):\n", " visual.rate(2)\n", " print(\"Hello World (0.5 seconds per line)\")\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- All Visual Python objects (such as the spheres and the box in the example above) have a `.pos` attribute which contains the position (of the centre of the object \\[sphere,box\\] or one end of the object \\[cylinder,helix\\]). Here is an example showing a sphere moving up and down (`vpythondemo3.py`):" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "```python\n", "import visual, math\n", "\n", "ball = visual.sphere()\n", "box = visual.box( pos=[0,-1,0], width=4, length=4, height=0.5 )\n", "\n", "#tell visual not to automatically scale the image\n", "visual.scene.autoscale = False\n", "\n", "for i in range(1000):\n", " t = i*0.1\n", " y = math.sin(t)\n", "\n", " #update the ball's position\n", " ball.pos = [0, y, 0]\n", "\n", " #ensure we have only 24 frames per second\n", " visual.rate(24)\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\"Snapshot" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Tracking trajectories\n", "\n", "You can track the trajectory of an object using a “curve”. The basic idea is to append positions to that curve object as demonstrated in this example (`vpythondemo4.py`):" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "```python\n", "import visual, math\n", "\n", "ball = visual.sphere()\n", "box = visual.box( pos=[0,-1,0], width=4, length=4, height=0.5 )\n", "trace=visual.curve( radius=0.2, color=visual.color.green)\n", "\n", "for i in range(1000):\n", " t = i*0.1\n", " y = math.sin(t)\n", "\n", " #update the ball's position\n", " ball.pos = [t, y, 0]\n", "\n", " trace.append( ball.pos )\n", "\n", " #ensure we have only 24 frames per second\n", " visual.rate(24)\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\"Snapshot\n", "\n", "As with most visual Python objects, you can specify the colour of the curve (also per appended element!) and the radius." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Connecting objects (Cylinders, springs, …)\n", "\n", "Cylinders and helices can be used to “connect” two objects. In addition to the `pos` attribute (which stores the position of one end of the object), there is also an `axis` attribute which stores the vector pointing from `pos` to the other end of the object. Here is an example showing this for a cylinder: (`vpythondemo5py`):" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "```python\n", "import visual, math\n", "\n", "ball1 = visual.sphere( pos = (0,0,0), radius=2 )\n", "ball2 = visual.sphere( pos = (5,0,0), radius=2 )\n", "connection = visual.cylinder(pos = ball1.pos, \\\n", " axis = ball2.pos - ball1.pos)\n", "\n", "for t in range(100):\n", " #move ball2 \n", " ball2.pos = (-t,math.sin(t),math.cos(t))\n", "\n", " #keep cylinder connection between ball1 and ball2\n", " connection.axis = ball2.pos - ball1.pos\n", "\n", " visual.rate(24)\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 3d vision\n", "\n", "If you have access to “anaglyphic” (*i.e.* colored) glasses (best red-cyan but red-green or red-blue works as well), then you can switch visual python into this stereo mode by adding these two lines to the beginning of your program:" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "```python\n", "visual.scene.stereo='redcyan'\n", "visual.scene.stereodepth=1\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note the effect of the `stereodepth` parameter:\n", "\n", "- `stereodepth=0`: 3d scene “inside” the screen (default)\n", "\n", "- `stereodepth=1`: 3d scene at screen surface (this often looks best)\n", "\n", "- `stereodepth=2`: 3d scene sticking out of the screen\n", "\n", "\"Snapshot\n", "\n", "Visualising higher dimensional data\n", "-----------------------------------\n", "\n", "Often, we need to understand data defined at 3d positions in space. The data itself is often a scalar field (such as temperature) or a 3d vector (such as velocity or magnetic field), or occasionally a tensor. For example for a 3d-vector field *f* defined in 3d-space ($\\vec{f}(\\vec{x})$ where $\\vec{x} \\in I\\!\\!R^3$ and $\\vec{f}(\\vec{x})\n", "\\in I\\!\\!R^3$) we could draw a 3d-arrow at every (grid) point in space. It is common for these data sets to be time dependent.\n", "\n", "The probably most commonly used library in Science and Engineering to visualise such data sets is probably VTK, the Visualisation ToolKit (). This is a substantial C++ library with interfaces to high level languages, including Python.\n", "\n", "One can either call these routines directly from Python code, or write the data to disk in a format that the VTK library can read (so called vtk data files), and then use stand-alone programme such as Mayavi, ParaView and VisIt to read these data files and manipulate them (ofter with a GUI). All three of these are using the VTK library internally, and can read vtk data files.\n", "\n", "These package is very well suited to visualise static and timedependent 2d and 3d-fields (scalar, vector and tensor fields). Two examples are shown below.\n", "\n", "They can be used as a stand-alone executables with a GUI to visualise VTK files. It can also be scripted from a Python program, or used interactively from a Python session.\n", "\n", "### Mayavi, Paraview, Visit\n", "\n", "- Mayavi Home page \n", "\n", "- Paraview Home page \n", "\n", "- VisIt Home page \n", "\n", "\"image\"\"image\"\n", "\n", "Two examples from MayaVi visualisations.\n", "\n", "### Writing vtk files from Python (pyvtk)\n", "\n", "A small but powerful Python library is pyvtk available at . This allows to create vtk files from Python data structures very easily.\n", "\n", "Given a finite element mesh or a finite difference data set in Python, one can use pyvtk to write such data into files, and then use one of the visualisation applications listed above to load the vtk files and to display and investigate them." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.4.4" } }, "nbformat": 4, "nbformat_minor": 1 }