From 1b793826317cdbdd2fdb08ff8a30adf050ea03c6 Mon Sep 17 00:00:00 2001 From: Joe Kington Date: Sun, 21 Jun 2015 22:08:24 -0500 Subject: [PATCH] Overhaul of Part 1 --- ...b-Part1-Figures_Subplots_and_layouts.ipynb | 979 ++++++++++++++++++ AnatomyOfMatplotlib-Part1-pyplot.ipynb | 846 --------------- exercises/1.1-limits.py | 3 - exercises/1.1-subplots_and_basic_plotting.py | 11 + exercises/1.2-legends_and_scaling.py | 15 + exercises/1.2-spines.py | 23 - .../1.3-spines_ticks_and_subplot_spacing.py | 9 + images/exercise_1-1.png | Bin 0 -> 41356 bytes images/exercise_1-2.png | Bin 0 -> 39667 bytes images/exercise_1.3.png | Bin 0 -> 22841 bytes images/figure_axes_axis_labeled.png | Bin 0 -> 185257 bytes solutions/1.1-limits.py | 3 - solutions/1.1-subplots_and_basic_plotting.py | 14 + solutions/1.2-legends_and_scaling.py | 18 + solutions/1.2-spines.py | 12 - .../1.3-spines_ticks_and_subplot_spacing.py | 25 + 16 files changed, 1071 insertions(+), 887 deletions(-) create mode 100644 AnatomyOfMatplotlib-Part1-Figures_Subplots_and_layouts.ipynb delete mode 100644 AnatomyOfMatplotlib-Part1-pyplot.ipynb delete mode 100644 exercises/1.1-limits.py create mode 100644 exercises/1.1-subplots_and_basic_plotting.py create mode 100644 exercises/1.2-legends_and_scaling.py delete mode 100644 exercises/1.2-spines.py create mode 100644 exercises/1.3-spines_ticks_and_subplot_spacing.py create mode 100644 images/exercise_1-1.png create mode 100644 images/exercise_1-2.png create mode 100644 images/exercise_1.3.png create mode 100644 images/figure_axes_axis_labeled.png delete mode 100644 solutions/1.1-limits.py create mode 100644 solutions/1.1-subplots_and_basic_plotting.py create mode 100644 solutions/1.2-legends_and_scaling.py delete mode 100644 solutions/1.2-spines.py create mode 100644 solutions/1.3-spines_ticks_and_subplot_spacing.py diff --git a/AnatomyOfMatplotlib-Part1-Figures_Subplots_and_layouts.ipynb b/AnatomyOfMatplotlib-Part1-Figures_Subplots_and_layouts.ipynb new file mode 100644 index 0000000..fd48d10 --- /dev/null +++ b/AnatomyOfMatplotlib-Part1-Figures_Subplots_and_layouts.ipynb @@ -0,0 +1,979 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false, + "slideshow": { + "slide_type": "-" + } + }, + "outputs": [], + "source": [ + "# Let printing work the same in Python 2 and 3\n", + "from __future__ import print_function\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "-" + } + }, + "source": [ + "# Matplotlib\n", + "## Introduction\n", + "Matplotlib is a library for producing publication-quality figures. mpl (for short) was designed from the bottom-up to serve dual-purposes. First, to allow for interactive, cross-platform control of figures and plots, and second, to make it very easy to produce static raster or vector graphics files without the need for any GUIs. Furthermore, mpl -- much like Python itself -- gives the developer complete control over the appearance of their plots, while still being very usable through a powerful defaults system.\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Online Documentation\n", + "The [matplotlib.org](http://matplotlib.org) project website is the primary online resource for the library's documentation. It contains [examples](http://matplotlib.org/examples/index.html), [FAQs](http://matplotlib.org/faq/index.html), [API documentation](http://matplotlib.org/api/index.html), and, most importantly, the [gallery](http://matplotlib.org/gallery.html).\n", + "\n", + "## Gallery\n", + "Many users of matplotlib are often faced with the question, \"I want to make a plot that has X with Y in the same figure, but it needs to look like Z\". Good luck getting an answer from a web search with that query. This is why the [gallery](http://matplotlib.org/gallery.html) is so useful, because it showcases the variety of ways one can make plots. Browse through the gallery, click on any figure that has pieces of what you want to see the code that generated it. Soon enough, you will be like a chef, mixing and matching components to produce your masterpiece!\n", + "\n", + "As always, if you have a new and interesting plot that demonstrates a feature of matplotlib, feel free to submit a well-commented version of the example code for inclusion.\n", + "\n", + "## Mailing Lists and StackOverflow\n", + "When you are just simply stuck, and can not figure out how to get something to work, or just need some hints on how to get started, you will find much of the community at the matplotlib-users [mailing list](http://sourceforge.net/mail/?group_id=80706). This mailing list is an excellent resource of information with many friendly members who just love to help out newcomers. The number one rule to remember with this list is to be persistant. While many questions do get answered fairly quickly, some do fall through the cracks, or the one person who knows the answer isn't available. Therefore, try again with your questions rephrased, or with a plot showing your attempts so far. We love plots, so an image showing what is wrong often gets the quickest responses.\n", + "\n", + "Another community resource is [StackOverflow](http://stackoverflow.com/questions/tagged/matplotlib), so if you need to build up karma points, submit your questions here, and help others out too!\n", + "\n", + "## Github repository\n", + "### Location\n", + "[Matplotlib](https://github.com/matplotlib) is hosted by GitHub.\n", + "\n", + "### Bug Reports and feature requests\n", + "So, you think you found a bug? Or maybe you think some feature is just too difficult to use? Or missing altogether? Submit your bug reports [here](https://github.com/matplotlib/matplotlib/issues) at matplotlib's issue tracker. We even have a process for submitting and discussing Matplotlib Enhancement Proposals ([MEPs](https://github.com/matplotlib/matplotlib/wiki))." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Quick note on \"backends\" and IPython notebooks\n", + "Matplotlib has multiple backends. The backends allow mpl to be used on a variety of platforms with a variety of GUI toolkits (GTK, Qt, Wx, etc.), all of them written so that most of the time, you will not need to care which backend you are using. " + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1.4.3\n", + "Qt4Agg\n" + ] + } + ], + "source": [ + "import matplotlib\n", + "print(matplotlib.__version__)\n", + "print(matplotlib.get_backend())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Normally we wouldn't need to think about this too much, but IPython/Jupyter notebooks behave a touch differently than \"normal\" python.\n", + "\n", + "Inside of IPython, it's often easiest to use the IPython ``nbagg`` backend. This allows plots to be displayed and interacted with inline in the browser in an IPython notebook. Otherwise, figures will pop up in a separate gui window.\n", + "\n", + "We can do this in two ways:\n", + "\n", + "1. The IPython ``%matplotlib backend_name`` \"magic\" command (or ``plt.ion()``, which behaves similarly)\n", + " - Figures will be shown automatically by IPython, even if you don't call ``plt.show()``.\n", + " \n", + "2. ``matplotlib.use(\"backend_name\")``\n", + " - Figures will only be shown when you call ``plt.show()``.\n", + "\n", + "Here, we'll use the second method for one simple reason: it allows our code to behave the same way regardless of whether we run it inside of an IPython notebook or from the command line. Feel free to use the ``%matplotlib`` magic command if you'd prefer.\n", + "\n", + "One final note: You need to do this before you ``import matplotlib.pyplot``." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "matplotlib.use('nbagg')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# On with the show!\n", + "Matplotlib is a large project and can seem daunting at first. However, by learning the components, it should begin to feel much smaller and more approachable.\n", + "\n", + "###Anatomy of a \"Plot\"\n", + "\n", + "People use \"plot\" to mean many different things. Here, we'll be using a consistent terminology (mirrored by the names of the underlying classes, etc):\n", + "\n", + "\n", + "\n", + "\n", + "The ``Figure`` is the top-level container in this hirearchy. It's the overall window/page that everything is drawn on. You can have multiple independent figures, but they can't contain another figure. However, ``Figure``s can contain multiple ``Axes``. \n", + "\n", + "Most plotting ocurs on an ``Axes``. The axes is effectively the area that we plot data on and any ticks/labels/etc associated with it. Usually we'll set up an axes with a call to ``subplot`` (which places axes on a regular grid), so in most cases we'll deal with here, ``Axes`` and ``Subplot`` are synonymous. We'll be heavily using ``Axes`` instances for plotting, etc, so you'll be seeing a lot of thse.\n", + "\n", + "Each ``Axes`` has an ``XAxis`` and a ``YAxis``. These contain the ticks, tick locations, labels, etc. In this tutorial, we'll mostly control ticks, tick labels, and data limits through other mechanisms, so we won't touch the individual ``Axis`` part of things much at all. However, it's worth mentioning here to explain where the term ``Axes`` comes from. Each ``Axes`` has two ``Axis`` instances.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "###Getting Started\n", + "\n", + "In this tutorial, we'll use the following import statements. These abbreviations are semi-standardized, and most tutorials, other scientific python code, etc that you'll find elsewhere will use them as well." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Figures\n", + "\n", + "Now let's create a figure..." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig = plt.figure()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Awww, nothing happened! This is because by default mpl will not show anything until told to do so, as we mentioned earlier in the \"backend\" discussion.\n", + "\n", + "Instead, we'll need to call ``plt.show()``" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Great, a blank figure! Not terribly useful yet.\n", + "\n", + "However, while we're on the topic, you can control the size of the figure through the ``figsize`` argument, which expects a tuple of ``(width, height)`` in inches. \n", + "\n", + "A really useful utility function is [`figaspect`](http://matplotlib.org/api/figure_api.html?highlight=figaspect#matplotlib.figure.figaspect)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Twice as tall as it is wide:\n", + "fig = plt.figure(figsize=plt.figaspect(2.0))\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Axes\n", + "\n", + "All plotting is done with respect to an [`Axes`](http://matplotlib.org/api/axes_api.html#matplotlib.axes.Axes). An *Axes* is made up of [`Axis`](http://matplotlib.org/api/axis_api.html#matplotlib.axis.Axis) objects and many other things. An *Axes* object must belong to a *Figure* (and only one *Figure*). Most commands you will ever issue will be with respect to this *Axes* object.\n", + "\n", + "Typically, you'll set up a `Figure`, and then add an `Axes` to it. \n", + "\n", + "You can use `fig.add_axes`, but in most cases, you'll find that adding a subplot will fit your needs perfectly. (Again a \"subplot\" is just an axes on a grid system.) " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig = plt.figure()\n", + "ax = fig.add_subplot(111) # We'll explain the \"111\" later. Basically, 1 row and 1 column.\n", + "ax.set(xlim=[0.5, 4.5], ylim=[-2, 8], title='An Example Axes', ylabel='Y-Axis', xlabel='X-Axis')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "Notice the call to ``set``. Matplotlib's objects typically have lots of \"explicit setters\" -- in other words, functions that start with ``set_`` and control a particular option. (This dates from a time before Python's ``property``.) \n", + "\n", + "To demonstrate this (and as an example of IPython's tab-completion), try typing `ax.set_` in a code cell, then hit the `` key. You'll see a long list of `Axes` methods that start with `set`.\n", + "\n", + "For example, we could have written the third line above as:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "ax.set_xlim([0.5, 4.5])\n", + "ax.set_ylim([-2, 8])\n", + "ax.set_title('An Example Axes')\n", + "ax.set_ylabel('Y-Axis')\n", + "ax.set_xlabel('X-Axis')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Clearly this can get repitive quickly. Therefore, Matplotlib's `set` method can be very handy. It takes each kwarg you pass it and tries to call the corresponding \"setter\". For example, `foo.set(bar='blah')` would call `foo.set_bar('blah')`.\n", + "\n", + "Note that the `set` method doesn't just apply to `Axes`; it applies to more-or-less all matplotlib objects.\n", + "\n", + "However, there are cases where you'll want to use things like `ax.set_xlabel('Some Label', size=25)` to control other options for a particular function." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "###Basic Plotting\n", + "\n", + "Most plotting happens on an `Axes`. Therefore, if you're plotting something on an axes, then you'll use one of its methods.\n", + "\n", + "We'll talk about different plotting methods in more depth in the next section. For now, let's focus on two methods: `plot` and `scatter`.\n", + "\n", + "`plot` draws points with lines connecting them. `scatter` draws unconnected points, optionally scaled or colored by additional variables.\n", + "\n", + "As a basic example:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig = plt.figure()\n", + "ax = fig.add_subplot(111)\n", + "ax.plot([1, 2, 3, 4], [10, 20, 25, 30], color='lightblue', linewidth=3)\n", + "ax.scatter([0.3, 3.8, 1.2, 2.5], [11, 25, 9, 26], marker='^', color='darkgreen')\n", + "ax.set_xlim(0.5, 4.5)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "###Axes methods vs. pyplot\n", + "\n", + "Interestingly, just about all methods of an *Axes* object exist as a function in the *pyplot* module (and vice-versa). For example, when calling `plt.xlim(1, 10)`, *pyplot* calls `ax.set_xlim(1, 10)` on whichever *Axes* is \"current\". Here is an equivalent version of the above example using just pyplot." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "plt.plot([1, 2, 3, 4], [10, 20, 25, 30], color='lightblue', linewidth=3)\n", + "plt.scatter([0.3, 3.8, 1.2, 2.5], [11, 25, 9, 26], marker='^', color='darkgreen')\n", + "plt.xlim(0.5, 4.5)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Much cleaner, and much clearer! So, why will most of my examples not follow the pyplot approach? Because [PEP20](http://www.python.org/dev/peps/pep-0020/) \"The Zen of Python\" says:\n", + "\n", + "\"Explicit is better than implicit\"\n", + "\n", + "While very simple plots, with short scripts would benefit from the conciseness of the pyplot implicit approach, when doing more complicated plots, or working within larger scripts, you will want to explicitly pass around the *Axes* and/or *Figure* object to operate upon.\n", + "\n", + "The advantage of keeping which axes we're working with very clear in our code will become more obvious when we start to have multiple axes in one figure." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Multiple Axes\n", + "\n", + "We've mentioned before that a figure can have more than one `Axes` on it. If you want your axes to be on a regular grid system, then it's easiest to use `plt.subplots(...)` to create a figure and add the axes to it automatically.\n", + "\n", + "For example:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig, axes = plt.subplots(nrows=2, ncols=2)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "`plt.subplots(...)` created a new figure and added 4 subplots to it. The `axes` object that was returned is a 2D numpy object array. Each item in the array is one of the subplots. They're laid out as you see them on the figure. \n", + "\n", + "Therefore, when we want to work with one of these axes, we can index the `axes` array and use that item's methods.\n", + "\n", + "For example:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig, axes = plt.subplots(nrows=2, ncols=2)\n", + "axes[0,0].set(title='Upper Left')\n", + "axes[0,1].set(title='Upper Right')\n", + "axes[1,0].set(title='Lower Left')\n", + "axes[1,1].set(title='Lower Right')\n", + "\n", + "# To iterate over all items in a multidimensional numpy array, use the `flat` attribute\n", + "for ax in axes.flat:\n", + " # Remove all xticks and yticks...\n", + " ax.set(xticks=[], yticks=[])\n", + " \n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "One really nice thing about `plt.subplots()` is that when it's called with no arguments, it creates a new figure with a single subplot. \n", + "\n", + "Any time you see something like\n", + "\n", + "```\n", + "fig = plt.figure()\n", + "ax = fig.add_subplot(111)\n", + "```\n", + "\n", + "You can replace it with:\n", + "\n", + "```\n", + "fig, ax = plt.subplots()\n", + "```\n", + "\n", + "We'll be using that approach for the rest of the examples. It's much cleaner. \n", + "\n", + "However, keep in mind that we're still creating a figure and adding axes to it. We we start making plot layouts that can't be described by `subplots`, we'll go back to creating the figure first and then adding axes to it one-by-one." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Quick Exercise: Exercise 1.1\n", + "--------------\n", + "\n", + "Let's use some of what we've been talking about. Can you reproduce this figure?\n", + "\n", + "\n", + "\n", + "Here's the data and some code to get you started." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "\n", + "# Our data...\n", + "x = np.linspace(0, 10, 100)\n", + "y1, y2, y3 = np.cos(x), np.cos(x + 1), np.cos(x + 2)\n", + "names = ['Signal 1', 'Signal 2', 'Signal 3']\n", + "\n", + "# Can you figure out what to do next to plot x vs y1, y2, and y3?" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Limits and autoscaling\n", + "By default, matplotlib will attempt to determine limits for you that encompasses all the data you have plotted. This is the \"autoscale\" feature. For line and image plots, the limits are not padded, while plots such as scatter plots and bar plots are given some padding." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig, (ax1, ax2) = plt.subplots(nrows=1, ncols=2, figsize=plt.figaspect(0.5))\n", + "\n", + "ax1.plot([-10, -5, 0, 5, 10, 15], [-1.2, 2, 3.5, -0.3, -4, 1])\n", + "ax2.scatter([-10, -5, 0, 5, 10, 15], [-1.2, 2, 3.5, -0.3, -4, 1])\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "###`ax.margins(...)`\n", + "\n", + "If you'd like to add a bit of \"padding\" to a plot, `ax.margins()` is a very handy way to do so. Instead of choosing \"even-ish\" numbers as min/max ranges for each axis, `margins` will make matplotlib calculate the min/max of each axis by taking the range of the data and adding on a fractional amount of padding.\n", + "\n", + "As an example: (Note that the ranges for the scatter example actually shrink slightly in this case)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig, (ax1, ax2) = plt.subplots(1, 2, figsize=plt.figaspect(0.5))\n", + "\n", + "ax1.plot([-10, -5, 0, 5, 10, 15], [-1.2, 2, 3.5, -0.3, -4, 1])\n", + "ax2.scatter([-10, -5, 0, 5, 10, 15], [-1.2, 2, 3.5, -0.3, -4, 1])\n", + "\n", + "ax1.margins(x=0.0, y=0.1) # 10% padding in the y-direction only\n", + "ax2.margins(0.05) # 5% padding in all directions\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `ax.axis(...)`\n", + "\n", + "The `ax.axis(...)` method is a convienent way of controlling the axes limits and enabling/disabling autoscaling.\n", + "\n", + "If you ever need to get all of the current plot limits, calling `ax.axis()` with no arguments will return the xmin/max/etc:\n", + "\n", + " xmin, xmax, ymin, ymax = ax.axis()\n", + " \n", + "If you'd like to manually set all of the x/y limits at once, you can use `ax.axis` for this, as well (note that we're calling it with a single argument that's a sequence, not 4 individual arguments):\n", + "\n", + " ax.axis([xmin, xmax, ymin, ymax])\n", + " \n", + "However, you'll probably use `axis` mostly with either the `\"tight\"` or `\"equal\"` options. There are other options as well; see the documentation for full details. In a nutshell, though:\n", + "\n", + " * *tight*: Set axes limits to the exact range of the data\n", + " * *equal*: Set axes scales such that one cm/inch in the y-direction is the same as one cm/inch in the x-direction. (In matplotlib terms, this sets the aspect ratio of the plot to 1. That _doesn't_ mean that the axes \"box\" will be square, though!)\n", + " \n", + "And as an example:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig, axes = plt.subplots(nrows=3)\n", + "\n", + "for ax in axes:\n", + " ax.plot([-10, -5, 0, 5, 10, 15], [-1.2, 2, 3.5, -0.3, -4, 1])\n", + "\n", + "axes[0].set_title('Normal Autoscaling', y=0.7, x=0.8)\n", + "\n", + "axes[1].set_title('ax.axis(\"tight\")', y=0.7, x=0.8)\n", + "axes[1].axis('tight')\n", + "\n", + "axes[2].set_title('ax.axis(\"equal\")', y=0.7, x=0.8)\n", + "axes[2].axis('equal')\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Manually setting only one limit\n", + "\n", + "Another trick with limits is to specify only half of a limit. When done **after** a plot is made, this has the effect of allowing the user to anchor a limit while letting matplotlib autoscale the rest of it." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Good -- setting limits after plotting is done\n", + "fig, (ax1, ax2) = plt.subplots(1, 2, figsize=plt.figaspect(0.5))\n", + "ax1.plot([-10, -5, 0, 5, 10, 15], [-1.2, 2, 3.5, -0.3, -4, 1])\n", + "ax2.scatter([-10, -5, 0, 5, 10, 15], [-1.2, 2, 3.5, -0.3, -4, 1])\n", + "ax1.set_ylim(bottom=-10)\n", + "ax2.set_xlim(right=25)\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# Bad -- Setting limits before plotting is done\n", + "fig, (ax1, ax2) = plt.subplots(1, 2, figsize=plt.figaspect(0.5))\n", + "ax1.set_ylim(bottom=-10)\n", + "ax2.set_xlim(right=25)\n", + "ax1.plot([-10, -5, 0, 5, 10, 15], [-1.2, 2, 3.5, -0.3, -4, 1])\n", + "ax2.scatter([-10, -5, 0, 5, 10, 15], [-1.2, 2, 3.5, -0.3, -4, 1])\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Legends\n", + "\n", + "As you've seen in some of the examples so far, the X and Y axis can also be labeled, as well as the subplot itself via the title. \n", + "\n", + "However, another thing you can label is the line/point/bar/etc that you plot. You can provide a label to your plot, which allows your legend to automatically build itself. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig, ax = plt.subplots()\n", + "ax.plot([1, 2, 3, 4], [10, 20, 25, 30], label='Philadelphia')\n", + "ax.plot([1, 2, 3, 4], [30, 23, 13, 4], label='Boston')\n", + "ax.set(ylabel='Temperature (deg C)', xlabel='Time', title='A tale of two cities')\n", + "ax.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Legends will go in the upper right corner by default (you can control this with the `loc` kwarg), but if you'd prefer matplotlib to choose a location to avoid overlapping plot elements as much as possible, you can pass in:\n", + "\n", + " ax.legend(loc=\"best\")\n", + " \n", + "Also, if you happen to be plotting something that you do not want to appear in the legend, just set the label to \"\\_nolegend\\_\". \n", + "\n", + "On a side note, we're going to briefly introduce the `ax.bar` plotting method here. Unsurprisingly, it draws bars (vertical, by default)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig, ax = plt.subplots(1, 1)\n", + "ax.bar([1, 2, 3, 4], [10, 20, 25, 30], label=\"Foobar\", align='center', color='lightblue')\n", + "ax.plot([1, 2, 3, 4], [10, 20, 25, 30], color='darkred', label=\"_nolegend_\", marker='o')\n", + "ax.legend(loc='best')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Exercise 1.2\n", + "\n", + "Once again, let's use a bit of what we've learned. Try to reproduce the following figure:\n", + "\n", + "\n", + "\n", + "Hint: You'll need to combine `ax.axis(...)` and `ax.margins(...)`. Here's the data and some code to get you started:" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "\n", + "t = np.linspace(0, 2 * np.pi, 150)\n", + "x1, y1 = np.cos(t), np.sin(t)\n", + "x2, y2 = 2 * x1, 2 * y1\n", + "\n", + "colors = ['darkred', 'darkgreen']\n", + "\n", + "# Try to plot the two circles, scale the axes as shown and add a legend\n", + "# Hint: it's easiest to combine `ax.axis(...)` and `ax.margins(...)` to scale the axes" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Dealing with the boundaries: Layout, ticks, spines, etc\n", + "\n", + "One key thing we haven't talked about yet is all of the annotation on the outside of the axes, the borders of the axes, and how to adjust the amount of space around the axes. We won't go over every detail, but this next section should give you a reasonable working knowledge of how to configure what happens around the edges of your axes.\n", + "\n", + "## Ticks, Tick Lines, Tick Labels and Tickers\n", + "This is a constant source of confusion:\n", + "\n", + "* A Tick is the *location* of a Tick Label.\n", + "* A Tick Line is the line that denotes the location of the tick.\n", + "* A Tick Label is the text that is displayed at that tick.\n", + "* A [`Ticker`](http://matplotlib.org/api/ticker_api.html#module-matplotlib.ticker) automatically determines the ticks for an Axis and formats the tick labels.\n", + "\n", + "[`tick_params()`](http://matplotlib.org/api/axes_api.html#matplotlib.axes.Axes.tick_params) is often used to help configure your tickers." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig, ax = plt.subplots()\n", + "ax.plot([1, 2, 3, 4], [10, 20, 25, 30])\n", + "\n", + "# Manually set ticks and tick labels *on the x-axis* (note ax.xaxis.set, not ax.set!)\n", + "ax.xaxis.set(ticks=range(1, 5), ticklabels=[3, 100, -12, \"foo\"]) \n", + "\n", + "# Make the y-ticks a bit longer and go both in and out...\n", + "ax.tick_params(axis='y', direction='inout', length=10)\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "A commonly-asked question is \"How do I plot non-numerical categories?\"\n", + " \n", + "The easiest way to do this is to \"fake\" the x-values and then change the tick labels to reflect the category.\n", + "\n", + "For example:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "data = [('apples', 2), ('oranges', 3), ('peaches', 1)]\n", + "fruit, value = zip(*data)\n", + "\n", + "fig, ax = plt.subplots()\n", + "x = np.arange(len(fruit))\n", + "ax.bar(x, value, align='center', color='gray')\n", + "ax.set(xticks=x, xticklabels=fruit)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Subplot Spacing\n", + "The spacing between the subplots can be adjusted using [`fig.subplots_adjust()`](http://matplotlib.org/api/pyplot_api.html?#matplotlib.pyplot.subplots_adjust). Play around with the example below to see how the different arguments affect the spacing." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig, axes = plt.subplots(2, 2, figsize=(9, 9))\n", + "fig.subplots_adjust(wspace=0.5, hspace=0.3,\n", + " left=0.125, right=0.9,\n", + " top=0.9, bottom=0.1)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "A common \"gotcha\" is that the labels are not automatically adjusted to avoid overlapping those of another subplot. Matplotlib does not currently have any sort of robust layout engine, as it is a design decision to minimize the amount of \"magic\" that matplotlib performs. We intend to let users have complete, 100% control over their plots. LaTeX users would be quite familiar with the amount of frustration that can occur with placement of figures in their documents.\n", + "\n", + "That said, there have been some efforts to develop tools that users can use to help address the most common compaints. The \"[Tight Layout](http://matplotlib.org/users/tight_layout_guide.html)\" feature, when invoked, will attempt to resize margins, and subplots so that nothing overlaps.\n", + "\n", + "If you have multiple subplots, and want to avoid overlapping titles/axis labels/etc, `fig.tight_layout` is a great way to do so:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "def example_plot(ax):\n", + " ax.plot([1, 2])\n", + " ax.set_xlabel('x-label', fontsize=16)\n", + " ax.set_ylabel('y-label', fontsize=8)\n", + " ax.set_title('Title', fontsize=24)\n", + "\n", + "fig, ((ax1, ax2), (ax3, ax4)) = plt.subplots(nrows=2, ncols=2)\n", + "example_plot(ax1)\n", + "example_plot(ax2)\n", + "example_plot(ax3)\n", + "example_plot(ax4)\n", + "\n", + "# Try enabling fig.tight_layout to compare...\n", + "#fig.tight_layout()\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## GridSpec\n", + "Under the hood, matplotlib utilizes [`GridSpec`](http://matplotlib.org/api/gridspec_api.html) to lay out the subplots. While `plt.subplots()` is fine for simple cases, sometimes you will need more advanced subplot layouts. In such cases, you should use GridSpec directly. GridSpec is outside the scope of this tutorial, but it is handy to know that it exists. [Here](http://matplotlib.org/users/gridspec.html) is a guide on how to use it." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Sharing axes\n", + "There will be times when you want to have the x axis and/or the y axis of your subplots to be \"shared\". Sharing an axis means that the axis in one or more subplots will be tied together such that any change in one of the axis changes all of the other shared axes. This works very nicely with autoscaling arbitrary datasets that may have overlapping domains. Furthermore, when interacting with the plots (panning and zooming), all of the shared axes will pan and zoom automatically." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig, (ax1, ax2) = plt.subplots(1, 2, sharex=True, sharey=True)\n", + "ax1.plot([1, 2, 3, 4], [1, 2, 3, 4])\n", + "ax2.plot([3, 4, 5, 6], [6, 5, 4, 3])\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## \"Twinning\" axes\n", + "Sometimes one may want to overlay two plots on the same axes, but the scales may be entirely different. You can simply treat them as separate plots, but then twin them." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig, ax1 = plt.subplots(1, 1)\n", + "ax1.plot([1, 2, 3, 4], [1, 2, 3, 4])\n", + "ax2 = ax1.twinx()\n", + "ax2.scatter([1, 2, 3, 4], [60, 50, 40, 30])\n", + "ax1.set_xlabel('X')\n", + "ax1.set_ylabel('First scale')\n", + "ax2.set_ylabel('Other scale')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Axis Spines\n", + "Spines are the axis lines for a plot. Each plot can have four spines: \"top\", \"bottom\", \"left\" and \"right\". By default, they are set so that they frame the plot, but they can be individually positioned and configured via the [`set_position()`](http://matplotlib.org/api/spines_api.html#matplotlib.spines.Spine.set_position) method of the spine. Here are some different configurations." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig, ax = plt.subplots()\n", + "ax.plot([-2, 2, 3, 4], [-10, 20, 25, 5])\n", + "ax.spines['top'].set_visible(False)\n", + "ax.xaxis.set_ticks_position('bottom') # no ticklines at the top\n", + "ax.spines['right'].set_visible(False)\n", + "ax.yaxis.set_ticks_position('left') # no ticklines on the right\n", + "\n", + "# \"outward\"\n", + "# Move the two remaining spines \"out\" away from the plot by 10 points\n", + "ax.spines['bottom'].set_position(('outward', 10))\n", + "ax.spines['left'].set_position(('outward', 10))\n", + "\n", + "# \"data\"\n", + "# Have the spines stay intersected at (0,0)\n", + "#ax.spines['bottom'].set_position(('data', 0))\n", + "#ax.spines['left'].set_position(('data', 0))\n", + "\n", + "# \"axes\"\n", + "# Have the two remaining spines placed at a fraction of the axes\n", + "#ax.spines['bottom'].set_position(('axes', 0.75))\n", + "#ax.spines['left'].set_position(('axes', 0.25))\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Exercise 1.3\n", + "\n", + "This one is a bit trickier. Once again, try to reproduce the figure below:\n", + "\n", + "\n", + "\n", + "\n", + "A few key hints: The two subplots have no vertical space between them (this means that the `hspace` is `0`). Note that the bottom spine is at 0 in data coordinates and the tick lines are missing from the left and top sides.\n", + "\n", + "Because you're going to be doing a lot of the same things to both subplots, to avoid repitive code you might consider writing a function that takes an `Axes` object and makes the spine changes, etc to it. \n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%load exercises/1.2-spines.py" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.10" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/AnatomyOfMatplotlib-Part1-pyplot.ipynb b/AnatomyOfMatplotlib-Part1-pyplot.ipynb deleted file mode 100644 index 023072a..0000000 --- a/AnatomyOfMatplotlib-Part1-pyplot.ipynb +++ /dev/null @@ -1,846 +0,0 @@ -{ - "metadata": { - "name": "", - "signature": "sha256:6302a88e9db31d8d9cfae2b0103e57708f94b802a561930d11298cd246e9d590" - }, - "nbformat": 3, - "nbformat_minor": 0, - "worksheets": [ - { - "cells": [ - { - "cell_type": "code", - "collapsed": false, - "input": [ - "# Let printing work the same in Python 2 and 3\n", - "from __future__ import print_function\n", - "# Turning on inline plots -- just for use in ipython notebooks.\n", - "%matplotlib inline" - ], - "language": "python", - "metadata": { - "slideshow": { - "slide_type": "-" - } - }, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "-" - } - }, - "source": [ - "# Matplotlib\n", - "## Introduction\n", - "Matplotlib is a library for producing publication-quality figures. mpl (for short) was designed from the bottom-up to serve dual-purposes. First, to allow for interactive, cross-platform control of figures and plots, and second, to make it very easy to produce static raster or vector graphics files without the need for any GUIs. Furthermore, mpl -- much like Python itself -- gives the developer complete control over the appearance of their plots, while still being very usable through a powerful defaults system.\n", - "\n", - "## Online Documentation\n", - "The [matplotlib.org](http://matplotlib.org) project website is the primary online resource for the library's documentation. It contains [examples](http://matplotlib.org/examples/index.html), [FAQs](http://matplotlib.org/faq/index.html), [API documentation](http://matplotlib.org/api/index.html), and, most importantly, the [gallery](http://matplotlib.org/gallery.html).\n", - "\n", - "## Gallery\n", - "Many users of matplotlib are often faced with the question, \"I want to make a plot that has X with Y in the same figure, but it needs to look like Z\". Good luck getting an answer from a web search with that query. This is why the [gallery](http://matplotlib.org/gallery.html) is so useful, because it showcases the variety of ways one can make plots. Browse through the gallery, click on any figure that has pieces of what you want to see the code that generated it. Soon enough, you will be like a chef, mixing and matching components to produce your masterpiece!\n", - "\n", - "As always, if you have a new and interesting plot that demonstrates a feature of matplotlib, feel free to submit a well-commented version of the example code for inclusion.\n", - "\n", - "## Mailing Lists and StackOverflow\n", - "When you are just simply stuck, and can not figure out how to get something to work, or just need some hints on how to get started, you will find much of the community at the matplotlib-users [mailing list](http://sourceforge.net/mail/?group_id=80706). This mailing list is an excellent resource of information with many friendly members who just love to help out newcomers. The number one rule to remember with this list is to be persistant. While many questions do get answered fairly quickly, some do fall through the cracks, or the one person who knows the answer isn't available. Therefore, try again with your questions rephrased, or with a plot showing your attempts so far. We love plots, so an image showing what is wrong often gets the quickest responses.\n", - "\n", - "Another community resource is [StackOverflow](http://stackoverflow.com/questions/tagged/matplotlib), so if you need to build up karma points, submit your questions here, and help others out too!\n", - "\n", - "# Github repository\n", - "## Location\n", - "[Matplotlib](https://github.com/matplotlib) is hosted by GitHub.\n", - "\n", - "## Bug Reports and feature requests\n", - "So, you think you found a bug? Or maybe you think some feature is just too difficult to use? Or missing altogether? Submit your bug reports [here](https://github.com/matplotlib/matplotlib/issues) at matplotlib's issue tracker. We even have a process for submitting and discussing Matplotlib Enhancement Proposals ([MEPs](https://github.com/matplotlib/matplotlib/wiki)).\n", - "\n", - "## What is this \"backend\" thing I keep hearing about?\n", - "Matplotlib has multiple backends. The backends allow mpl to be used on a variety of platforms with a variety of GUI toolkits (GTK, Qt, Wx, etc.), all of them written so that most of the time, you will not need to care which backend you are using. However, bugs do occur, and so two of the most important pieces of information you can provide in a bug report is which version of matplotlib, and which backend." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "import matplotlib\n", - "print(matplotlib.__version__)\n", - "print(matplotlib.get_backend())" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# On with the show!\n", - "Matplotlib is a large project and can seem daunting at first. However, by learning the components, it should begin to feel much smaller and more approachable.\n", - "\n", - "We start with the most important import statements you will ever need for matplotlib" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "import numpy as np\n", - "import matplotlib.pyplot as plt" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# pyplot\n", - "The pyplot module is where everything in matplotlib comes together. It is the launching point for (1) preparing your figures, (2) making plots, and (3) doing any modifications and decorations you want. It all comes together here. Let us take a look at those three catagories of pyplot functions.\n", - "\n", - "## Plotting Preparation\n", - "\n", - "Function | Description \n", - ":-----------------|:----------------------------------------------------------\n", - "`autoscale` | Autoscale the axis view to the data (toggle).\n", - "`axes` | Add an axes to the figure. \n", - "`axis` | Convenience method to get or set axis properties.\n", - "`cla` | Clear the current axes. \n", - "`clf` | Clear the current figure. \n", - "`clim` | Set the color limits of the current image. \n", - "`delaxes` | Remove an axes from the current figure. \n", - "`locator_params` | Control behavior of tick locators. \n", - "`margins` | Set or retrieve autoscaling margins.\n", - "`figure` | Creates a new figure. \n", - "`gca` | Return the current axis instance. \n", - "`gcf` | Return a reference to the current figure. \n", - "`gci` | Get the current colorable artist. \n", - "`hold` | Set the hold state. \n", - "`ioff` | Turn interactive mode off. \n", - "`ion` | Turn interactive mode on. \n", - "`ishold` | Return the hold status of the current axes. \n", - "`isinteractive` | Return status of interactive mode. \n", - "`rc` | Set the current rc params. \n", - "`rc_context` | Return a context manager for managing rc settings. \n", - "`rcdefaults` | Restore the default rc params. \n", - "`savefig` | Save the current figure. \n", - "`sca` | Set the current Axes instance. \n", - "`sci` | Set the current image. \n", - "`set_cmap` | Set the default colormap\n", - "`setp` | Set a property on an artist object\n", - "`show` | Display a figure\n", - "`subplot` | Return a subplot axes positioned by the given grid definition. \n", - "`subplot2grid` | Create a subplot in a grid. \n", - "`subplot_tool` | Launch a subplot tool window for a figure. \n", - "`subplots` | Create a figure with a set of subplots already made. \n", - "`subplots_adjust` | Tune the subplot layout. \n", - "`switch_backend` | Switch the default backend. \n", - "`tick_params` | Change the appearance of ticks and tick labels. \n", - "`ticklabel_format`| Change the ScalarFormatter used by default for linear axes. \n", - "`tight_layout` | Automatically adjust subplot parameters to give specified padding. \n", - "`xkcd` | Turns on [XKCD](http://xkcd.com/) sketch-style drawing mode. \n", - "`xlabel` | Set the *x* axis label of the current axis. \n", - "`xlim` | Get or set the *x* limits of the current axes. \n", - "`xscale` | Set the scaling of the *x*-axis. \n", - "`xticks` | Get or set the *x*-limits of the current tick locations and labels. \n", - "`ylabel` | Set the *y* axis label of the current axis. \n", - "`ylim` | Get or set the *y*-limits of the current axes. \n", - "`yscale` | Set the scaling of the *y*-axis. \n", - "`yticks` | Get or set the *y*-limits of the current tick locations and labels. \n", - "\n", - "## Plotting Functions\n", - "\n", - "Function | Description\n", - ":-----------------|:--------------------------------------------\n", - "`acorr` | Plot the autocorrelation of *x*\n", - "`bar` | Make a bar plot\n", - "`barbs` | Plot a 2-D field of barbs\n", - "`barh` | Make a horizontal bar plot\n", - "`boxplot` | Make a box and whisker plot\n", - "`broken_barh` | Plot horizontal bars\n", - "`cohere` | Plot the coherence between *x* and *y*\n", - "`contour` | Plot contours\n", - "`contourf` | Plot filled contours\n", - "`csd` | Plot cross-spectral density\n", - "`errorbar` | Plot an errorbar graph\n", - "`eventplot` | Plot identical parallel lines at specific positions\n", - "`fill` | Plot filled polygons\n", - "`fill_between` | Make filled polygons between two curves\n", - "`fill_betweenx` | Make filled polygons between two horizontal curves\n", - "`hexbin` | Make a hexagonal binning plot\n", - "`hist` | Plot a histogram\n", - "`hist2d` | Make a 2D histogram plot\n", - "`imshow` | Display an image on the axes\n", - "`loglog` | Make a plot with log scaling on both the *x* and *y* axis\n", - "`matshow` | Display an array as a matrix in a new figure window\n", - "`pcolor` | Create a pseudocolor plot of a 2-D array\n", - "`pcolormesh` | Plot a quadrilateral mesh\n", - "`pie` | Plot a pie chart\n", - "`plot` | Plot lines and/or markers\n", - "`plot_date` | Plot with data with dates\n", - "`polar` | Make a polar plot\n", - "`psd` | Plot the power spectral density\n", - "`quiver` | Plot a 2-D field of arrows\n", - "`scatter` | Make a scatter plot of x vs y\n", - "`semilogx` | Make a plot with log scaling on the *x* axis \n", - "`semilogy` | Make a plot with log scaling on the *y* axis\n", - "`specgram` | Plot a spectrogram\n", - "`spy` | Plot the sparsity pattern on a 2-D array\n", - "`stackplot` | Draws a stacked area plot\n", - "`stem` | Create a stem plot\n", - "`step` | Make a step plot\n", - "`streamplot` | Draws streamlines of a vector flow\n", - "`tricontour` | Draw contours on an unstructured triangular grid\n", - "`tricontourf` | Draw filled contours on an unstructured triangular grid\n", - "`tripcolor` | Create a pseudocolor plot of an unstructured triangular grid\n", - "`triplot` | Draw a unstructured triangular grid as lines and/or markers\n", - "`xcorr` | Plot the cross-correlation between *x* and *y*\n", - "\n", - "## Plot modifiers\n", - "\n", - "Function | Description \n", - ":-----------------|:---------------------------------------------------------------------\n", - "`annotate` | Create an annotation: a piece of text referring to a data point\n", - "`arrow` | Add an arrow to the axes\n", - "`axhline` | Add a horizontal line across the axis\n", - "`axhspan` | Add a horizontal span (rectangle) across the axis\n", - "`axvline` | Add a vertical line across the axes\n", - "`axvspan` | Add a vertical span (rectangle) across the axes\n", - "`box` | Turn the axes box on or off\n", - "`clabel` | Label a contour plot\n", - "`colorbar` | Add a colorbar to a plot\n", - "`grid` | Turn the axes grids on or off\n", - "`hlines` | Plot horizontal lines\n", - "`legend` | Place a legend on the current axes\n", - "`minorticks_off` | Remove minor ticks from the current plot\n", - "`minorticks_on` | Display minor ticks on the current plot\n", - "`quiverkey` | Add a key to a quiver plot\n", - "`rgrids` | Get or set the radial gridlines on a polar plot\n", - "`suptitle` | Add a centered title to the figure\n", - "`table` | Add a table to the current axes\n", - "`text` | Add text to the axes\n", - "`title` | Set a title of the current axes\n", - "`vlines` | Plot vertical lines\n", - "`xlabel` | Set the *x* axis label of the current axis\n", - "`ylabel` | Set the *y* axis label of the current axis" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Figure\n", - "## Introduction\n", - "All plotting is done through the [`Figure`](http://matplotlib.org/api/figure_api.html#matplotlib.figure.Figure) object. You can create as many figures as you need. Figures can't do much by themselves, but no plotting can happen without them. They are, literally, the \"canvas\" of your plot." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "fig = plt.figure()" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Awww, nothing happened! This is because by default mpl will not show anything until told to do so. In other words, the \"interactive mode\" is turned off. This is very useful for scripting where we would not ever want to see the intermediate results. For those who wishes to experiment and want to see their plot as they issue commands, there is the \"plt.ion()\" command they can issue before creating their first figure of their session. For the purpoase of this tutorial, we will leave interactivity off.\n", - "\n", - "## Figure properties\n", - "* figsize : tuple of integers, width, height in inches.\n", - " \n", - "* dpi : integer, esolution of the figure in dots per inch." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "fig = plt.figure(figsize=(10, 4))\n", - "fig.gca() # needed for the ipython-inline to display anything\n", - "plt.show()" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "A really useful utility function is [`figaspect`](http://matplotlib.org/api/figure_api.html?highlight=figaspect#matplotlib.figure.figaspect)" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "# Twice as tall\n", - "fig = plt.figure(figsize=plt.figaspect(2.0))\n", - "fig.gca()\n", - "plt.show()" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Breakdown of a figure\n", - "Open the file \"plot_demo.svg\" included with this notebook in a new tab." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Axes\n", - "All plotting is done with respect to an [`Axes`](http://matplotlib.org/api/axes_api.html#matplotlib.axes.Axes). An *Axes* is made up of [`Axis`](http://matplotlib.org/api/axis_api.html#matplotlib.axis.Axis) objects and many other things. An *Axes* object must belong to a *Figure* (and only one *Figure*). Most commands you will ever issue will be with respect to this *Axes* object." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "fig = plt.figure()\n", - "ax = fig.add_subplot(111)\n", - "ax.plot([1, 2, 3, 4], [10, 20, 25, 30])\n", - "ax.set_xlim(0.5, 4.5)\n", - "plt.show()" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Interestingly, just about all methods of an *Axes* object exist as a function in the *pyplot* module (and vice-versa). For example, when calling `plt.xlim(1, 10)`, *pyplot* calls `ax.set_xlim(1, 10)` on whichever *Axes* is \"current\". Here is an equivalent version of the above example using just pyplot." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "plt.plot([1, 2, 3, 4], [10, 20, 25, 30])\n", - "plt.xlim(0.5, 4.5)\n", - "plt.show()" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Much cleaner, and much clearer! So, why will most of my examples not follow the pyplot approach? Because [PEP20](http://www.python.org/dev/peps/pep-0020/) \"The Zen of Python\" says:\n", - "\n", - "\"Explicit is better than implicit\"\n", - "\n", - "While very simple plots, with short scripts would benefit from the conciseness of the pyplot implicit approach, when doing more complicated plots, or working within larger scripts, you will want to explicitly pass around the *Axes* and/or *Figure* object to operate upon." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Limits and autoscaling\n", - "By default, matplotlib will attempt to determine limits for you that encompasses all the data you have plotted. This is the \"autoscale\" feature. For line and image plots, the limits are not padded, while plots such as scatter plots and bar plots are given some padding." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "fig, (ax1, ax2) = plt.subplots(1, 2, figsize=plt.figaspect(0.5))\n", - "ax1.plot([-10, -5, 0, 5, 10, 15], [-1.2, 2, 3.5, -0.3, -4, 1])\n", - "ax2.scatter([-10, -5, 0, 5, 10, 15], [-1.2, 2, 3.5, -0.3, -4, 1])\n", - "plt.show()" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "A trick with limits is to specify only half of a limit. When done **after** a plot is made, this has the effect of allowing the user to anchor a limit while letting matplotlib to autoscale the rest of it." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "# Good -- setting limits after plotting is done\n", - "fig, (ax1, ax2) = plt.subplots(1, 2, figsize=plt.figaspect(0.5))\n", - "ax1.plot([-10, -5, 0, 5, 10, 15], [-1.2, 2, 3.5, -0.3, -4, 1])\n", - "ax2.scatter([-10, -5, 0, 5, 10, 15], [-1.2, 2, 3.5, -0.3, -4, 1])\n", - "ax1.set_ylim(bottom=-10)\n", - "ax2.set_xlim(right=25)\n", - "plt.show()" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "# Bad -- Setting limits before plotting is done\n", - "fig, (ax1, ax2) = plt.subplots(1, 2, figsize=plt.figaspect(0.5))\n", - "ax1.set_ylim(bottom=-10)\n", - "ax2.set_xlim(right=25)\n", - "ax1.plot([-10, -5, 0, 5, 10, 15], [-1.2, 2, 3.5, -0.3, -4, 1])\n", - "ax2.scatter([-10, -5, 0, 5, 10, 15], [-1.2, 2, 3.5, -0.3, -4, 1])\n", - "plt.show()" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Exercise 1.1\n", - "How would you make a plot with a y-axis such that it starts at 1000 at the bottom, and goes to 500 at the top?\n", - "\n", - "Hint: [`set_ylim`](http://matplotlib.org/api/axes_api.html#matplotlib.axes.Axes.set_ylim)" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%load exercises/1.1-limits.py" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Labels and Legends\n", - "You can label just about anything in mpl. You can provide a label to your plot, which allows your legend to automatically build itself. The X and Y axis can also be labeled, as well as the subplot itself via the title." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "fig = plt.figure()\n", - "ax = fig.add_subplot(111)\n", - "ax.plot([1, 2, 3, 4], [10, 20, 25, 30], label='Philadelphia')\n", - "ax.plot([1, 2, 3, 4], [30, 23, 13, 4], label='Boston')\n", - "ax.set_ylabel('Temperature (deg C)')\n", - "ax.set_xlabel('Time')\n", - "ax.set_title(\"A tale of two cities\")\n", - "ax.legend()\n", - "plt.show()" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Also, if you happen to be plotting something that you do not want to appear in the legend, just set the label to \"\\_nolegend\\_\"." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "fig, ax = plt.subplots(1, 1)\n", - "ax.bar([1, 2, 3, 4], [10, 20, 25, 30], label=\"Foobar\")\n", - "ax.plot([1, 2, 3, 4], [10, 20, 25, 30], label=\"_nolegend_\")\n", - "ax.legend()\n", - "plt.show()" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Ticks, Tick Lines, Tick Labels and Tickers\n", - "This is a constant source of confusion:\n", - "\n", - "* A Tick is the *location* of a Tick Label.\n", - "* A Tick Line is the line that denotes the location of the tick.\n", - "* A Tick Label is the text that is displayed at that tick.\n", - "* A [`Ticker`](http://matplotlib.org/api/ticker_api.html#module-matplotlib.ticker) automatically determines the ticks for an Axis and formats the tick labels.\n", - "\n", - "[`tick_params()`](http://matplotlib.org/api/axes_api.html#matplotlib.axes.Axes.tick_params) is often used to help configure your tickers." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "fig = plt.figure()\n", - "ax = fig.add_subplot(111)\n", - "ax.plot([1, 2, 3, 4], [10, 20, 25, 30])\n", - "ax.xaxis.set_ticks(range(1, 5)) # Set ticks at 1, 2, 3, 4\n", - "ax.xaxis.set_ticklabels([3, 100, -12, \"foo\"]) # Label ticks as \"3\", \"100\", \"-12\", and \"foo\"\n", - "ax.tick_params(axis='y', direction='inout', length=10)\n", - "plt.show()" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Subplots\n", - "While an *Axes* object can only belong to one *Figure*, A *Figure* can have many *Axes* objects. These are typically called \"subaxes\" or \"subplots\". They act just like regular *Axes*." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "fig = plt.figure(figsize=(10, 5))\n", - "ax = fig.add_subplot(121)\n", - "ax.plot([1, 2, 3, 4], [10, 20, 25, 30], label='Philadelphia')\n", - "ax.plot([1, 2, 3, 4], [30, 23, 13, 4], label='Boston')\n", - "ax.set_title('A tale of two cities')\n", - "ax.legend()\n", - "\n", - "t = np.linspace(0, 7, 25)\n", - "z = 2 * np.sin(t) + 5\n", - "ax = fig.add_subplot(122)\n", - "ax.scatter(t, z, label='Philadelphia')\n", - "ax.set_title(\"Observed Tide\")\n", - "ax.legend()\n", - "\n", - "fig.suptitle('A title for the whole figure')\n", - "plt.show()" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "There are many ways to add and modify subplots in a figure.\n", - "\n", - "* [`plt.subplots()`](http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.subplots)\n", - "* [`plt.subplot()`](http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.subplot) and [`fig.add_subplot()`](http://matplotlib.org/api/figure_api.html?#matplotlib.figure.Figure.add_subplot) Which should be familiar to all Matlab users\n", - "* [`plt.axes()`](http://matplotlib.org/api/pyplot_api.html?#matplotlib.pyplot.axes)\n", - "* [`plt.subplot2grid()`](http://matplotlib.org/api/pyplot_api.html?#matplotlib.pyplot.subplot2grid)\n", - "* `plt.subplot_tool()` Interactive modification of subplot spacing.\n", - "\n", - "## Spacing\n", - "The spacing between the subplots can be adjusted using [`plt.subplots_adjust()`](http://matplotlib.org/api/pyplot_api.html?#matplotlib.pyplot.subplots_adjust). Play around with the example below to see how the different arguments affect the spacing." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "fig, axes = plt.subplots(2, 2, figsize=(9, 9))\n", - "plt.subplots_adjust(wspace=0.5, hspace=0.3,\n", - " left=0.125, right=0.9,\n", - " top=0.9, bottom=0.1)\n", - "plt.show()" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "A common complaint with matplotlib users is that the labels do not fit with the subplots, or the label of one subplot spills onto another subplot's area. Matplotlib does not currently have any sort of robust layout engine, as it is a design decision to minimize the amount of \"magic\" that matplotlib performs. We intend to let users have complete, 100% control over their plots. LaTeX users would be quite familiar with the amount of frustration that can occur with placement of figures in their documents.\n", - "\n", - "That said, there have been some efforts to develop tools that users can use to help address the most common compaints. The \"[Tight Layout](http://matplotlib.org/users/tight_layout_guide.html)\" feature, when invoked, will attempt to resize margins, and subplots so that nothing overlaps." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "def example_plot(ax):\n", - " ax.plot([1, 2])\n", - " ax.set_xlabel('x-label', fontsize=16)\n", - " ax.set_ylabel('y-label', fontsize=8)\n", - " ax.set_title('Title', fontsize=24)\n", - "\n", - "fig, ((ax1, ax2), (ax3, ax4)) = plt.subplots(nrows=2, ncols=2)\n", - "example_plot(ax1)\n", - "example_plot(ax2)\n", - "example_plot(ax3)\n", - "example_plot(ax4)\n", - "#plt.tight_layout()\n", - "plt.show()" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "As a last bit of an FAQ, this \"tight_layout\" feature is unrelated to the so-called \"bbox_inches='tight'\" feature that will be discussed separately." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## GridSpec\n", - "Under the hood, matplotlib utilizes [`GridSpec`](http://matplotlib.org/api/gridspec_api.html) to lay out the subplots. While `plt.subplots()` is fine for simple cases, sometimes you will need more advanced subplot layouts. In such cases, you should use GridSpec directly. GridSpec is outside the scope of this tutorial, but it is handy to know that it exists. [Here](http://matplotlib.org/users/gridspec.html) is a guide on how to use it." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Sharing axes\n", - "There will be times when you want to have the x axis and/or the y axis of your subplots to be \"shared\". Sharing an axis means that the axis in one or more subplots will be tied together such that any change in one of the axis changes all of the other shared axes. This works very nicely with autoscaling arbitrary datasets that may have overlapping domains. Furthermore, when interacting with the plots (panning and zooming), all of the shared axes will pan and zoom automatically." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "# going out of inline mode to demonstrate the zooming and panning\n", - "%matplotlib\n", - "\n", - "fig, (ax1, ax2) = plt.subplots(1, 2, sharex=True, sharey=True)\n", - "ax1.plot([1, 2, 3, 4], [1, 2, 3, 4])\n", - "ax2.plot([3, 4, 5, 6], [6, 5, 4, 3])\n", - "plt.show()" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "# Go back to inline mode\n", - "%matplotlib inline" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## \"Twinning\" axes\n", - "Sometimes one may want to overlay two plots on the same axes, but the scales may be entirely different. You can simply treat them as separate plots, but then twin them." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "fig, ax1 = plt.subplots(1, 1)\n", - "ax1.plot([1, 2, 3, 4], [1, 2, 3, 4])\n", - "ax2 = ax1.twinx()\n", - "ax2.scatter([1, 2, 3, 4], [60, 50, 40, 30])\n", - "ax1.set_xlabel('X')\n", - "ax1.set_ylabel('First scale')\n", - "ax2.set_ylabel('Other scale')\n", - "plt.show()" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Axis Spines\n", - "Spines are the axis lines for a plot. Each plot can have four spines: \"top\", \"bottom\", \"left\" and \"right\". By default, they are set so that they frame the plot, but they can be individually positioned and configured via the [`set_position()`](http://matplotlib.org/api/spines_api.html#matplotlib.spines.Spine.set_position) method of the spine. Here are some different configurations." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "fig, ax = plt.subplots(1, 1)\n", - "ax.plot([-2, 2, 3, 4], [-10, 20, 25, 5])\n", - "ax.spines['top'].set_visible(False)\n", - "ax.xaxis.set_ticks_position('bottom') # no ticklines at the top\n", - "ax.spines['right'].set_visible(False)\n", - "ax.yaxis.set_ticks_position('left') # no ticklines on the right\n", - "\n", - "# \"outward\"\n", - "# Move the two remaining spines \"out\" away from the plot by 10 points\n", - "ax.spines['bottom'].set_position(('outward', 10))\n", - "ax.spines['left'].set_position(('outward', 10))\n", - "\n", - "# \"data\"\n", - "# Have the spines stay intersected at (0,0)\n", - "#ax.spines['bottom'].set_position(('data', 0))\n", - "#ax.spines['left'].set_position(('data', 0))\n", - "\n", - "# \"axes\"\n", - "# Have the two remaining spines placed at a fraction of the axes\n", - "#ax.spines['bottom'].set_position(('axes', 0.75))\n", - "#ax.spines['left'].set_position(('axes', 0.25))\n", - "\n", - "plt.show()" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Exercise 1.2\n", - "Create a plot that have outward spines on the left and bottom with tick labels, and \"centered\" spines with no tick labels and tickmarks *through* the spines.\n", - "\n", - "Hints:\n", - "[`tick_params()`](http://matplotlib.org/api/axes_api.html#matplotlib.axes.Axes.tick_params)\n", - "[`set_position()`](http://matplotlib.org/api/spines_api.html#matplotlib.spines.Spine.set_position)" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%load exercises/1.2-spines.py" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Colorbars\n", - "Colorbars are much like legends because they help to describe the data being displayed. While legends describe plots, i.e., plot(), scatter(), hist(), stem(), colorbars describe images. To be really specific and technical, they can be used for any \"ScalarMappable\", which will be discussed in the `Artists` section. Let us take a look at a very simple example of a colorbar for a simple 2D image." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "y, x = np.ogrid[-6:6:20j, -10:10:30j]\n", - "z = np.hypot(x, y)\n", - "plt.imshow(z)\n", - "plt.colorbar()\n", - "plt.show()" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "plt.imshow(z)\n", - "plt.colorbar(orientation='horizontal', shrink=0.75) # We can make colorbars do all sorts of things!\n", - "plt.show()" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "plt.imshow(z)\n", - "cbar = plt.colorbar(extend='both', aspect=10)\n", - "cbar.set_label('distance') # And we can even add a label to it\n", - "plt.show()" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Colorbars in matplotlib can be difficult at times, and the documentation can sometimes be a bit unhelpful (patches welcome!). One of the most common problems that come up is when mixing subplots with a single colorbar:" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "fig, (ax1, ax2) = plt.subplots(1, 2)\n", - "ax1.imshow(z)\n", - "im = ax2.imshow(z) # Note, due to a bug, you will need to save the\n", - " # returned image object when calling imshow() from an Axes\n", - " # and pass that to plt.colorbar() so that it knows what\n", - " # image to build a colorbar from. This will be fixed for v1.3.1.\n", - "plt.colorbar(im)\n", - "plt.show()" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Looks terrible, right? What is happening is that a colorbar in matplotlib is just a very squashed subplot with an image of the colormap and axis ticks and labels. When told to create a colorbar for an image, matplotlib will simply \"steal\" space from that image's subplot and create a new subplot. There are a couple ways to deal with this issue. First, if you preallocate space for the colorbar (by creating your own Axes object to add to the Figure), you can pass that preallocated Axes to the \"cax\" argument of [`plt.colorbar()`](http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.colorbar), and it won't have to steal any space. The easier option is to pass a list of all the axes objects to `plt.colorbar(..., ax)`, and it will steal space equally from them." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "fig, (ax1, ax2) = plt.subplots(1, 2)\n", - "ax1.imshow(z)\n", - "im = ax2.imshow(z)\n", - "plt.colorbar(im, ax=[ax1, ax2], shrink=0.5)\n", - "plt.show()" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "There is also a third, very powerful, option called [`axes_grid1`](http://matplotlib.org/mpl_toolkits/axes_grid/users/overview.html), which we will discuss in the `mpl_toolkits` section." - ] - } - ], - "metadata": {} - } - ] -} \ No newline at end of file diff --git a/exercises/1.1-limits.py b/exercises/1.1-limits.py deleted file mode 100644 index 73d5015..0000000 --- a/exercises/1.1-limits.py +++ /dev/null @@ -1,3 +0,0 @@ -fig, ax = plt.subplots(1, 1) -ax.set_ylim( ) -plt.show() diff --git a/exercises/1.1-subplots_and_basic_plotting.py b/exercises/1.1-subplots_and_basic_plotting.py new file mode 100644 index 0000000..1ff79ca --- /dev/null +++ b/exercises/1.1-subplots_and_basic_plotting.py @@ -0,0 +1,11 @@ +import numpy as np +import matplotlib.pyplot as plt + +# Try to reproduce the figure shown in images/exercise_1-1.png + +# Our data... +x = np.linspace(0, 10, 100) +y1, y2, y3 = np.cos(x), np.cos(x + 1), np.cos(x + 2) +names = ['Signal 1', 'Signal 2', 'Signal 3'] + +# Can you figure out what to do next to plot x vs y1, y2, and y3 on one figure? diff --git a/exercises/1.2-legends_and_scaling.py b/exercises/1.2-legends_and_scaling.py new file mode 100644 index 0000000..8d200f9 --- /dev/null +++ b/exercises/1.2-legends_and_scaling.py @@ -0,0 +1,15 @@ +import numpy as np +import matplotlib.pyplot as plt + +# Try to reproduce the figure shown in images/exercise_1-2.png +# Here's the data and colors used. + +t = np.linspace(0, 2 * np.pi, 150) +x1, y1 = np.cos(t), np.sin(t) +x2, y2 = 2 * x1, 2 * y1 + +colors = ['darkred', 'darkgreen'] + +# Try to plot the two circles, scale the axes as shown and add a legend +# Hint: it's easiest to combine `ax.axis(...)` and `ax.margins(...)` to scale +# the axes diff --git a/exercises/1.2-spines.py b/exercises/1.2-spines.py deleted file mode 100644 index 6abdb53..0000000 --- a/exercises/1.2-spines.py +++ /dev/null @@ -1,23 +0,0 @@ -fig, ax = plt.subplots(1, 1) -ax.plot([-2, 2, 3, 4], [-10, 20, 25, 5]) -ax.spines['top'].set_visible(False) -ax.xaxis.set_ticks_position('bottom') # no ticklines at the top -ax.spines['right'].set_visible(False) -ax.yaxis.set_ticks_position('left') # no ticklines on the right - -# "outward" -# Move the two remaining spines "out" away from the plot by 10 points -ax.spines['bottom'].set_position(('outward', 10)) -ax.spines['left'].set_position(('outward', 10)) - -# "data" -# Have the spines stay intersected at (0,0) -#ax.spines['bottom'].set_position(('data', 0)) -#ax.spines['left'].set_position(('data', 0)) - -# "axes" -# Have the two remaining spines placed at a fraction of the axes -#ax.spines['bottom'].set_position(('axes', 0.75)) -#ax.spines['left'].set_position(('axes', 0.25)) - -plt.show() diff --git a/exercises/1.3-spines_ticks_and_subplot_spacing.py b/exercises/1.3-spines_ticks_and_subplot_spacing.py new file mode 100644 index 0000000..d8133aa --- /dev/null +++ b/exercises/1.3-spines_ticks_and_subplot_spacing.py @@ -0,0 +1,9 @@ +import matplotlib.pyplot as plt +import numpy as np + +# Try to reproduce the figure shown in images/exercise_1.3.png +# This one is a bit trickier! + +# Here's the data... +data = [('dogs', 4, 4), ('frogs', -3, 1), ('cats', 1, 5), ('goldfish', -2, 2)] +animals, friendliness, popularity = zip(*data) diff --git a/images/exercise_1-1.png b/images/exercise_1-1.png new file mode 100644 index 0000000000000000000000000000000000000000..b64ffea491f1b0f345deed6c9c91a73da14ede21 GIT binary patch literal 41356 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π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 literal 0 HcmV?d00001 diff --git a/images/exercise_1-2.png b/images/exercise_1-2.png new file mode 100644 index 0000000000000000000000000000000000000000..a981f2c5b15e515b6585a3090d74922b67c808a7 GIT binary patch literal 39667 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

T}5V*%!i-R0H3Zxmsx$-Ae|+ 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%0A)g@P7@89)Zv4H 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 literal 0 HcmV?d00001 diff --git a/solutions/1.1-limits.py b/solutions/1.1-limits.py deleted file mode 100644 index 37bf892..0000000 --- a/solutions/1.1-limits.py +++ /dev/null @@ -1,3 +0,0 @@ -fig, ax = plt.subplots(1, 1) -ax.set_ylim(1000, 500) -plt.show() diff --git a/solutions/1.1-subplots_and_basic_plotting.py b/solutions/1.1-subplots_and_basic_plotting.py new file mode 100644 index 0000000..4a641d6 --- /dev/null +++ b/solutions/1.1-subplots_and_basic_plotting.py @@ -0,0 +1,14 @@ +import numpy as np +import matplotlib.pyplot as plt + +x = np.linspace(0, 10, 100) +y1, y2, y3 = np.cos(x), np.cos(x + 1), np.cos(x + 2) +names = ['Signal 1', 'Signal 2', 'Signal 3'] + +fig, axes = plt.subplots(nrows=3) + +for ax, y, name in zip(axes, [y1, y2, y3], names): + ax.plot(x, y, color='black') + ax.set(xticks=[], yticks=[], title=name) + +plt.show() diff --git a/solutions/1.2-legends_and_scaling.py b/solutions/1.2-legends_and_scaling.py new file mode 100644 index 0000000..2dda763 --- /dev/null +++ b/solutions/1.2-legends_and_scaling.py @@ -0,0 +1,18 @@ +import numpy as np +import matplotlib.pyplot as plt + +t = np.linspace(0, 2 * np.pi, 150) +x1, y1 = np.cos(t), np.sin(t) +x2, y2 = 2 * x1, 2 * y1 + +colors = ['darkred', 'darkgreen'] + +fig, ax = plt.subplots() +ax.plot(x1, y1, color=colors[0], label='Inner', linewidth=3) +ax.plot(x2, y2, color=colors[1], label='Outer', linewidth=3) +ax.legend() + +ax.axis('equal') +ax.margins(0.05) + +plt.show() diff --git a/solutions/1.2-spines.py b/solutions/1.2-spines.py deleted file mode 100644 index ae58e32..0000000 --- a/solutions/1.2-spines.py +++ /dev/null @@ -1,12 +0,0 @@ -fig, ax = plt.subplots(1, 1) -ax.plot([-2, 2, 3, 4], [-10, 20, 25, 5]) - -ax.spines['top'].set_position('center') -ax.spines['right'].set_position('center') -ax.tick_params(axis='both', direction='inout', length=10) - -# Move the two remaining spines "out" away from the plot by 10 points -ax.spines['bottom'].set_position(('outward', 10)) -ax.spines['left'].set_position(('outward', 10)) - -plt.show() diff --git a/solutions/1.3-spines_ticks_and_subplot_spacing.py b/solutions/1.3-spines_ticks_and_subplot_spacing.py new file mode 100644 index 0000000..088d47b --- /dev/null +++ b/solutions/1.3-spines_ticks_and_subplot_spacing.py @@ -0,0 +1,25 @@ +import matplotlib.pyplot as plt +import numpy as np + +data = [('dogs', 4, 4), ('frogs', -3, 1), ('cats', 1, 5), ('goldfish', -2, 2)] +animals, friendliness, popularity = zip(*data) + + +def plot_and_setup_spines(ax, animals, y, ylabel): + x = np.arange(len(animals)) + ax.bar(x, y, align='center', color='gray') + ax.set(xticks=x, xticklabels=animals, ylabel=ylabel) + + ax.xaxis.set_ticks_position('bottom') + ax.yaxis.set_ticks_position('left') + ax.spines['bottom'].set_position(('data', 0)) + ax.tick_params(axis='x', direction='inout', length=8) + ax.margins(0.05) + +fig, axes = plt.subplots(nrows=2) +fig.subplots_adjust(hspace=0.0) + +plot_and_setup_spines(axes[0], animals, friendliness, 'Friendliness') +plot_and_setup_spines(axes[1], animals, popularity, 'Popularity') + +plt.show()

p@}((N|8z`0CRUYu&5>*YgH}v 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 literal 0 HcmV?d00001 diff --git a/images/exercise_1.3.png b/images/exercise_1.3.png new file mode 100644 index 0000000000000000000000000000000000000000..e5fda91e7dfe7171ed872b84d20f0eb995f21637 GIT binary patch literal 22841 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 WmQB0QbrE8jB5_XoZ0zZ4_x=z370N^a literal 0 HcmV?d00001 diff --git a/images/figure_axes_axis_labeled.png b/images/figure_axes_axis_labeled.png new file mode 100644 index 0000000000000000000000000000000000000000..6470c6279fe9ece662f08877496b3aa11eee9d4e GIT binary patch literal 185257 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%0D1EWrv>nkUwfj3o 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