{ "metadata": { "name": "", "signature": "sha256:ccebada8bf4f7418f9ce218ebf91b9ecc44095bdf51017f04051dda2a4b15ae2" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Data Assimilation and Visualization Short Course\n", "# Visualization practical\n", "\n", "## Wednesday 17th September 2014\n", "## Jon Blower\n", "\n", "# Lesson 2: Simple plotting\n", "\n", "We have already mentioned that Python is not specifically a scientific programming language. Some users who may be familiar with systems like Matlab and IDL are rather surprised to find that typing `plot(somedata)` directly into a Python prompt does not work. We have to import the right *libraries* in order to do this.\n", "\n", "The wonderful [Matplotlib](http://matplotlib.org/) library let's us create lots of types of plot in a Matlab-like syntax (see the [Matplotlib gallery](http://matplotlib.org/gallery.html) for some examples). This is what we're going to use in this lesson, and for the rest of the practical, although other libraries are available too (see Further Reading below).\n", "\n", "## Objectives\n", "1. To create simple line plots and contour plots using Python, Numpy and Matplotlib\n", "1. To read data from text-based tabular data files (e.g. CSV)\n", "\n", "## A simple line plot\n", "\n", "Before we can do any plotting we need to import the matplotlib code. The most common way to do this is like this:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import matplotlib.pyplot as plt" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 1 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Don't worry about the syntax here. You can find more details about how to import libraries in Python [here](http://www.tutorialspoint.com/python/python_modules.htm) if you wish.\n", "\n", "As we've mentioned, these notes are written in the [IPython Notebook](http://ipython.org/notebook) system. We need to add one line of \"magic\" in order to get plotting to work within this notebook, but you **don't** have to add this line to any Python scripts. So you can ignore this line for today:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "%matplotlib inline" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 2 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's create a simple line plot:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "plt.plot([0,1,4,9,16,25,36,49])\n", "plt.show()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 3 }, { "cell_type": "markdown", "metadata": {}, "source": [ "The numbers between the square brackets form a [*list*](http://www.tutorialspoint.com/python/python_lists.htm) in Python.\n", "\n", "This code can be run as a (three-line) script: load up `simpleplot.py` in your text editor and run it.\n", "\n", "## Introducing Numpy arrays\n", "In scientific programming it's very common to need to manipulate and plot arrays of numbers. It's possible to use Python's own lists for this purpose (as in the program above), but these can be inconvenient (and slow) for large or multidimensional arrays. The [Numpy](http://www.numpy.org) library is very commonly used for this.\n", "\n", "We import Numpy like this:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import numpy as np" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 4 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's create a Numpy array containing the numbers from 0 to 9 inclusive. These will form the x values of our next plot:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "x = np.arange(10)\n", "print x" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "[0 1 2 3 4 5 6 7 8 9]\n" ] } ], "prompt_number": 5 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now let's create the y values by squaring each of the x values:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "y = x**2\n", "print y" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "[ 0 1 4 9 16 25 36 49 64 81]\n" ] } ], "prompt_number": 6 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we can create a new plot using these x and y values. We'll also label the axes and give the plot a title." ] }, { "cell_type": "code", "collapsed": false, "input": [ "plt.plot(x,y)\n", "plt.xlabel('x')\n", "plt.ylabel('y')\n", "plt.title('A nice plot')\n", "plt.show()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\nAAAASUVORK5CYII=\n", "text": [ "" ] } ], "prompt_number": 7 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Fairly straightforward, yes? You can find a runnable script that does this in `nparr.py`. You can change the colour and style of the line: for example, to plot a red dashed line you can use `plt.plot(x,y,'r--')`. Edit the script and try it!\n", "\n", "## Plotting data from tables and spreadsheets\n", "It is very common to need to plot data that are stored in tabular form, e.g. in spreadsheets or CSV (comma-separated value) files. Data are given as plain (ASCII) text, with each data value separated by commas, spaces or some other delimiter.\n", "\n", "We have provided some sample output from the DALEC model in the `data` folder that accompanies these notes. The file `dalec_example_CF_DA.csv` contains comma-separated values of carbon in foliage after assimilating lots of field data (thanks to [Tristan Quaife](http://www.met.reading.ac.uk/users/users/1769) for providing these data). There are 200 columns in the data file, each representing a particular experiment - each experiment has a value of carbon for each of 1096 model days. Open the file in your text editor to see what it looks like.\n", "\n", "Numpy and Matplotlib make it very easy to work with these files. We can read in the data using a single command:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "carbon = np.genfromtxt('../data/dalec_example_CF_DA.csv', delimiter=',')" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 8 }, { "cell_type": "markdown", "metadata": {}, "source": [ "That's all! Now the variable `carbon` contains a 2D Numpy array of data:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "carbon.shape" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 9, "text": [ "(1096, 200)" ] } ], "prompt_number": 9 }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can get the results of the *i*th experiment (out of 200) by using Numpy's array slice syntax: `carbon[:,i]` (meaning \"all the values in the first dimension, but the *i*th value of the second dimension). Let's get the data for the 10th experiment (recalling that Python arrays start at zero so the experiment with index 9 is in fact the 10th experiment): " ] }, { "cell_type": "code", "collapsed": false, "input": [ "exp9 = carbon[:,9]" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 10 }, { "cell_type": "markdown", "metadata": {}, "source": [ "And of course we can plot it:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "plt.plot(exp9)\n", "plt.title('One experiment from DALEC')\n", "plt.ylabel('(carbon in foliage, g m^-2)')\n", "plt.xlabel('timestep')\n", "plt.show()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 11 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's say we wanted to investigate the variability of carbon values among the 200 model runs. We can create an array of values from each model run at a particular timestep, say the timestep with index 600. We can slice the 2D array of carbon values in a different way:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "values = carbon[600,:]" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 12 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now the variable `values` contains 200 values of carbon, one from each model run. We can plot a histogram of these values with eight bins:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "plt.hist(values,8)\n", "plt.title('Histogram of carbon values at timestep 600')\n", "plt.xlabel('carbon in foliage / g m^-2')\n", "plt.show()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 13 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Plotting two-dimensional data\n", "To plot two-dimensional data (i.e. `z = f(x,y)`) we follow the same general idea. Firstly, we'll create a 2D array of data. There are various ways to do this, but we'll start by creating x and y values; eleven of each ranging from -1 to +1:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "x = np.linspace(-1,1,11)\n", "y = np.linspace(-1,1,11)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 14 }, { "cell_type": "markdown", "metadata": {}, "source": [ "We'll now create a grid from these x and y values, then create a 2D array of Z values. Don't worry if you don't quite follow what is happening here. (You can find out more about the `meshgrid` function [here](http://docs.scipy.org/doc/numpy/reference/generated/numpy.meshgrid.html).)" ] }, { "cell_type": "code", "collapsed": false, "input": [ "X, Y = np.meshgrid(x,y)\n", "Z = np.cos(X) * np.cos(Y)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 15 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we can create a filled contour plot from the data (using 20 contour values), add x and y axis labels and a title, and finally a colour bar:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "plt.contourf(x,y,Z,20)\n", "plt.xlabel('x')\n", "plt.ylabel('y')\n", "plt.title('cos(x) * cos(y)')\n", "plt.colorbar()\n", "plt.show()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 16 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exercises\n", "The code to plot the 2D data can be found in `heatmap.py`.\n", "\n", "1. Using this script, experiment with choosing different colour maps for the plot.\n", " * Hint: you can get a new colour map with \"`cm = plt.get_cmap('name of cmap')`\" and you can use this colour map in the `contourf` function by appending an argument \"`cmap=cm`\". See [here](http://matplotlib.org/examples/color/colormaps_reference.html) on the Matplotlib website for a list of supported colour maps. (The next lesson shows you how to do this if you are stuck.)\n", " * In what ways do the data look different under different colour maps? Should you be using a sequential, diverging or qualitative (i.e. nominal) map?\n", "1. Write a script to plot the 2D array of DALEC output (i.e. the variable `carbon` above) as a colour map. The y axis should be the timestep, the x axis should be the experiment number. What patterns can you see? Does your choice of colour scale affect how you interpret the patterns?\n", "\n", "## Further Reading\n", "Implementation of typographic and design principles in matplotlib and iPython notebook - http://nbviewer.ipython.org/gist/olgabot/5357268\n", "\n", "Creating interactive plots using Bokeh (unfortunately we could not install bokeh on the lab computers, but you might be able to try this at home) - http://bokeh.pydata.org\n", "\n", "## Notes\n", "You will often see people using a system called [PyLab](http://wiki.scipy.org/PyLab), which bundles together Matplotlib, NumPy and [SciPy](http://www.scipy.org). This is often imported like this:\n", "```\n", "from pylab import *\n", "```\n", "which is essentially a shortcut for importing matplotlib, numpy etc individually. I discourage this use for beginners, because it hides what is really going on and can be confusing. Explicit imports such as \"`import matplotlib.pyplot as plt`\" make it easier to see where the `plt` symbol is coming from and help to avoid clashes. PyLab can be a useful system when you are experimenting in interactive mode though, because you don't have to type so many import statements." ] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 16 } ], "metadata": {} } ] }