{"id":13595715,"url":"https://github.com/rougier/matplotlib-tutorial","last_synced_at":"2025-04-11T06:18:27.529Z","repository":{"id":8423305,"uuid":"10010542","full_name":"rougier/matplotlib-tutorial","owner":"rougier","description":"Matplotlib tutorial for beginner","archived":false,"fork":false,"pushed_at":"2024-05-27T12:56:12.000Z","size":3370,"stargazers_count":3029,"open_issues_count":7,"forks_count":818,"subscribers_count":104,"default_branch":"master","last_synced_at":"2025-04-03T10:06:58.232Z","etag":null,"topics":["matplotlib","python","tutorial"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rougier.png","metadata":{"files":{"readme":"README.html","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2013-05-12T07:22:19.000Z","updated_at":"2025-04-01T23:41:05.000Z","dependencies_parsed_at":"2024-08-01T16:40:13.408Z","dependency_job_id":null,"html_url":"https://github.com/rougier/matplotlib-tutorial","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rougier%2Fmatplotlib-tutorial","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rougier%2Fmatplotlib-tutorial/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rougier%2Fmatplotlib-tutorial/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rougier%2Fmatplotlib-tutorial/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rougier","download_url":"https://codeload.github.com/rougier/matplotlib-tutorial/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248351491,"owners_count":21089287,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["matplotlib","python","tutorial"],"created_at":"2024-08-01T16:01:56.241Z","updated_at":"2025-04-11T06:18:27.498Z","avatar_url":"https://github.com/rougier.png","language":"Python","readme":"\u003c?xml version=\"1.0\" encoding=\"utf-8\" ?\u003e\n\u003c!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"\u003e\n\u003chtml xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\"\u003e\n\u003chead\u003e\n\u003cmeta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" /\u003e\n\u003cmeta name=\"generator\" content=\"Docutils 0.17.1: http://docutils.sourceforge.net/\" /\u003e\n\u003ctitle\u003eMatplotlib tutorial\u003c/title\u003e\n\u003clink rel=\"stylesheet\" href=\"dana.css\" type=\"text/css\" /\u003e\n\u003c/head\u003e\n\u003cbody\u003e\n\u003cdiv class=\"document\" id=\"matplotlib-tutorial\"\u003e\n\u003ch1 class=\"title\"\u003eMatplotlib tutorial\u003c/h1\u003e\n\u003ch2 class=\"subtitle\" id=\"nicolas-p-rougier\"\u003eNicolas P. Rougier\u003c/h2\u003e\n\n\u003ca class=\"reference external image-reference\" href=\"http://dx.doi.org/10.5281/zenodo.28747\"\u003e\u003cobject data=\"https://zenodo.org/badge/doi/10.5281/zenodo.28747.svg\" type=\"image/svg+xml\"\u003ehttps://zenodo.org/badge/doi/10.5281/zenodo.28747.svg\u003c/object\u003e\u003c/a\u003e\n\u003cdiv class=\"contents local topic\" id=\"table-of-contents\"\u003e\n\u003cp class=\"topic-title\"\u003eTable of Contents\u003c/p\u003e\n\u003cul class=\"simple\"\u003e\n\u003cli\u003e\u003ca class=\"reference internal\" href=\"#introduction\" id=\"id5\"\u003eIntroduction\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca class=\"reference internal\" href=\"#simple-plot\" id=\"id6\"\u003eSimple plot\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca class=\"reference internal\" href=\"#figures-subplots-axes-and-ticks\" id=\"id7\"\u003eFigures, Subplots, Axes and Ticks\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca class=\"reference internal\" href=\"#animation\" id=\"id8\"\u003eAnimation\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca class=\"reference internal\" href=\"#other-types-of-plots\" id=\"id9\"\u003eOther Types of Plots\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca class=\"reference internal\" href=\"#beyond-this-tutorial\" id=\"id10\"\u003eBeyond this tutorial\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca class=\"reference internal\" href=\"#quick-references\" id=\"id11\"\u003eQuick references\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/div\u003e\n\u003cp\u003eSources are available from\n\u003ca class=\"reference external\" href=\"https://github.com/rougier/matplotlib-tutorial\"\u003egithub\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eAll code and material is licensed under a \u003ca class=\"reference external\" href=\"http://creativecommons.org/licenses/by-sa/4.0\"\u003eCreative Commons\nAttribution-ShareAlike 4.0\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eYou can test your installation before the tutorial using the \u003ca class=\"reference external\" href=\"scripts/check-installation.py\"\u003echeck-installation.py\u003c/a\u003e script.\u003c/p\u003e\n\u003cp\u003eSee also:\u003c/p\u003e\n\u003cul class=\"simple\"\u003e\n\u003cli\u003e\u003ca class=\"reference external\" href=\"http://www.labri.fr/perso/nrougier/from-python-to-numpy/\"\u003eFrom Python to Numpy\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca class=\"reference external\" href=\"https://github.com/rougier/numpy-100\"\u003e100 Numpy exercices\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca class=\"reference external\" href=\"http://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1003833\"\u003eTen simple rules for better figures\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"section\" id=\"introduction\"\u003e\n\u003ch1\u003e\u003ca class=\"toc-backref\" href=\"#id5\"\u003eIntroduction\u003c/a\u003e\u003c/h1\u003e\n\u003cp\u003ematplotlib is probably the single most used Python package for 2D-graphics. It\nprovides both a very quick way to visualize data from Python and\npublication-quality figures in many formats.  We are going to explore\nmatplotlib in interactive mode covering most common cases.\u003c/p\u003e\n\u003cdiv class=\"section\" id=\"ipython\"\u003e\n\u003ch2\u003eIPython\u003c/h2\u003e\n\u003cp\u003e\u003ca class=\"reference external\" href=\"http://ipython.org/\"\u003eIPython\u003c/a\u003e is an enhanced interactive Python shell that\nhas lots of interesting features including named inputs and outputs, access to\nshell commands, improved debugging and much more. It allows\ninteractive matplotlib sessions that have Matlab/Mathematica-like functionality.\u003c/p\u003e\n\u003c/div\u003e\n\u003cdiv class=\"section\" id=\"pyplot\"\u003e\n\u003ch2\u003epyplot\u003c/h2\u003e\n\u003cp\u003epyplot provides a convenient interface to the matplotlib object-oriented\nplotting library. It is modeled closely after Matlab(TM). Therefore, the\nmajority of plotting commands in pyplot have Matlab(TM) analogs with similar\narguments. Important commands are explained with interactive examples.\u003c/p\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"section\" id=\"simple-plot\"\u003e\n\u003ch1\u003e\u003ca class=\"toc-backref\" href=\"#id6\"\u003eSimple plot\u003c/a\u003e\u003c/h1\u003e\n\u003cp\u003eIn this section, we want to draw the cosine and sine functions on the same\nplot. Starting from the default settings, we'll enrich the figure step by step\nto make it nicer.\u003c/p\u003e\n\u003cp\u003eThe first step is to get the data for the sine and cosine functions:\u003c/p\u003e\n\u003cpre class=\"literal-block\"\u003e\nimport numpy as np\n\nX = np.linspace(-np.pi, np.pi, 256, endpoint=True)\nC, S = np.cos(X), np.sin(X)\n\u003c/pre\u003e\n\u003cp\u003eX is now a NumPy array with 256 values ranging from -π to +π (included). C is\nthe cosine (256 values) and S is the sine (256 values).\u003c/p\u003e\n\u003cp\u003eTo run the example, you can download each of the examples and run it using:\u003c/p\u003e\n\u003cpre class=\"literal-block\"\u003e\n$ python exercice_1.py\n\u003c/pre\u003e\n\u003cp\u003eYou can get source for each step by clicking on the corresponding figure.\u003c/p\u003e\n\u003cdiv class=\"section\" id=\"using-defaults\"\u003e\n\u003ch2\u003eUsing defaults\u003c/h2\u003e\n\u003cdiv class=\"admonition admonition-documentation\"\u003e\n\u003cp class=\"first admonition-title\"\u003eDocumentation\u003c/p\u003e\n\u003cul class=\"last simple\"\u003e\n\u003cli\u003e\u003ca class=\"reference external\" href=\"http://matplotlib.sourceforge.net/users/pyplot_tutorial.html\"\u003eplot tutorial\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca class=\"reference external\" href=\"http://matplotlib.sourceforge.net/api/pyplot_api.html#matplotlib.pyplot.plot\"\u003eplot() command\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/div\u003e\n\u003ca class=\"reference external image-reference\" href=\"scripts/exercice_1.py\"\u003e\u003cimg alt=\"figures/exercice_1.png\" class=\"align-right\" src=\"figures/exercice_1.png\" /\u003e\u003c/a\u003e\n\u003cp\u003eMatplotlib comes with a set of default settings that allow customizing all\nkinds of properties. You can control the defaults of almost every property in\nmatplotlib: figure size and dpi, line width, color and style, axes, axis and\ngrid properties, text and font properties and so on. While matplotlib defaults\nare rather good in most cases, you may want to modify some properties for\nspecific cases.\u003c/p\u003e\n\u003cpre class=\"code python literal-block\"\u003e\n\u003cspan class=\"keyword namespace\"\u003eimport\u003c/span\u003e \u003cspan class=\"name namespace\"\u003enumpy\u003c/span\u003e \u003cspan class=\"keyword\"\u003eas\u003c/span\u003e \u003cspan class=\"name namespace\"\u003enp\u003c/span\u003e\n\u003cspan class=\"keyword namespace\"\u003eimport\u003c/span\u003e \u003cspan class=\"name namespace\"\u003ematplotlib.pyplot\u003c/span\u003e \u003cspan class=\"keyword\"\u003eas\u003c/span\u003e \u003cspan class=\"name namespace\"\u003eplt\u003c/span\u003e\n\n\u003cspan class=\"name\"\u003eX\u003c/span\u003e \u003cspan class=\"operator\"\u003e=\u003c/span\u003e \u003cspan class=\"name\"\u003enp\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003elinspace\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"operator\"\u003e-\u003c/span\u003e\u003cspan class=\"name\"\u003enp\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003epi\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e \u003cspan class=\"name\"\u003enp\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003epi\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e \u003cspan class=\"literal number integer\"\u003e256\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e \u003cspan class=\"name\"\u003eendpoint\u003c/span\u003e\u003cspan class=\"operator\"\u003e=\u003c/span\u003e\u003cspan class=\"keyword constant\"\u003eTrue\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e)\u003c/span\u003e\n\u003cspan class=\"name\"\u003eC\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e\u003cspan class=\"name\"\u003eS\u003c/span\u003e \u003cspan class=\"operator\"\u003e=\u003c/span\u003e \u003cspan class=\"name\"\u003enp\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003ecos\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"name\"\u003eX\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e),\u003c/span\u003e \u003cspan class=\"name\"\u003enp\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003esin\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"name\"\u003eX\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e)\u003c/span\u003e\n\n\u003cspan class=\"name\"\u003eplt\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003eplot\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"name\"\u003eX\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e\u003cspan class=\"name\"\u003eC\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e)\u003c/span\u003e\n\u003cspan class=\"name\"\u003eplt\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003eplot\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"name\"\u003eX\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e\u003cspan class=\"name\"\u003eS\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e)\u003c/span\u003e\n\n\u003cspan class=\"name\"\u003eplt\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003eshow\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e()\u003c/span\u003e\n\u003c/pre\u003e\n\u003c/div\u003e\n\u003cdiv class=\"section\" id=\"instantiating-defaults\"\u003e\n\u003ch2\u003eInstantiating defaults\u003c/h2\u003e\n\u003cdiv class=\"admonition admonition-documentation\"\u003e\n\u003cp class=\"first admonition-title\"\u003eDocumentation\u003c/p\u003e\n\u003cul class=\"last simple\"\u003e\n\u003cli\u003e\u003ca class=\"reference external\" href=\"http://matplotlib.sourceforge.net/users/customizing.html\"\u003eCustomizing matplotlib\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/div\u003e\n\u003ca class=\"reference external image-reference\" href=\"scripts/exercice_2.py\"\u003e\u003cimg alt=\"figures/exercice_2.png\" class=\"align-right\" src=\"figures/exercice_2.png\" /\u003e\u003c/a\u003e\n\u003cp\u003eIn the script below, we've instantiated (and commented) all the figure settings\nthat influence the appearance of the plot. The settings have been explicitly\nset to their default values, but now you can interactively play with the values\nto explore their affect (see \u003ca class=\"reference internal\" href=\"#line-properties\"\u003eLine properties\u003c/a\u003e and \u003ca class=\"reference internal\" href=\"#line-styles\"\u003eLine styles\u003c/a\u003e below).\u003c/p\u003e\n\u003cpre class=\"code python literal-block\"\u003e\n\u003cspan class=\"comment single\"\u003e# Imports\u003c/span\u003e\n\u003cspan class=\"keyword namespace\"\u003eimport\u003c/span\u003e \u003cspan class=\"name namespace\"\u003enumpy\u003c/span\u003e \u003cspan class=\"keyword\"\u003eas\u003c/span\u003e \u003cspan class=\"name namespace\"\u003enp\u003c/span\u003e\n\u003cspan class=\"keyword namespace\"\u003eimport\u003c/span\u003e \u003cspan class=\"name namespace\"\u003ematplotlib.pyplot\u003c/span\u003e \u003cspan class=\"keyword\"\u003eas\u003c/span\u003e \u003cspan class=\"name namespace\"\u003eplt\u003c/span\u003e\n\n\u003cspan class=\"comment single\"\u003e# Create a new figure of size 8x6 points, using 100 dots per inch\u003c/span\u003e\n\u003cspan class=\"name\"\u003eplt\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003efigure\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"name\"\u003efigsize\u003c/span\u003e\u003cspan class=\"operator\"\u003e=\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e8\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e6\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e),\u003c/span\u003e \u003cspan class=\"name\"\u003edpi\u003c/span\u003e\u003cspan class=\"operator\"\u003e=\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e100\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e)\u003c/span\u003e\n\n\u003cspan class=\"comment single\"\u003e# Create a new subplot from a grid of 1x1\u003c/span\u003e\n\u003cspan class=\"name\"\u003eplt\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003esubplot\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e111\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e)\u003c/span\u003e\n\n\u003cspan class=\"name\"\u003eX\u003c/span\u003e \u003cspan class=\"operator\"\u003e=\u003c/span\u003e \u003cspan class=\"name\"\u003enp\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003elinspace\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"operator\"\u003e-\u003c/span\u003e\u003cspan class=\"name\"\u003enp\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003epi\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e \u003cspan class=\"name\"\u003enp\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003epi\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e \u003cspan class=\"literal number integer\"\u003e256\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e\u003cspan class=\"name\"\u003eendpoint\u003c/span\u003e\u003cspan class=\"operator\"\u003e=\u003c/span\u003e\u003cspan class=\"keyword constant\"\u003eTrue\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e)\u003c/span\u003e\n\u003cspan class=\"name\"\u003eC\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e\u003cspan class=\"name\"\u003eS\u003c/span\u003e \u003cspan class=\"operator\"\u003e=\u003c/span\u003e \u003cspan class=\"name\"\u003enp\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003ecos\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"name\"\u003eX\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e),\u003c/span\u003e \u003cspan class=\"name\"\u003enp\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003esin\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"name\"\u003eX\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e)\u003c/span\u003e\n\n\u003cspan class=\"comment single\"\u003e# Plot cosine using blue color with a continuous line of width 1 (pixels)\u003c/span\u003e\n\u003cspan class=\"name\"\u003eplt\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003eplot\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"name\"\u003eX\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e \u003cspan class=\"name\"\u003eC\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e \u003cspan class=\"name\"\u003ecolor\u003c/span\u003e\u003cspan class=\"operator\"\u003e=\u003c/span\u003e\u003cspan class=\"literal string double\"\u003e\u0026quot;blue\u0026quot;\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e \u003cspan class=\"name\"\u003elinewidth\u003c/span\u003e\u003cspan class=\"operator\"\u003e=\u003c/span\u003e\u003cspan class=\"literal number float\"\u003e1.0\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e \u003cspan class=\"name\"\u003elinestyle\u003c/span\u003e\u003cspan class=\"operator\"\u003e=\u003c/span\u003e\u003cspan class=\"literal string double\"\u003e\u0026quot;-\u0026quot;\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e)\u003c/span\u003e\n\n\u003cspan class=\"comment single\"\u003e# Plot sine using green color with a continuous line of width 1 (pixels)\u003c/span\u003e\n\u003cspan class=\"name\"\u003eplt\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003eplot\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"name\"\u003eX\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e \u003cspan class=\"name\"\u003eS\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e \u003cspan class=\"name\"\u003ecolor\u003c/span\u003e\u003cspan class=\"operator\"\u003e=\u003c/span\u003e\u003cspan class=\"literal string double\"\u003e\u0026quot;green\u0026quot;\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e \u003cspan class=\"name\"\u003elinewidth\u003c/span\u003e\u003cspan class=\"operator\"\u003e=\u003c/span\u003e\u003cspan class=\"literal number float\"\u003e1.0\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e \u003cspan class=\"name\"\u003elinestyle\u003c/span\u003e\u003cspan class=\"operator\"\u003e=\u003c/span\u003e\u003cspan class=\"literal string double\"\u003e\u0026quot;-\u0026quot;\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e)\u003c/span\u003e\n\n\u003cspan class=\"comment single\"\u003e# Set x limits\u003c/span\u003e\n\u003cspan class=\"name\"\u003eplt\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003exlim\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"operator\"\u003e-\u003c/span\u003e\u003cspan class=\"literal number float\"\u003e4.0\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e\u003cspan class=\"literal number float\"\u003e4.0\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e)\u003c/span\u003e\n\n\u003cspan class=\"comment single\"\u003e# Set x ticks\u003c/span\u003e\n\u003cspan class=\"name\"\u003eplt\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003exticks\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"name\"\u003enp\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003elinspace\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"operator\"\u003e-\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e4\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e4\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e9\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e\u003cspan class=\"name\"\u003eendpoint\u003c/span\u003e\u003cspan class=\"operator\"\u003e=\u003c/span\u003e\u003cspan class=\"keyword constant\"\u003eTrue\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e))\u003c/span\u003e\n\n\u003cspan class=\"comment single\"\u003e# Set y limits\u003c/span\u003e\n\u003cspan class=\"name\"\u003eplt\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003eylim\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"operator\"\u003e-\u003c/span\u003e\u003cspan class=\"literal number float\"\u003e1.0\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e\u003cspan class=\"literal number float\"\u003e1.0\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e)\u003c/span\u003e\n\n\u003cspan class=\"comment single\"\u003e# Set y ticks\u003c/span\u003e\n\u003cspan class=\"name\"\u003eplt\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003eyticks\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"name\"\u003enp\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003elinspace\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"operator\"\u003e-\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e1\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e1\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e5\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e\u003cspan class=\"name\"\u003eendpoint\u003c/span\u003e\u003cspan class=\"operator\"\u003e=\u003c/span\u003e\u003cspan class=\"keyword constant\"\u003eTrue\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e))\u003c/span\u003e\n\n\u003cspan class=\"comment single\"\u003e# Save figure using 72 dots per inch\u003c/span\u003e\n\u003cspan class=\"comment single\"\u003e# savefig(\u0026quot;../figures/exercice_2.png\u0026quot;,dpi=72)\u003c/span\u003e\n\n\u003cspan class=\"comment single\"\u003e# Show result on screen\u003c/span\u003e\n\u003cspan class=\"name\"\u003eplt\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003eshow\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e()\u003c/span\u003e\n\u003c/pre\u003e\n\u003c/div\u003e\n\u003cdiv class=\"section\" id=\"changing-colors-and-line-widths\"\u003e\n\u003ch2\u003eChanging colors and line widths\u003c/h2\u003e\n\u003cdiv class=\"admonition admonition-documentation\"\u003e\n\u003cp class=\"first admonition-title\"\u003eDocumentation\u003c/p\u003e\n\u003cul class=\"last simple\"\u003e\n\u003cli\u003e\u003ca class=\"reference external\" href=\"http://matplotlib.sourceforge.net/users/pyplot_tutorial.html#controlling-line-properties\"\u003eControlling line properties\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca class=\"reference external\" href=\"http://matplotlib.sourceforge.net/api/artist_api.html#matplotlib.lines.Line2D\"\u003eLine API\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/div\u003e\n\u003ca class=\"reference external image-reference\" href=\"scripts/exercice_3.py\"\u003e\u003cimg alt=\"figures/exercice_3.png\" class=\"align-right\" src=\"figures/exercice_3.png\" /\u003e\u003c/a\u003e\n\u003cp\u003eAs a first step, we want to have the cosine in blue and the sine in red and a\nslightly thicker line for both of them. We'll also slightly alter the figure\nsize to make it more horizontal.\u003c/p\u003e\n\u003cpre class=\"literal-block\"\u003e\n...\nplt.figure(figsize=(10,6), dpi=80)\nplt.plot(X, C, color=\u0026quot;blue\u0026quot;, linewidth=2.5, linestyle=\u0026quot;-\u0026quot;)\nplt.plot(X, S, color=\u0026quot;red\u0026quot;,  linewidth=2.5, linestyle=\u0026quot;-\u0026quot;)\n...\n\u003c/pre\u003e\n\u003c/div\u003e\n\u003cdiv class=\"section\" id=\"setting-limits\"\u003e\n\u003ch2\u003eSetting limits\u003c/h2\u003e\n\u003cdiv class=\"admonition admonition-documentation\"\u003e\n\u003cp class=\"first admonition-title\"\u003eDocumentation\u003c/p\u003e\n\u003cul class=\"last simple\"\u003e\n\u003cli\u003e\u003ca class=\"reference external\" href=\"http://matplotlib.sourceforge.net/api/pyplot_api.html#matplotlib.pyplot.xlim\"\u003exlim() command\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca class=\"reference external\" href=\"http://matplotlib.sourceforge.net/api/pyplot_api.html#matplotlib.pyplot.ylim\"\u003eylim() command\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/div\u003e\n\u003ca class=\"reference external image-reference\" href=\"scripts/exercice_4.py\"\u003e\u003cimg alt=\"figures/exercice_4.png\" class=\"align-right\" src=\"figures/exercice_4.png\" /\u003e\u003c/a\u003e\n\u003cp\u003eCurrent limits of the figure are a bit too tight and we want to make some space\nin order to clearly see all data points.\u003c/p\u003e\n\u003cpre class=\"literal-block\"\u003e\n...\nplt.xlim(X.min()*1.1, X.max()*1.1)\nplt.ylim(C.min()*1.1, C.max()*1.1)\n...\n\u003c/pre\u003e\n\u003c/div\u003e\n\u003cdiv class=\"section\" id=\"setting-ticks\"\u003e\n\u003ch2\u003eSetting ticks\u003c/h2\u003e\n\u003cdiv class=\"admonition admonition-documentation\"\u003e\n\u003cp class=\"first admonition-title\"\u003eDocumentation\u003c/p\u003e\n\u003cul class=\"last simple\"\u003e\n\u003cli\u003e\u003ca class=\"reference external\" href=\"http://matplotlib.sourceforge.net/api/pyplot_api.html#matplotlib.pyplot.xticks\"\u003exticks() command\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca class=\"reference external\" href=\"http://matplotlib.sourceforge.net/api/pyplot_api.html#matplotlib.pyplot.yticks\"\u003eyticks() command\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca class=\"reference external\" href=\"http://matplotlib.sourceforge.net/users/artists.html#axis-container\"\u003eTick container\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca class=\"reference external\" href=\"http://matplotlib.sourceforge.net/api/ticker_api.html\"\u003eTick locating and formatting\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/div\u003e\n\u003ca class=\"reference external image-reference\" href=\"scripts/exercice_5.py\"\u003e\u003cimg alt=\"figures/exercice_5.png\" class=\"align-right\" src=\"figures/exercice_5.png\" /\u003e\u003c/a\u003e\n\u003cp\u003eCurrent ticks are not ideal because they do not show the interesting values\n(+/-π,+/-π/2) for sine and cosine. We'll change them such that they show only\nthese values.\u003c/p\u003e\n\u003cpre class=\"literal-block\"\u003e\n...\nplt.xticks( [-np.pi, -np.pi/2, 0, np.pi/2, np.pi])\nplt.yticks([-1, 0, +1])\n...\n\u003c/pre\u003e\n\u003c/div\u003e\n\u003cdiv class=\"section\" id=\"setting-tick-labels\"\u003e\n\u003ch2\u003eSetting tick labels\u003c/h2\u003e\n\u003cdiv class=\"admonition admonition-documentation\"\u003e\n\u003cp class=\"first admonition-title\"\u003eDocumentation\u003c/p\u003e\n\u003cul class=\"last simple\"\u003e\n\u003cli\u003e\u003ca class=\"reference external\" href=\"http://matplotlib.sourceforge.net/users/index_text.html\"\u003eWorking with text\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca class=\"reference external\" href=\"http://matplotlib.sourceforge.net/api/pyplot_api.html#matplotlib.pyplot.xticks\"\u003exticks() command\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca class=\"reference external\" href=\"http://matplotlib.sourceforge.net/api/pyplot_api.html#matplotlib.pyplot.yticks\"\u003eyticks() command\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca class=\"reference external\" href=\"http://matplotlib.sourceforge.net/api/axes_api.html?#matplotlib.axes.Axes.set_xticklabels\"\u003eset_xticklabels()\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca class=\"reference external\" href=\"http://matplotlib.sourceforge.net/api/axes_api.html?#matplotlib.axes.Axes.set_yticklabels\"\u003eset_yticklabels()\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/div\u003e\n\u003ca class=\"reference external image-reference\" href=\"scripts/exercice_6.py\"\u003e\u003cimg alt=\"figures/exercice_6.png\" class=\"align-right\" src=\"figures/exercice_6.png\" /\u003e\u003c/a\u003e\n\u003cp\u003eTicks are now properly placed but their label is not very explicit. We could\nguess that 3.142 is π but it would be better to make it explicit. When we set\ntick values, we can also provide a corresponding label in the second argument\nlist. Note that we'll use latex to allow for nice rendering of the label.\u003c/p\u003e\n\u003cpre class=\"literal-block\"\u003e\n...\nplt.xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi],\n       [r'$-\\pi$', r'$-\\pi/2$', r'$0$', r'$+\\pi/2$', r'$+\\pi$'])\n\nplt.yticks([-1, 0, +1],\n       [r'$-1$', r'$0$', r'$+1$'])\n...\n\u003c/pre\u003e\n\u003c/div\u003e\n\u003cdiv class=\"section\" id=\"moving-spines\"\u003e\n\u003ch2\u003eMoving spines\u003c/h2\u003e\n\u003cdiv class=\"admonition admonition-documentation\"\u003e\n\u003cp class=\"first admonition-title\"\u003eDocumentation\u003c/p\u003e\n\u003cul class=\"last simple\"\u003e\n\u003cli\u003e\u003ca class=\"reference external\" href=\"http://matplotlib.sourceforge.net/api/spines_api.html#matplotlib.spines\"\u003eSpines\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca class=\"reference external\" href=\"http://matplotlib.sourceforge.net/users/artists.html#axis-container\"\u003eAxis container\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca class=\"reference external\" href=\"http://matplotlib.sourceforge.net/users/transforms_tutorial.html\"\u003eTransformations tutorial\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/div\u003e\n\u003ca class=\"reference external image-reference\" href=\"scripts/exercice_7.py\"\u003e\u003cimg alt=\"figures/exercice_7.png\" class=\"align-right\" src=\"figures/exercice_7.png\" /\u003e\u003c/a\u003e\n\u003cp\u003eSpines are the lines connecting the axis tick marks and noting the boundaries\nof the data area. They can be placed at arbitrary positions and until now, they\nwere on the border of the axis. We'll change that since we want to have them in\nthe middle. Since there are four of them (top/bottom/left/right), we'll discard\nthe top and right by setting their color to none and we'll move the bottom and\nleft ones to coordinate 0 in data space coordinates.\u003c/p\u003e\n\u003cpre class=\"literal-block\"\u003e\n...\nax = plt.gca()\nax.spines['right'].set_color('none')\nax.spines['top'].set_color('none')\nax.xaxis.set_ticks_position('bottom')\nax.spines['bottom'].set_position(('data',0))\nax.yaxis.set_ticks_position('left')\nax.spines['left'].set_position(('data',0))\n...\n\u003c/pre\u003e\n\u003c/div\u003e\n\u003cdiv class=\"section\" id=\"adding-a-legend\"\u003e\n\u003ch2\u003eAdding a legend\u003c/h2\u003e\n\u003cdiv class=\"admonition admonition-documentation\"\u003e\n\u003cp class=\"first admonition-title\"\u003eDocumentation\u003c/p\u003e\n\u003cul class=\"last simple\"\u003e\n\u003cli\u003e\u003ca class=\"reference external\" href=\"http://matplotlib.sourceforge.net/users/legend_guide.html\"\u003eLegend guide\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca class=\"reference external\" href=\"http://matplotlib.sourceforge.net/api/pyplot_api.html#matplotlib.pyplot.legend\"\u003elegend() command\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca class=\"reference external\" href=\"http://matplotlib.sourceforge.net/api/legend_api.html#matplotlib.legend.Legend\"\u003eLegend API\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/div\u003e\n\u003ca class=\"reference external image-reference\" href=\"scripts/exercice_8.py\"\u003e\u003cimg alt=\"figures/exercice_8.png\" class=\"align-right\" src=\"figures/exercice_8.png\" /\u003e\u003c/a\u003e\n\u003cp\u003eLet's add a legend in the upper left corner. This only requires adding the\nkeyword argument label (that will be used in the legend box) to the plot\ncommands.\u003c/p\u003e\n\u003cpre class=\"literal-block\"\u003e\n...\nplt.plot(X, C, color=\u0026quot;blue\u0026quot;, linewidth=2.5, linestyle=\u0026quot;-\u0026quot;, label=\u0026quot;cosine\u0026quot;)\nplt.plot(X, S, color=\u0026quot;red\u0026quot;,  linewidth=2.5, linestyle=\u0026quot;-\u0026quot;, label=\u0026quot;sine\u0026quot;)\n\nplt.legend(loc='upper left', frameon=False)\n...\n\u003c/pre\u003e\n\u003c/div\u003e\n\u003cdiv class=\"section\" id=\"annotate-some-points\"\u003e\n\u003ch2\u003eAnnotate some points\u003c/h2\u003e\n\u003cdiv class=\"admonition admonition-documentation\"\u003e\n\u003cp class=\"first admonition-title\"\u003eDocumentation\u003c/p\u003e\n\u003cul class=\"last simple\"\u003e\n\u003cli\u003e\u003ca class=\"reference external\" href=\"http://matplotlib.sourceforge.net/users/annotations_guide.html\"\u003eAnnotating axis\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca class=\"reference external\" href=\"http://matplotlib.sourceforge.net/api/pyplot_api.html#matplotlib.pyplot.annotate\"\u003eannotate() command\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/div\u003e\n\u003ca class=\"reference external image-reference\" href=\"scripts/exercice_9.py\"\u003e\u003cimg alt=\"figures/exercice_9.png\" class=\"align-right\" src=\"figures/exercice_9.png\" /\u003e\u003c/a\u003e\n\u003cp\u003eLet's annotate some interesting points using the annotate command. We choose the\n2π/3 value and we want to annotate both the sine and the cosine. We'll first\ndraw a marker on the curve as well as a straight dotted line. Then, we'll use\nthe annotate command to display some text with an arrow.\u003c/p\u003e\n\u003cpre class=\"literal-block\"\u003e\n...\n\nt = 2*np.pi/3\nplt.plot([t,t],[0,np.cos(t)], color ='blue', linewidth=1.5, linestyle=\u0026quot;--\u0026quot;)\nplt.scatter([t,],[np.cos(t),], 50, color ='blue')\n\nplt.annotate(r'$\\sin(\\frac{2\\pi}{3})=\\frac{\\sqrt{3}}{2}$',\n             xy=(t, np.sin(t)), xycoords='data',\n             xytext=(+10, +30), textcoords='offset points', fontsize=16,\n             arrowprops=dict(arrowstyle=\u0026quot;-\u0026gt;\u0026quot;, connectionstyle=\u0026quot;arc3,rad=.2\u0026quot;))\n\nplt.plot([t,t],[0,np.sin(t)], color ='red', linewidth=1.5, linestyle=\u0026quot;--\u0026quot;)\nplt.scatter([t,],[np.sin(t),], 50, color ='red')\n\nplt.annotate(r'$\\cos(\\frac{2\\pi}{3})=-\\frac{1}{2}$',\n             xy=(t, np.cos(t)), xycoords='data',\n             xytext=(-90, -50), textcoords='offset points', fontsize=16,\n             arrowprops=dict(arrowstyle=\u0026quot;-\u0026gt;\u0026quot;, connectionstyle=\u0026quot;arc3,rad=.2\u0026quot;))\n...\n\u003c/pre\u003e\n\u003c/div\u003e\n\u003cdiv class=\"section\" id=\"devil-is-in-the-details\"\u003e\n\u003ch2\u003eDevil is in the details\u003c/h2\u003e\n\u003cdiv class=\"admonition admonition-documentation\"\u003e\n\u003cp class=\"first admonition-title\"\u003eDocumentation\u003c/p\u003e\n\u003cul class=\"last simple\"\u003e\n\u003cli\u003e\u003ca class=\"reference external\" href=\"http://matplotlib.sourceforge.net/api/artist_api.html\"\u003eArtists\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca class=\"reference external\" href=\"http://matplotlib.sourceforge.net/api/artist_api.html#matplotlib.text.Text.set_bbox\"\u003eBBox\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/div\u003e\n\u003ca class=\"reference external image-reference\" href=\"scripts/exercice_10.py\"\u003e\u003cimg alt=\"figures/exercice_10.png\" class=\"align-right\" src=\"figures/exercice_10.png\" /\u003e\u003c/a\u003e\n\u003cp\u003eThe tick labels are now hardly visible because of the blue and red lines. We can\nmake them bigger and we can also adjust their properties such that they'll be\nrendered on a semi-transparent white background. This will allow us to see both\nthe data and the labels.\u003c/p\u003e\n\u003cpre class=\"literal-block\"\u003e\n...\nfor label in ax.get_xticklabels() + ax.get_yticklabels():\n    label.set_fontsize(16)\n    label.set_bbox(dict(facecolor='white', edgecolor='None', alpha=0.65 ))\n...\n\u003c/pre\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"section\" id=\"figures-subplots-axes-and-ticks\"\u003e\n\u003ch1\u003e\u003ca class=\"toc-backref\" href=\"#id7\"\u003eFigures, Subplots, Axes and Ticks\u003c/a\u003e\u003c/h1\u003e\n\u003cp\u003eSo far we have used implicit figure and axes creation. This is handy for fast\nplots. We can have more control over the display using figure, subplot, and\naxes explicitly. A figure in matplotlib means the whole window in the user\ninterface. Within this figure there can be subplots. While subplot positions\nthe plots in a regular grid, axes allows free placement within the figure. Both\ncan be useful depending on your intention. We've already worked with figures\nand subplots without explicitly calling them. When we call plot, matplotlib\ncalls gca() to get the current axes and gca in turn calls gcf() to get the\ncurrent figure. If there is none it calls figure() to make one, strictly\nspeaking, to make a subplot(111). Let's look at the details.\u003c/p\u003e\n\u003cdiv class=\"section\" id=\"figures\"\u003e\n\u003ch2\u003eFigures\u003c/h2\u003e\n\u003cp\u003eA figure is the windows in the GUI that has \u0026quot;Figure #\u0026quot; as title. Figures\nare numbered starting from 1 as opposed to the normal Python way starting\nfrom 0. This is clearly MATLAB-style.  There are several parameters that\ndetermine what the figure looks like:\u003c/p\u003e\n\u003ctable border=\"1\" class=\"docutils\"\u003e\n\u003ccolgroup\u003e\n\u003ccol width=\"17%\" /\u003e\n\u003ccol width=\"28%\" /\u003e\n\u003ccol width=\"54%\" /\u003e\n\u003c/colgroup\u003e\n\u003cthead valign=\"bottom\"\u003e\n\u003ctr\u003e\u003cth class=\"head\"\u003eArgument\u003c/th\u003e\n\u003cth class=\"head\"\u003eDefault\u003c/th\u003e\n\u003cth class=\"head\"\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody valign=\"top\"\u003e\n\u003ctr\u003e\u003ctd\u003enum\u003c/td\u003e\n\u003ctd\u003e1\u003c/td\u003e\n\u003ctd\u003enumber of figure\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003efigsize\u003c/td\u003e\n\u003ctd\u003efigure.figsize\u003c/td\u003e\n\u003ctd\u003efigure size in in inches (width, height)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003edpi\u003c/td\u003e\n\u003ctd\u003efigure.dpi\u003c/td\u003e\n\u003ctd\u003eresolution in dots per inch\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003efacecolor\u003c/td\u003e\n\u003ctd\u003efigure.facecolor\u003c/td\u003e\n\u003ctd\u003ecolor of the drawing background\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003eedgecolor\u003c/td\u003e\n\u003ctd\u003efigure.edgecolor\u003c/td\u003e\n\u003ctd\u003ecolor of edge around the drawing background\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003eframeon\u003c/td\u003e\n\u003ctd\u003eTrue\u003c/td\u003e\n\u003ctd\u003edraw figure frame or not\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eThe defaults can be specified in the resource file and will be used most of the\ntime. Only the number of the figure is frequently changed.\u003c/p\u003e\n\u003cp\u003eWhen you work with the GUI you can close a figure by clicking on the x in the\nupper right corner. You can also close a figure programmatically by calling\nclose. Depending on the argument it closes (1) the current figure (no\nargument), (2) a specific figure (figure number or figure instance as\nargument), or (3) all figures (all as argument).\u003c/p\u003e\n\u003cp\u003eAs with other objects, you can set figure properties with the set_something methods.\u003c/p\u003e\n\u003c/div\u003e\n\u003cdiv class=\"section\" id=\"subplots\"\u003e\n\u003ch2\u003eSubplots\u003c/h2\u003e\n\u003cp\u003eWith subplot you can arrange plots in a regular grid. You need to specify the\nnumber of rows and columns and the number of the plot. Note that the \u003ca class=\"reference external\" href=\"http://matplotlib.sourceforge.net/users/gridspec.html\"\u003egridspec\u003c/a\u003e command is a more\npowerful alternative.\u003c/p\u003e\n\u003ca class=\"reference external image-reference\" href=\"scripts/subplot-horizontal.py\"\u003e\u003cimg alt=\"figures/subplot-horizontal.png\" src=\"figures/subplot-horizontal.png\" /\u003e\u003c/a\u003e\n\u003ca class=\"reference external image-reference\" href=\"scripts/subplot-vertical.py\"\u003e\u003cimg alt=\"figures/subplot-vertical.png\" src=\"figures/subplot-vertical.png\" /\u003e\u003c/a\u003e\n\u003ca class=\"reference external image-reference\" href=\"scripts/subplot-grid.py\"\u003e\u003cimg alt=\"figures/subplot-grid.png\" src=\"figures/subplot-grid.png\" /\u003e\u003c/a\u003e\n\u003ca class=\"reference external image-reference\" href=\"scripts/gridspec.py\"\u003e\u003cimg alt=\"figures/gridspec.png\" src=\"figures/gridspec.png\" /\u003e\u003c/a\u003e\n\u003c/div\u003e\n\u003cdiv class=\"section\" id=\"axes\"\u003e\n\u003ch2\u003eAxes\u003c/h2\u003e\n\u003cp\u003eAxes are very similar to subplots but allow placement of plots at any location\nin the figure. So if we want to put a smaller plot inside a bigger one we do\nso with axes.\u003c/p\u003e\n\u003ca class=\"reference external image-reference\" href=\"scripts/axes.py\"\u003e\u003cimg alt=\"figures/axes.png\" src=\"figures/axes.png\" /\u003e\u003c/a\u003e\n\u003ca class=\"reference external image-reference\" href=\"scripts/axes-2.py\"\u003e\u003cimg alt=\"figures/axes-2.png\" src=\"figures/axes-2.png\" /\u003e\u003c/a\u003e\n\u003c/div\u003e\n\u003cdiv class=\"section\" id=\"ticks\"\u003e\n\u003ch2\u003eTicks\u003c/h2\u003e\n\u003cp\u003eWell formatted ticks are an important part of publishing-ready\nfigures. Matplotlib provides a totally configurable system for ticks. There are\ntick locators to specify where ticks should appear and tick formatters to give\nticks the appearance you want. Major and minor ticks can be located and\nformatted independently from each other. By default minor ticks are not shown,\ni.e. there is only an empty list for them because it is as NullLocator (see\nbelow).\u003c/p\u003e\n\u003cdiv class=\"section\" id=\"tick-locators\"\u003e\n\u003ch3\u003eTick Locators\u003c/h3\u003e\n\u003cp\u003eThere are several locators for different kind of requirements:\u003c/p\u003e\n\u003ctable border=\"1\" class=\"colwidths-given docutils\"\u003e\n\u003ccolgroup\u003e\n\u003ccol width=\"22%\" /\u003e\n\u003ccol width=\"78%\" /\u003e\n\u003c/colgroup\u003e\n\u003cthead valign=\"bottom\"\u003e\n\u003ctr\u003e\u003cth class=\"head\"\u003eClass\u003c/th\u003e\n\u003cth class=\"head\"\u003eDescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody valign=\"top\"\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ctt class=\"docutils literal\"\u003eNullLocator\u003c/tt\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cp class=\"first\"\u003eNo ticks.\u003c/p\u003e\n\u003cimg alt=\"figures/ticks-NullLocator.png\" class=\"last\" src=\"figures/ticks-NullLocator.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ctt class=\"docutils literal\"\u003eIndexLocator\u003c/tt\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cp class=\"first\"\u003ePlace a tick on every multiple of some base number of points plotted.\u003c/p\u003e\n\u003cimg alt=\"figures/ticks-IndexLocator.png\" class=\"last\" src=\"figures/ticks-IndexLocator.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ctt class=\"docutils literal\"\u003eFixedLocator\u003c/tt\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cp class=\"first\"\u003eTick locations are fixed.\u003c/p\u003e\n\u003cimg alt=\"figures/ticks-FixedLocator.png\" class=\"last\" src=\"figures/ticks-FixedLocator.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ctt class=\"docutils literal\"\u003eLinearLocator\u003c/tt\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cp class=\"first\"\u003eDetermine the tick locations.\u003c/p\u003e\n\u003cimg alt=\"figures/ticks-LinearLocator.png\" class=\"last\" src=\"figures/ticks-LinearLocator.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ctt class=\"docutils literal\"\u003eMultipleLocator\u003c/tt\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cp class=\"first\"\u003eSet a tick on every integer that is multiple of some base.\u003c/p\u003e\n\u003cimg alt=\"figures/ticks-MultipleLocator.png\" class=\"last\" src=\"figures/ticks-MultipleLocator.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ctt class=\"docutils literal\"\u003eAutoLocator\u003c/tt\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cp class=\"first\"\u003eSelect no more than n intervals at nice locations.\u003c/p\u003e\n\u003cimg alt=\"figures/ticks-AutoLocator.png\" class=\"last\" src=\"figures/ticks-AutoLocator.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ctt class=\"docutils literal\"\u003eLogLocator\u003c/tt\u003e\u003c/td\u003e\n\u003ctd\u003e\u003cp class=\"first\"\u003eDetermine the tick locations for log axes.\u003c/p\u003e\n\u003cimg alt=\"figures/ticks-LogLocator.png\" class=\"last\" src=\"figures/ticks-LogLocator.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eAll of these locators derive from the base class matplotlib.ticker.Locator.\nYou can make your own locator deriving from it. Handling dates as ticks can be\nespecially tricky. Therefore, matplotlib provides special locators in\nmatplotlib.dates.\u003c/p\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"section\" id=\"animation\"\u003e\n\u003ch1\u003e\u003ca class=\"toc-backref\" href=\"#id8\"\u003eAnimation\u003c/a\u003e\u003c/h1\u003e\n\u003cp\u003eFor quite a long time, animation in matplotlib was not an easy task and was\ndone mainly through clever hacks. However, things have started to change since\nversion 1.1 and the introduction of tools for creating animation very\nintuitively, with the possibility to save them in all kind of formats (but don't\nexpect to be able to run very complex animations at 60 fps though).\u003c/p\u003e\n\u003cdiv class=\"admonition admonition-documentation\"\u003e\n\u003cp class=\"first admonition-title\"\u003eDocumentation\u003c/p\u003e\n\u003cul class=\"last simple\"\u003e\n\u003cli\u003eSee \u003ca class=\"reference external\" href=\"http://matplotlib.org/api/animation_api.html\"\u003eAnimation\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/div\u003e\n\u003cp\u003eThe most easy way to make an animation in matplotlib is to declare a\nFuncAnimation object that specifies to matplotlib what is the figure to\nupdate, what is the update function and what is the delay between frames.\u003c/p\u003e\n\u003cdiv class=\"section\" id=\"drip-drop\"\u003e\n\u003ch2\u003eDrip drop\u003c/h2\u003e\n\u003cp\u003eA very simple rain effect can be obtained by having small growing rings\nrandomly positioned over a figure. Of course, they won't grow forever since the\nwave is supposed to damp with time. To simulate that, we can use a more and\nmore transparent color as the ring is growing, up to the point where it is no\nmore visible. At this point, we remove the ring and create a new one.\u003c/p\u003e\n\u003cp\u003eFirst step is to create a blank figure:\u003c/p\u003e\n\u003cpre class=\"code python literal-block\"\u003e\n\u003cspan class=\"comment single\"\u003e# New figure with white background\u003c/span\u003e\n\u003cspan class=\"name\"\u003efig\u003c/span\u003e \u003cspan class=\"operator\"\u003e=\u003c/span\u003e \u003cspan class=\"name\"\u003eplt\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003efigure\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"name\"\u003efigsize\u003c/span\u003e\u003cspan class=\"operator\"\u003e=\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e6\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e6\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e),\u003c/span\u003e \u003cspan class=\"name\"\u003efacecolor\u003c/span\u003e\u003cspan class=\"operator\"\u003e=\u003c/span\u003e\u003cspan class=\"literal string single\"\u003e'white'\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e)\u003c/span\u003e\n\n\u003cspan class=\"comment single\"\u003e# New axis over the whole figure, no frame and a 1:1 aspect ratio\u003c/span\u003e\n\u003cspan class=\"name\"\u003eax\u003c/span\u003e \u003cspan class=\"operator\"\u003e=\u003c/span\u003e \u003cspan class=\"name\"\u003efig\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003eadd_axes\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e([\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e0\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e0\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e1\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e1\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e],\u003c/span\u003e \u003cspan class=\"name\"\u003eframeon\u003c/span\u003e\u003cspan class=\"operator\"\u003e=\u003c/span\u003e\u003cspan class=\"keyword constant\"\u003eFalse\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e \u003cspan class=\"name\"\u003easpect\u003c/span\u003e\u003cspan class=\"operator\"\u003e=\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e1\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e)\u003c/span\u003e\n\u003c/pre\u003e\n\u003cp\u003eNext, we need to create several rings. For this, we can use the scatter plot\nobject that is generally used to visualize points cloud, but we can also use it\nto draw rings by specifying we don't have a facecolor. We also have to take\ncare of initial size and color for each ring such that we have all sizes between\na minimum and a maximum size. In addition, we need to make sure the largest ring\nis almost transparent.\u003c/p\u003e\n\u003ca class=\"reference external image-reference\" href=\"scripts/rain-static.py\"\u003e\u003cimg alt=\"figures/rain-static.png\" class=\"align-right\" src=\"figures/rain-static.png\" /\u003e\u003c/a\u003e\n\u003cpre class=\"code python literal-block\"\u003e\n\u003cspan class=\"comment single\"\u003e# Number of ring\u003c/span\u003e\n\u003cspan class=\"name\"\u003en\u003c/span\u003e \u003cspan class=\"operator\"\u003e=\u003c/span\u003e \u003cspan class=\"literal number integer\"\u003e50\u003c/span\u003e\n\u003cspan class=\"name\"\u003esize_min\u003c/span\u003e \u003cspan class=\"operator\"\u003e=\u003c/span\u003e \u003cspan class=\"literal number integer\"\u003e50\u003c/span\u003e\n\u003cspan class=\"name\"\u003esize_max\u003c/span\u003e \u003cspan class=\"operator\"\u003e=\u003c/span\u003e \u003cspan class=\"literal number integer\"\u003e50\u003c/span\u003e\u003cspan class=\"operator\"\u003e*\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e50\u003c/span\u003e\n\n\u003cspan class=\"comment single\"\u003e# Ring position\u003c/span\u003e\n\u003cspan class=\"name\"\u003eP\u003c/span\u003e \u003cspan class=\"operator\"\u003e=\u003c/span\u003e \u003cspan class=\"name\"\u003enp\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003erandom\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003euniform\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e0\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e1\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,(\u003c/span\u003e\u003cspan class=\"name\"\u003en\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e2\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e))\u003c/span\u003e\n\n\u003cspan class=\"comment single\"\u003e# Ring colors\u003c/span\u003e\n\u003cspan class=\"name\"\u003eC\u003c/span\u003e \u003cspan class=\"operator\"\u003e=\u003c/span\u003e \u003cspan class=\"name\"\u003enp\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003eones\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e((\u003c/span\u003e\u003cspan class=\"name\"\u003en\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e4\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e))\u003c/span\u003e \u003cspan class=\"operator\"\u003e*\u003c/span\u003e \u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e0\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e0\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e0\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e1\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e)\u003c/span\u003e\n\u003cspan class=\"comment single\"\u003e# Alpha color channel goes from 0 (transparent) to 1 (opaque)\u003c/span\u003e\n\u003cspan class=\"name\"\u003eC\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e[:,\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e3\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e]\u003c/span\u003e \u003cspan class=\"operator\"\u003e=\u003c/span\u003e \u003cspan class=\"name\"\u003enp\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003elinspace\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e0\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e1\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e\u003cspan class=\"name\"\u003en\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e)\u003c/span\u003e\n\n\u003cspan class=\"comment single\"\u003e# Ring sizes\u003c/span\u003e\n\u003cspan class=\"name\"\u003eS\u003c/span\u003e \u003cspan class=\"operator\"\u003e=\u003c/span\u003e \u003cspan class=\"name\"\u003enp\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003elinspace\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"name\"\u003esize_min\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e \u003cspan class=\"name\"\u003esize_max\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e \u003cspan class=\"name\"\u003en\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e)\u003c/span\u003e\n\n\u003cspan class=\"comment single\"\u003e# Scatter plot\u003c/span\u003e\n\u003cspan class=\"name\"\u003escat\u003c/span\u003e \u003cspan class=\"operator\"\u003e=\u003c/span\u003e \u003cspan class=\"name\"\u003eax\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003escatter\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"name\"\u003eP\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e[:,\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e0\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e],\u003c/span\u003e \u003cspan class=\"name\"\u003eP\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e[:,\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e1\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e],\u003c/span\u003e \u003cspan class=\"name\"\u003es\u003c/span\u003e\u003cspan class=\"operator\"\u003e=\u003c/span\u003e\u003cspan class=\"name\"\u003eS\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e \u003cspan class=\"name\"\u003elw\u003c/span\u003e \u003cspan class=\"operator\"\u003e=\u003c/span\u003e \u003cspan class=\"literal number float\"\u003e0.5\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e\n                  \u003cspan class=\"name\"\u003eedgecolors\u003c/span\u003e \u003cspan class=\"operator\"\u003e=\u003c/span\u003e \u003cspan class=\"name\"\u003eC\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e \u003cspan class=\"name\"\u003efacecolors\u003c/span\u003e\u003cspan class=\"operator\"\u003e=\u003c/span\u003e\u003cspan class=\"literal string single\"\u003e'None'\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e)\u003c/span\u003e\n\n\u003cspan class=\"comment single\"\u003e# Ensure limits are [0,1] and remove ticks\u003c/span\u003e\n\u003cspan class=\"name\"\u003eax\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003eset_xlim\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e0\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e1\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e),\u003c/span\u003e \u003cspan class=\"name\"\u003eax\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003eset_xticks\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e([])\u003c/span\u003e\n\u003cspan class=\"name\"\u003eax\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003eset_ylim\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e0\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e1\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e),\u003c/span\u003e \u003cspan class=\"name\"\u003eax\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003eset_yticks\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e([])\u003c/span\u003e\n\u003c/pre\u003e\n\u003cp\u003eNow, we need to write the update function for our animation. We know that at\neach time step each ring should grow and become more transparent while the\nlargest ring should be totally transparent and thus removed. Of course, we won't\nactually remove the largest ring but re-use it to set a new ring at a new random\nposition, with nominal size and color. Hence, we keep the number of rings\nconstant.\u003c/p\u003e\n\u003ca class=\"reference external image-reference\" href=\"scripts/rain-dynamic.py\"\u003e\u003cimg alt=\"figures/rain.gif\" class=\"align-right\" src=\"figures/rain.gif\" /\u003e\u003c/a\u003e\n\u003cpre class=\"code python literal-block\"\u003e\n\u003cspan class=\"keyword\"\u003edef\u003c/span\u003e \u003cspan class=\"name function\"\u003eupdate\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"name\"\u003eframe\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e):\u003c/span\u003e\n    \u003cspan class=\"keyword\"\u003eglobal\u003c/span\u003e \u003cspan class=\"name\"\u003eP\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e \u003cspan class=\"name\"\u003eC\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e \u003cspan class=\"name\"\u003eS\u003c/span\u003e\n\n    \u003cspan class=\"comment single\"\u003e# Every ring is made more transparent\u003c/span\u003e\n    \u003cspan class=\"name\"\u003eC\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e[:,\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e3\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e]\u003c/span\u003e \u003cspan class=\"operator\"\u003e=\u003c/span\u003e \u003cspan class=\"name\"\u003enp\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003emaximum\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e0\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e \u003cspan class=\"name\"\u003eC\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e[:,\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e3\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e]\u003c/span\u003e \u003cspan class=\"operator\"\u003e-\u003c/span\u003e \u003cspan class=\"literal number float\"\u003e1.0\u003c/span\u003e\u003cspan class=\"operator\"\u003e/\u003c/span\u003e\u003cspan class=\"name\"\u003en\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e)\u003c/span\u003e\n\n    \u003cspan class=\"comment single\"\u003e# Each ring is made larger\u003c/span\u003e\n    \u003cspan class=\"name\"\u003eS\u003c/span\u003e \u003cspan class=\"operator\"\u003e+=\u003c/span\u003e \u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"name\"\u003esize_max\u003c/span\u003e \u003cspan class=\"operator\"\u003e-\u003c/span\u003e \u003cspan class=\"name\"\u003esize_min\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e)\u003c/span\u003e \u003cspan class=\"operator\"\u003e/\u003c/span\u003e \u003cspan class=\"name\"\u003en\u003c/span\u003e\n\n    \u003cspan class=\"comment single\"\u003e# Reset ring specific ring (relative to frame number)\u003c/span\u003e\n    \u003cspan class=\"name\"\u003ei\u003c/span\u003e \u003cspan class=\"operator\"\u003e=\u003c/span\u003e \u003cspan class=\"name\"\u003eframe\u003c/span\u003e \u003cspan class=\"operator\"\u003e%\u003c/span\u003e \u003cspan class=\"literal number integer\"\u003e50\u003c/span\u003e\n    \u003cspan class=\"name\"\u003eP\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e[\u003c/span\u003e\u003cspan class=\"name\"\u003ei\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e]\u003c/span\u003e \u003cspan class=\"operator\"\u003e=\u003c/span\u003e \u003cspan class=\"name\"\u003enp\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003erandom\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003euniform\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e0\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e1\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e2\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e)\u003c/span\u003e\n    \u003cspan class=\"name\"\u003eS\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e[\u003c/span\u003e\u003cspan class=\"name\"\u003ei\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e]\u003c/span\u003e \u003cspan class=\"operator\"\u003e=\u003c/span\u003e \u003cspan class=\"name\"\u003esize_min\u003c/span\u003e\n    \u003cspan class=\"name\"\u003eC\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e[\u003c/span\u003e\u003cspan class=\"name\"\u003ei\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e3\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e]\u003c/span\u003e \u003cspan class=\"operator\"\u003e=\u003c/span\u003e \u003cspan class=\"literal number integer\"\u003e1\u003c/span\u003e\n\n    \u003cspan class=\"comment single\"\u003e# Update scatter object\u003c/span\u003e\n    \u003cspan class=\"name\"\u003escat\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003eset_edgecolors\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"name\"\u003eC\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e)\u003c/span\u003e\n    \u003cspan class=\"name\"\u003escat\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003eset_sizes\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"name\"\u003eS\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e)\u003c/span\u003e\n    \u003cspan class=\"name\"\u003escat\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003eset_offsets\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"name\"\u003eP\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e)\u003c/span\u003e\n\n    \u003cspan class=\"comment single\"\u003e# Return the modified object\u003c/span\u003e\n    \u003cspan class=\"keyword\"\u003ereturn\u003c/span\u003e \u003cspan class=\"name\"\u003escat\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e\n\u003c/pre\u003e\n\u003cp\u003eLast step is to tell matplotlib to use this function as an update function for\nthe animation and display the result or save it as a movie:\u003c/p\u003e\n\u003cpre class=\"code python literal-block\"\u003e\n\u003cspan class=\"name\"\u003eanimation\u003c/span\u003e \u003cspan class=\"operator\"\u003e=\u003c/span\u003e \u003cspan class=\"name\"\u003eFuncAnimation\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"name\"\u003efig\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e \u003cspan class=\"name\"\u003eupdate\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e \u003cspan class=\"name\"\u003einterval\u003c/span\u003e\u003cspan class=\"operator\"\u003e=\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e10\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e \u003cspan class=\"name\"\u003eblit\u003c/span\u003e\u003cspan class=\"operator\"\u003e=\u003c/span\u003e\u003cspan class=\"keyword constant\"\u003eTrue\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e \u003cspan class=\"name\"\u003eframes\u003c/span\u003e\u003cspan class=\"operator\"\u003e=\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e200\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e)\u003c/span\u003e\n\u003cspan class=\"comment single\"\u003e# animation.save('rain.gif', writer='imagemagick', fps=30, dpi=40)\u003c/span\u003e\n\u003cspan class=\"name\"\u003eplt\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003eshow\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e()\u003c/span\u003e\n\u003c/pre\u003e\n\u003cp\u003eIf you use IPython, you'll have to render the animation into an html video\nin order to show it in the Jupyter notebook:\u003c/p\u003e\n\u003cpre class=\"code python literal-block\"\u003e\n\u003cspan class=\"keyword namespace\"\u003efrom\u003c/span\u003e \u003cspan class=\"name namespace\"\u003eIPython.display\u003c/span\u003e \u003cspan class=\"keyword namespace\"\u003eimport\u003c/span\u003e \u003cspan class=\"name\"\u003eHTML\u003c/span\u003e\n\u003cspan class=\"name\"\u003eHTML\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"name\"\u003eanimation\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003eto_html5_video\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e())\u003c/span\u003e\n\u003c/pre\u003e\n\u003c/div\u003e\n\u003cdiv class=\"section\" id=\"earthquakes\"\u003e\n\u003ch2\u003eEarthquakes\u003c/h2\u003e\n\u003cp\u003eWe'll now use the rain animation to visualize earthquakes on the planet from\nthe last 30 days. The USGS Earthquake Hazards Program is part of the National\nEarthquake Hazards Reduction Program (NEHRP) and provides several data on their\n\u003ca class=\"reference external\" href=\"https://earthquake.usgs.gov\"\u003ewebsite\u003c/a\u003e. Those data are sorted according to\nearthquakes magnitude, ranging from significant only down to all earthquakes,\nmajor or minor. You would be surprised by the number of minor earthquakes\nhappening every hour on the planet. Since this would represent too much data\nfor us, we'll stick to earthquakes with magnitude \u0026gt; 4.5. At the time of writing,\nthis already represent more than 300 earthquakes in the last 30 days.\u003c/p\u003e\n\u003cp\u003eFirst step is to read and convert data. We'll use the \u003ccite\u003eurllib\u003c/cite\u003e library that\nallows us to open and read remote data. Data on the website use the \u003ccite\u003eCSV\u003c/cite\u003e format\nwhose content is given by the first line:\u003c/p\u003e\n\u003cpre class=\"literal-block\"\u003e\ntime,latitude,longitude,depth,mag,magType,nst,gap,dmin,rms,net,id,updated,place,type\n2015-08-17T13:49:17.320Z,37.8365,-122.2321667,4.82,4.01,mw,...\n2015-08-15T07:47:06.640Z,-10.9045,163.8766,6.35,6.6,mwp,...\n\u003c/pre\u003e\n\u003cp\u003eWe are only interested in latitude, longitude and magnitude and we won't parse\ntime of event (ok, that's bad, feel free to send me a PR).\u003c/p\u003e\n\u003cpre class=\"code python literal-block\"\u003e\n\u003cspan class=\"keyword namespace\"\u003eimport\u003c/span\u003e \u003cspan class=\"name namespace\"\u003eurllib\u003c/span\u003e\n\n\u003cspan class=\"comment single\"\u003e# -\u0026gt; https://earthquake.usgs.gov/earthquakes/feed/v1.0/csv.php\u003c/span\u003e\n\u003cspan class=\"name\"\u003efeed\u003c/span\u003e \u003cspan class=\"operator\"\u003e=\u003c/span\u003e \u003cspan class=\"literal string double\"\u003e\u0026quot;https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/\u0026quot;\u003c/span\u003e\n\n\u003cspan class=\"comment single\"\u003e# Significant earthquakes in the last 30 days\u003c/span\u003e\n\u003cspan class=\"comment single\"\u003e# url = urllib.request.urlopen(feed + \u0026quot;significant_month.csv\u0026quot;)\u003c/span\u003e\n\n\u003cspan class=\"comment single\"\u003e# Magnitude \u0026gt; 4.5\u003c/span\u003e\n\u003cspan class=\"name\"\u003eurl\u003c/span\u003e \u003cspan class=\"operator\"\u003e=\u003c/span\u003e \u003cspan class=\"name\"\u003eurllib\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003erequest\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003eurlopen\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"name\"\u003efeed\u003c/span\u003e \u003cspan class=\"operator\"\u003e+\u003c/span\u003e \u003cspan class=\"literal string double\"\u003e\u0026quot;4.5_month.csv\u0026quot;\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e)\u003c/span\u003e\n\n\u003cspan class=\"comment single\"\u003e# Magnitude \u0026gt; 2.5\u003c/span\u003e\n\u003cspan class=\"comment single\"\u003e# url = urllib.request.urlopen(feed + \u0026quot;2.5_month.csv\u0026quot;)\u003c/span\u003e\n\n\u003cspan class=\"comment single\"\u003e# Magnitude \u0026gt; 1.0\u003c/span\u003e\n\u003cspan class=\"comment single\"\u003e# url = urllib.request.urlopen(feed + \u0026quot;1.0_month.csv\u0026quot;)\u003c/span\u003e\n\n\u003cspan class=\"comment single\"\u003e# Reading and storage of data\u003c/span\u003e\n\u003cspan class=\"name\"\u003edata\u003c/span\u003e \u003cspan class=\"operator\"\u003e=\u003c/span\u003e \u003cspan class=\"name\"\u003eurl\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003eread\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e()\u003c/span\u003e\n\u003cspan class=\"name\"\u003edata\u003c/span\u003e \u003cspan class=\"operator\"\u003e=\u003c/span\u003e \u003cspan class=\"name\"\u003edata\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003esplit\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"literal string affix\"\u003eb\u003c/span\u003e\u003cspan class=\"literal string single\"\u003e'\u003c/span\u003e\u003cspan class=\"literal string escape\"\u003e\\n\u003c/span\u003e\u003cspan class=\"literal string single\"\u003e'\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e)[\u003c/span\u003e\u003cspan class=\"operator\"\u003e+\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e1\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e:\u003c/span\u003e\u003cspan class=\"operator\"\u003e-\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e1\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e]\u003c/span\u003e\n\u003cspan class=\"name\"\u003eE\u003c/span\u003e \u003cspan class=\"operator\"\u003e=\u003c/span\u003e \u003cspan class=\"name\"\u003enp\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003ezeros\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"name builtin\"\u003elen\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"name\"\u003edata\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e),\u003c/span\u003e \u003cspan class=\"name\"\u003edtype\u003c/span\u003e\u003cspan class=\"operator\"\u003e=\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e[(\u003c/span\u003e\u003cspan class=\"literal string single\"\u003e'position'\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e  \u003cspan class=\"name builtin\"\u003efloat\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e \u003cspan class=\"literal number integer\"\u003e2\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e),\u003c/span\u003e\n                               \u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"literal string single\"\u003e'magnitude'\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e \u003cspan class=\"name builtin\"\u003efloat\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e)])\u003c/span\u003e\n\n\u003cspan class=\"keyword\"\u003efor\u003c/span\u003e \u003cspan class=\"name\"\u003ei\u003c/span\u003e \u003cspan class=\"operator word\"\u003ein\u003c/span\u003e \u003cspan class=\"name builtin\"\u003erange\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"name builtin\"\u003elen\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"name\"\u003edata\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e)):\u003c/span\u003e\n    \u003cspan class=\"name\"\u003erow\u003c/span\u003e \u003cspan class=\"operator\"\u003e=\u003c/span\u003e \u003cspan class=\"name\"\u003edata\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e[\u003c/span\u003e\u003cspan class=\"name\"\u003ei\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e]\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003esplit\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"literal string affix\"\u003eb\u003c/span\u003e\u003cspan class=\"literal string single\"\u003e','\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e)\u003c/span\u003e\n    \u003cspan class=\"name\"\u003eE\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e[\u003c/span\u003e\u003cspan class=\"literal string single\"\u003e'position'\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e][\u003c/span\u003e\u003cspan class=\"name\"\u003ei\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e]\u003c/span\u003e \u003cspan class=\"operator\"\u003e=\u003c/span\u003e \u003cspan class=\"name builtin\"\u003efloat\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"name\"\u003erow\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e[\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e2\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e]),\u003c/span\u003e\u003cspan class=\"name builtin\"\u003efloat\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"name\"\u003erow\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e[\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e1\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e])\u003c/span\u003e\n    \u003cspan class=\"name\"\u003eE\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e[\u003c/span\u003e\u003cspan class=\"literal string single\"\u003e'magnitude'\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e][\u003c/span\u003e\u003cspan class=\"name\"\u003ei\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e]\u003c/span\u003e \u003cspan class=\"operator\"\u003e=\u003c/span\u003e \u003cspan class=\"name builtin\"\u003efloat\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"name\"\u003erow\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e[\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e4\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e])\u003c/span\u003e\n\u003c/pre\u003e\n\u003cp\u003eNow, we need to draw the earth on a figure to show precisely where the earthquake\ncenter is and to translate latitude/longitude in some coordinates matplotlib\ncan handle. Fortunately, there is the \u003ca class=\"reference external\" href=\"https://matplotlib.org/basemap/\"\u003ebasemap\u003c/a\u003e project (which is now deprecated in favor\nof the \u003ca class=\"reference external\" href=\"https://scitools.org.uk/cartopy/docs/latest/\"\u003ecartopy\u003c/a\u003e project) that is really\nsimple to install and to use. First step is to define a projection to draw the\nearth onto a screen (there exists many different projections) and we'll stick\nto the \u003ccite\u003emill\u003c/cite\u003e projection which is rather standard for non-specialist like me.\u003c/p\u003e\n\u003cpre class=\"code python literal-block\"\u003e\n\u003cspan class=\"keyword namespace\"\u003efrom\u003c/span\u003e \u003cspan class=\"name namespace\"\u003empl_toolkits.basemap\u003c/span\u003e \u003cspan class=\"keyword namespace\"\u003eimport\u003c/span\u003e \u003cspan class=\"name\"\u003eBasemap\u003c/span\u003e\n\u003cspan class=\"name\"\u003efig\u003c/span\u003e \u003cspan class=\"operator\"\u003e=\u003c/span\u003e \u003cspan class=\"name\"\u003eplt\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003efigure\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"name\"\u003efigsize\u003c/span\u003e\u003cspan class=\"operator\"\u003e=\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e14\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e10\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e))\u003c/span\u003e\n\u003cspan class=\"name\"\u003eax\u003c/span\u003e \u003cspan class=\"operator\"\u003e=\u003c/span\u003e \u003cspan class=\"name\"\u003eplt\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003esubplot\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e1\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e1\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e1\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e)\u003c/span\u003e\n\n\u003cspan class=\"name builtin\"\u003emap\u003c/span\u003e \u003cspan class=\"operator\"\u003e=\u003c/span\u003e \u003cspan class=\"name\"\u003eBasemap\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"name\"\u003eprojection\u003c/span\u003e\u003cspan class=\"operator\"\u003e=\u003c/span\u003e\u003cspan class=\"literal string single\"\u003e'mill'\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e)\u003c/span\u003e\n\u003c/pre\u003e\n\u003cp\u003eNext, we request to draw coastline and fill continents:\u003c/p\u003e\n\u003cpre class=\"code python literal-block\"\u003e\n\u003cspan class=\"name builtin\"\u003emap\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003edrawcoastlines\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"name\"\u003ecolor\u003c/span\u003e\u003cspan class=\"operator\"\u003e=\u003c/span\u003e\u003cspan class=\"literal string single\"\u003e'0.50'\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e \u003cspan class=\"name\"\u003elinewidth\u003c/span\u003e\u003cspan class=\"operator\"\u003e=\u003c/span\u003e\u003cspan class=\"literal number float\"\u003e0.25\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e)\u003c/span\u003e\n\u003cspan class=\"name builtin\"\u003emap\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003efillcontinents\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"name\"\u003ecolor\u003c/span\u003e\u003cspan class=\"operator\"\u003e=\u003c/span\u003e\u003cspan class=\"literal string single\"\u003e'0.95'\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e)\u003c/span\u003e\n\u003c/pre\u003e\n\u003cp\u003eFor cartopy, the steps are quite similar:\u003c/p\u003e\n\u003cpre class=\"code python literal-block\"\u003e\n\u003cspan class=\"keyword namespace\"\u003eimport\u003c/span\u003e \u003cspan class=\"name namespace\"\u003ecartopy\u003c/span\u003e\n\u003cspan class=\"name\"\u003eax\u003c/span\u003e \u003cspan class=\"operator\"\u003e=\u003c/span\u003e \u003cspan class=\"name\"\u003eplt\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003eaxes\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"name\"\u003eprojection\u003c/span\u003e\u003cspan class=\"operator\"\u003e=\u003c/span\u003e\u003cspan class=\"name\"\u003ecartopy\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003ecrs\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003eMiller\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e())\u003c/span\u003e\n\u003cspan class=\"name\"\u003eax\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003ecoastlines\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"name\"\u003ecolor\u003c/span\u003e\u003cspan class=\"operator\"\u003e=\u003c/span\u003e\u003cspan class=\"literal string single\"\u003e'0.50'\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e \u003cspan class=\"name\"\u003elinewidth\u003c/span\u003e\u003cspan class=\"operator\"\u003e=\u003c/span\u003e\u003cspan class=\"literal number float\"\u003e0.25\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e)\u003c/span\u003e\n\u003cspan class=\"name\"\u003eax\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003eadd_feature\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"name\"\u003ecartopy\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003efeature\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003eLAND\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e \u003cspan class=\"name\"\u003ecolor\u003c/span\u003e\u003cspan class=\"operator\"\u003e=\u003c/span\u003e\u003cspan class=\"literal string single\"\u003e'0.95'\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e)\u003c/span\u003e\n\u003cspan class=\"name\"\u003eax\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003eset_global\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e()\u003c/span\u003e\n\u003cspan class=\"name\"\u003etrans\u003c/span\u003e \u003cspan class=\"operator\"\u003e=\u003c/span\u003e \u003cspan class=\"name\"\u003ecartopy\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003ecrs\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003ePlateCarree\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e()\u003c/span\u003e\n\u003c/pre\u003e\n\u003cp\u003eWe are almost finished. Last step is to adapt the rain code and\nput some eye candy. For basemap we use the map object to\ntransform the coordinates whereas for cartopy we use the transform_point\nfunction of the chosen Miller projection:\u003c/p\u003e\n\u003cpre class=\"code python literal-block\"\u003e\n\u003cspan class=\"name\"\u003eP\u003c/span\u003e \u003cspan class=\"operator\"\u003e=\u003c/span\u003e \u003cspan class=\"name\"\u003enp\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003ezeros\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e50\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e \u003cspan class=\"name\"\u003edtype\u003c/span\u003e\u003cspan class=\"operator\"\u003e=\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e[(\u003c/span\u003e\u003cspan class=\"literal string single\"\u003e'position'\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e \u003cspan class=\"name builtin\"\u003efloat\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e \u003cspan class=\"literal number integer\"\u003e2\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e),\u003c/span\u003e\n                         \u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"literal string single\"\u003e'size'\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e    \u003cspan class=\"name builtin\"\u003efloat\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e),\u003c/span\u003e\n                         \u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"literal string single\"\u003e'growth'\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e  \u003cspan class=\"name builtin\"\u003efloat\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e),\u003c/span\u003e\n                         \u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"literal string single\"\u003e'color'\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e   \u003cspan class=\"name builtin\"\u003efloat\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e \u003cspan class=\"literal number integer\"\u003e4\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e)])\u003c/span\u003e\n\u003cspan class=\"name\"\u003escat\u003c/span\u003e \u003cspan class=\"operator\"\u003e=\u003c/span\u003e \u003cspan class=\"name\"\u003eax\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003escatter\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"name\"\u003eP\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e[\u003c/span\u003e\u003cspan class=\"literal string single\"\u003e'position'\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e][:,\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e0\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e],\u003c/span\u003e \u003cspan class=\"name\"\u003eP\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e[\u003c/span\u003e\u003cspan class=\"literal string single\"\u003e'position'\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e][:,\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e1\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e],\u003c/span\u003e \u003cspan class=\"name\"\u003eP\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e[\u003c/span\u003e\u003cspan class=\"literal string single\"\u003e'size'\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e],\u003c/span\u003e \u003cspan class=\"name\"\u003elw\u003c/span\u003e\u003cspan class=\"operator\"\u003e=\u003c/span\u003e\u003cspan class=\"literal number float\"\u003e0.5\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e\n                  \u003cspan class=\"name\"\u003eedgecolors\u003c/span\u003e \u003cspan class=\"operator\"\u003e=\u003c/span\u003e \u003cspan class=\"name\"\u003eP\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e[\u003c/span\u003e\u003cspan class=\"literal string single\"\u003e'color'\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e],\u003c/span\u003e \u003cspan class=\"name\"\u003efacecolors\u003c/span\u003e\u003cspan class=\"operator\"\u003e=\u003c/span\u003e\u003cspan class=\"literal string single\"\u003e'None'\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e \u003cspan class=\"name\"\u003ezorder\u003c/span\u003e\u003cspan class=\"operator\"\u003e=\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e10\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e)\u003c/span\u003e\n\n\u003cspan class=\"keyword\"\u003edef\u003c/span\u003e \u003cspan class=\"name function\"\u003eupdate\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"name\"\u003eframe\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e):\u003c/span\u003e\n    \u003cspan class=\"name\"\u003ecurrent\u003c/span\u003e \u003cspan class=\"operator\"\u003e=\u003c/span\u003e \u003cspan class=\"name\"\u003eframe\u003c/span\u003e \u003cspan class=\"operator\"\u003e%\u003c/span\u003e \u003cspan class=\"name builtin\"\u003elen\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"name\"\u003eE\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e)\u003c/span\u003e\n    \u003cspan class=\"name\"\u003ei\u003c/span\u003e \u003cspan class=\"operator\"\u003e=\u003c/span\u003e \u003cspan class=\"name\"\u003eframe\u003c/span\u003e \u003cspan class=\"operator\"\u003e%\u003c/span\u003e \u003cspan class=\"name builtin\"\u003elen\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"name\"\u003eP\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e)\u003c/span\u003e\n\n    \u003cspan class=\"name\"\u003eP\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e[\u003c/span\u003e\u003cspan class=\"literal string single\"\u003e'color'\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e][:,\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e3\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e]\u003c/span\u003e \u003cspan class=\"operator\"\u003e=\u003c/span\u003e \u003cspan class=\"name\"\u003enp\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003emaximum\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e0\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e \u003cspan class=\"name\"\u003eP\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e[\u003c/span\u003e\u003cspan class=\"literal string single\"\u003e'color'\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e][:,\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e3\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e]\u003c/span\u003e \u003cspan class=\"operator\"\u003e-\u003c/span\u003e \u003cspan class=\"literal number float\"\u003e1.0\u003c/span\u003e\u003cspan class=\"operator\"\u003e/\u003c/span\u003e\u003cspan class=\"name builtin\"\u003elen\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"name\"\u003eP\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e))\u003c/span\u003e\n    \u003cspan class=\"name\"\u003eP\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e[\u003c/span\u003e\u003cspan class=\"literal string single\"\u003e'size'\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e]\u003c/span\u003e \u003cspan class=\"operator\"\u003e+=\u003c/span\u003e \u003cspan class=\"name\"\u003eP\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e[\u003c/span\u003e\u003cspan class=\"literal string single\"\u003e'growth'\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e]\u003c/span\u003e\n\n    \u003cspan class=\"name\"\u003emagnitude\u003c/span\u003e \u003cspan class=\"operator\"\u003e=\u003c/span\u003e \u003cspan class=\"name\"\u003eE\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e[\u003c/span\u003e\u003cspan class=\"literal string single\"\u003e'magnitude'\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e][\u003c/span\u003e\u003cspan class=\"name\"\u003ecurrent\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e]\u003c/span\u003e\n    \u003cspan class=\"name\"\u003eP\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e[\u003c/span\u003e\u003cspan class=\"literal string single\"\u003e'position'\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e][\u003c/span\u003e\u003cspan class=\"name\"\u003ei\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e]\u003c/span\u003e \u003cspan class=\"operator\"\u003e=\u003c/span\u003e \u003cspan class=\"name builtin\"\u003emap\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"operator\"\u003e*\u003c/span\u003e\u003cspan class=\"name\"\u003eE\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e[\u003c/span\u003e\u003cspan class=\"literal string single\"\u003e'position'\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e][\u003c/span\u003e\u003cspan class=\"name\"\u003ecurrent\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e])\u003c/span\u003e \u003cspan class=\"keyword\"\u003eif\u003c/span\u003e \u003cspan class=\"name\"\u003euse_basemap\u003c/span\u003e \u003cspan class=\"keyword\"\u003eelse\u003c/span\u003e \\\n        \u003cspan class=\"name\"\u003ecartopy\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003ecrs\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003eMiller\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e()\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003etransform_point\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"operator\"\u003e*\u003c/span\u003e\u003cspan class=\"name\"\u003eE\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e[\u003c/span\u003e\u003cspan class=\"literal string single\"\u003e'position'\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e][\u003c/span\u003e\u003cspan class=\"name\"\u003ecurrent\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e],\u003c/span\u003e \u003cspan class=\"name\"\u003ecartopy\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003ecrs\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003ePlateCarree\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e())\u003c/span\u003e\n    \u003cspan class=\"name\"\u003eP\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e[\u003c/span\u003e\u003cspan class=\"literal string single\"\u003e'size'\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e][\u003c/span\u003e\u003cspan class=\"name\"\u003ei\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e]\u003c/span\u003e \u003cspan class=\"operator\"\u003e=\u003c/span\u003e \u003cspan class=\"literal number integer\"\u003e5\u003c/span\u003e\n    \u003cspan class=\"name\"\u003eP\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e[\u003c/span\u003e\u003cspan class=\"literal string single\"\u003e'growth'\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e][\u003c/span\u003e\u003cspan class=\"name\"\u003ei\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e]\u003c/span\u003e\u003cspan class=\"operator\"\u003e=\u003c/span\u003e \u003cspan class=\"name\"\u003enp\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003eexp\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"name\"\u003emagnitude\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e)\u003c/span\u003e \u003cspan class=\"operator\"\u003e*\u003c/span\u003e \u003cspan class=\"literal number float\"\u003e0.1\u003c/span\u003e\n\n    \u003cspan class=\"keyword\"\u003eif\u003c/span\u003e \u003cspan class=\"name\"\u003emagnitude\u003c/span\u003e \u003cspan class=\"operator\"\u003e\u0026lt;\u003c/span\u003e \u003cspan class=\"literal number integer\"\u003e6\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e:\u003c/span\u003e\n        \u003cspan class=\"name\"\u003eP\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e[\u003c/span\u003e\u003cspan class=\"literal string single\"\u003e'color'\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e][\u003c/span\u003e\u003cspan class=\"name\"\u003ei\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e]\u003c/span\u003e    \u003cspan class=\"operator\"\u003e=\u003c/span\u003e \u003cspan class=\"literal number integer\"\u003e0\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e0\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e1\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e1\u003c/span\u003e\n    \u003cspan class=\"keyword\"\u003eelse\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e:\u003c/span\u003e\n        \u003cspan class=\"name\"\u003eP\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e[\u003c/span\u003e\u003cspan class=\"literal string single\"\u003e'color'\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e][\u003c/span\u003e\u003cspan class=\"name\"\u003ei\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e]\u003c/span\u003e    \u003cspan class=\"operator\"\u003e=\u003c/span\u003e \u003cspan class=\"literal number integer\"\u003e1\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e0\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e0\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e1\u003c/span\u003e\n    \u003cspan class=\"name\"\u003escat\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003eset_edgecolors\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"name\"\u003eP\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e[\u003c/span\u003e\u003cspan class=\"literal string single\"\u003e'color'\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e])\u003c/span\u003e\n    \u003cspan class=\"name\"\u003escat\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003eset_facecolors\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"name\"\u003eP\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e[\u003c/span\u003e\u003cspan class=\"literal string single\"\u003e'color'\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e]\u003c/span\u003e\u003cspan class=\"operator\"\u003e*\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e1\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e1\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e1\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e\u003cspan class=\"literal number float\"\u003e0.25\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e))\u003c/span\u003e\n    \u003cspan class=\"name\"\u003escat\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003eset_sizes\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"name\"\u003eP\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e[\u003c/span\u003e\u003cspan class=\"literal string single\"\u003e'size'\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e])\u003c/span\u003e\n    \u003cspan class=\"name\"\u003escat\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003eset_offsets\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"name\"\u003eP\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e[\u003c/span\u003e\u003cspan class=\"literal string single\"\u003e'position'\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e])\u003c/span\u003e\n    \u003cspan class=\"keyword\"\u003ereturn\u003c/span\u003e \u003cspan class=\"name\"\u003escat\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e\n\n\n\u003cspan class=\"name\"\u003eanimation\u003c/span\u003e \u003cspan class=\"operator\"\u003e=\u003c/span\u003e \u003cspan class=\"name\"\u003eFuncAnimation\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e(\u003c/span\u003e\u003cspan class=\"name\"\u003efig\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e \u003cspan class=\"name\"\u003eupdate\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e \u003cspan class=\"name\"\u003einterval\u003c/span\u003e\u003cspan class=\"operator\"\u003e=\u003c/span\u003e\u003cspan class=\"literal number integer\"\u003e10\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e,\u003c/span\u003e \u003cspan class=\"name\"\u003eblit\u003c/span\u003e\u003cspan class=\"operator\"\u003e=\u003c/span\u003e\u003cspan class=\"keyword constant\"\u003eTrue\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e)\u003c/span\u003e\n\u003cspan class=\"name\"\u003eplt\u003c/span\u003e\u003cspan class=\"operator\"\u003e.\u003c/span\u003e\u003cspan class=\"name\"\u003eshow\u003c/span\u003e\u003cspan class=\"punctuation\"\u003e()\u003c/span\u003e\n\u003c/pre\u003e\n\u003cp\u003eIf everything went well, you should obtain something like this (with animation):\u003c/p\u003e\n\u003ca class=\"reference external image-reference\" href=\"scripts/earthquakes.py\"\u003e\u003cimg alt=\"figures/earthquakes.png\" src=\"figures/earthquakes.png\" style=\"width: 50%;\" /\u003e\u003c/a\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"section\" id=\"other-types-of-plots\"\u003e\n\u003ch1\u003e\u003ca class=\"toc-backref\" href=\"#id9\"\u003eOther Types of Plots\u003c/a\u003e\u003c/h1\u003e\n\u003ca class=\"reference internal image-reference\" href=\"#regular-plots\"\u003e\u003cimg alt=\"figures/plot.png\" src=\"figures/plot.png\" /\u003e\u003c/a\u003e\n\u003ca class=\"reference internal image-reference\" href=\"#scatter-plots\"\u003e\u003cimg alt=\"figures/scatter.png\" src=\"figures/scatter.png\" /\u003e\u003c/a\u003e\n\u003ca class=\"reference internal image-reference\" href=\"#bar-plots\"\u003e\u003cimg alt=\"figures/bar.png\" src=\"figures/bar.png\" /\u003e\u003c/a\u003e\n\u003ca class=\"reference internal image-reference\" href=\"#contour-plots\"\u003e\u003cimg alt=\"figures/contour.png\" src=\"figures/contour.png\" /\u003e\u003c/a\u003e\n\u003ca class=\"reference internal image-reference\" href=\"#imshow\"\u003e\u003cimg alt=\"figures/imshow.png\" src=\"figures/imshow.png\" /\u003e\u003c/a\u003e\n\u003ca class=\"reference internal image-reference\" href=\"#quiver-plots\"\u003e\u003cimg alt=\"figures/quiver.png\" src=\"figures/quiver.png\" /\u003e\u003c/a\u003e\n\u003ca class=\"reference internal image-reference\" href=\"#pie-charts\"\u003e\u003cimg alt=\"figures/pie.png\" src=\"figures/pie.png\" /\u003e\u003c/a\u003e\n\u003ca class=\"reference internal image-reference\" href=\"#grids\"\u003e\u003cimg alt=\"figures/grid.png\" src=\"figures/grid.png\" /\u003e\u003c/a\u003e\n\u003ca class=\"reference internal image-reference\" href=\"#multi-plots\"\u003e\u003cimg alt=\"figures/multiplot.png\" src=\"figures/multiplot.png\" /\u003e\u003c/a\u003e\n\u003ca class=\"reference internal image-reference\" href=\"#polar-axis\"\u003e\u003cimg alt=\"figures/polar.png\" src=\"figures/polar.png\" /\u003e\u003c/a\u003e\n\u003ca class=\"reference internal image-reference\" href=\"#d-plots\"\u003e\u003cimg alt=\"figures/plot3d.png\" src=\"figures/plot3d.png\" /\u003e\u003c/a\u003e\n\u003ca class=\"reference internal image-reference\" href=\"#text\"\u003e\u003cimg alt=\"figures/text.png\" src=\"figures/text.png\" /\u003e\u003c/a\u003e\n\u003cdiv class=\"section\" id=\"regular-plots\"\u003e\n\u003ch2\u003eRegular Plots\u003c/h2\u003e\n\u003ca class=\"reference external image-reference\" href=\"scripts/plot_ex.py\"\u003e\u003cimg alt=\"figures/plot_ex.png\" class=\"align-right\" src=\"figures/plot_ex.png\" /\u003e\u003c/a\u003e\n\u003cdiv class=\"admonition admonition-hints\"\u003e\n\u003cp class=\"first admonition-title\"\u003eHints\u003c/p\u003e\n\u003cp class=\"last\"\u003eYou need to use the \u003ca class=\"reference external\" href=\"http://matplotlib.sourceforge.net/api/pyplot_api.html#matplotlib.pyplot.fill_between\"\u003efill_between\u003c/a\u003e\ncommand.\u003c/p\u003e\n\u003c/div\u003e\n\u003cp\u003eStarting from the code below, try to reproduce the graphic on the right taking\ncare of filled areas.\u003c/p\u003e\n\u003cpre class=\"literal-block\"\u003e\nimport numpy as np\nimport matplotlib.pyplot as plt\n\nn = 256\nX = np.linspace(-np.pi,np.pi,n,endpoint=True)\nY = np.sin(2*X)\n\nplt.plot (X, Y+1, color='blue', alpha=1.00)\nplt.plot (X, Y-1, color='blue', alpha=1.00)\nplt.show()\n\u003c/pre\u003e\n\u003cp\u003eClick on figure for solution.\u003c/p\u003e\n\u003c/div\u003e\n\u003cdiv class=\"section\" id=\"scatter-plots\"\u003e\n\u003ch2\u003eScatter Plots\u003c/h2\u003e\n\u003ca class=\"reference external image-reference\" href=\"scripts/scatter_ex.py\"\u003e\u003cimg alt=\"figures/scatter_ex.png\" class=\"align-right\" src=\"figures/scatter_ex.png\" /\u003e\u003c/a\u003e\n\u003cdiv class=\"admonition admonition-hints\"\u003e\n\u003cp class=\"first admonition-title\"\u003eHints\u003c/p\u003e\n\u003cp class=\"last\"\u003eColor is given by angle of (X,Y).\u003c/p\u003e\n\u003c/div\u003e\n\u003cp\u003eStarting from the code below, try to reproduce the graphic on the right taking\ncare of marker size, color and transparency.\u003c/p\u003e\n\u003cpre class=\"literal-block\"\u003e\nimport numpy as np\nimport matplotlib.pyplot as plt\n\nn = 1024\nX = np.random.normal(0,1,n)\nY = np.random.normal(0,1,n)\n\nplt.scatter(X,Y)\nplt.show()\n\u003c/pre\u003e\n\u003cp\u003eClick on figure for solution.\u003c/p\u003e\n\u003c/div\u003e\n\u003cdiv class=\"section\" id=\"bar-plots\"\u003e\n\u003ch2\u003eBar Plots\u003c/h2\u003e\n\u003ca class=\"reference external image-reference\" href=\"scripts/bar_ex.py\"\u003e\u003cimg alt=\"figures/bar_ex.png\" class=\"align-right\" src=\"figures/bar_ex.png\" /\u003e\u003c/a\u003e\n\u003cdiv class=\"admonition admonition-hints\"\u003e\n\u003cp class=\"first admonition-title\"\u003eHints\u003c/p\u003e\n\u003cp class=\"last\"\u003eYou need to take care of text alignment.\u003c/p\u003e\n\u003c/div\u003e\n\u003cp\u003eStarting from the code below, try to reproduce the graphic on the right by\nadding labels for red bars.\u003c/p\u003e\n\u003cpre class=\"literal-block\"\u003e\nimport numpy as np\nimport matplotlib.pyplot as plt\n\nn = 12\nX = np.arange(n)\nY1 = (1-X/float(n)) * np.random.uniform(0.5,1.0,n)\nY2 = (1-X/float(n)) * np.random.uniform(0.5,1.0,n)\n\nplt.bar(X, +Y1, facecolor='#9999ff', edgecolor='white')\nplt.bar(X, -Y2, facecolor='#ff9999', edgecolor='white')\n\nfor x,y in zip(X,Y1):\n    plt.text(x+0.4, y+0.05, '%.2f' % y, ha='center', va= 'bottom')\n\nplt.ylim(-1.25,+1.25)\nplt.show()\n\u003c/pre\u003e\n\u003cp\u003eClick on figure for solution.\u003c/p\u003e\n\u003c/div\u003e\n\u003cdiv class=\"section\" id=\"contour-plots\"\u003e\n\u003ch2\u003eContour Plots\u003c/h2\u003e\n\u003ca class=\"reference external image-reference\" href=\"scripts/contour_ex.py\"\u003e\u003cimg alt=\"figures/contour_ex.png\" class=\"align-right\" src=\"figures/contour_ex.png\" /\u003e\u003c/a\u003e\n\u003cdiv class=\"admonition admonition-hints\"\u003e\n\u003cp class=\"first admonition-title\"\u003eHints\u003c/p\u003e\n\u003cp class=\"last\"\u003eYou need to use the \u003ca class=\"reference external\" href=\"http://matplotlib.sourceforge.net/api/pyplot_api.html#matplotlib.pyplot.clabel\"\u003eclabel\u003c/a\u003e\ncommand.\u003c/p\u003e\n\u003c/div\u003e\n\u003cp\u003eStarting from the code below, try to reproduce the graphic on the right taking\ncare of the colormap (see \u003ca class=\"reference internal\" href=\"#colormaps\"\u003eColormaps\u003c/a\u003e below).\u003c/p\u003e\n\u003cpre class=\"literal-block\"\u003e\nimport numpy as np\nimport matplotlib.pyplot as plt\n\ndef f(x,y): return (1-x/2+x**5+y**3)*np.exp(-x**2-y**2)\n\nn = 256\nx = np.linspace(-3,3,n)\ny = np.linspace(-3,3,n)\nX,Y = np.meshgrid(x,y)\n\nplt.contourf(X, Y, f(X,Y), 8, alpha=.75, cmap='jet')\nC = plt.contour(X, Y, f(X,Y), 8, colors='black', linewidth=.5)\nplt.show()\n\u003c/pre\u003e\n\u003cp\u003eClick on figure for solution.\u003c/p\u003e\n\u003c/div\u003e\n\u003cdiv class=\"section\" id=\"imshow\"\u003e\n\u003ch2\u003eImshow\u003c/h2\u003e\n\u003ca class=\"reference external image-reference\" href=\"scripts/imshow_ex.py\"\u003e\u003cimg alt=\"figures/imshow_ex.png\" class=\"align-right\" src=\"figures/imshow_ex.png\" /\u003e\u003c/a\u003e\n\u003cdiv class=\"admonition admonition-hints\"\u003e\n\u003cp class=\"first admonition-title\"\u003eHints\u003c/p\u003e\n\u003cp class=\"last\"\u003eYou need to take care of the \u003ctt class=\"docutils literal\"\u003eorigin\u003c/tt\u003e of the image in the imshow command and\nuse a \u003ca class=\"reference external\" href=\"http://matplotlib.sourceforge.net/api/pyplot_api.html#matplotlib.pyplot.colorbar\"\u003ecolorbar\u003c/a\u003e.\u003c/p\u003e\n\u003c/div\u003e\n\u003cp\u003eStarting from the code below, try to reproduce the graphic on the right taking\ncare of colormap, image interpolation and origin.\u003c/p\u003e\n\u003cpre class=\"literal-block\"\u003e\nimport numpy as np\nimport matplotlib.pyplot as plt\n\ndef f(x,y): return (1-x/2+x**5+y**3)*np.exp(-x**2-y**2)\n\nn = 10\nx = np.linspace(-3,3,4*n)\ny = np.linspace(-3,3,3*n)\nX,Y = np.meshgrid(x,y)\nplt.imshow(f(X,Y))\nplt.show()\n\u003c/pre\u003e\n\u003cp\u003eClick on figure for solution.\u003c/p\u003e\n\u003c/div\u003e\n\u003cdiv class=\"section\" id=\"pie-charts\"\u003e\n\u003ch2\u003ePie Charts\u003c/h2\u003e\n\u003ca class=\"reference external image-reference\" href=\"scripts/pie_ex.py\"\u003e\u003cimg alt=\"figures/pie_ex.png\" class=\"align-right\" src=\"figures/pie_ex.png\" /\u003e\u003c/a\u003e\n\u003cdiv class=\"admonition admonition-hints\"\u003e\n\u003cp class=\"first admonition-title\"\u003eHints\u003c/p\u003e\n\u003cp class=\"last\"\u003eYou need to modify Z.\u003c/p\u003e\n\u003c/div\u003e\n\u003cp\u003eStarting from the code below, try to reproduce the graphic on the right taking\ncare of colors and slices size.\u003c/p\u003e\n\u003cpre class=\"literal-block\"\u003e\nimport numpy as np\nimport matplotlib.pyplot as plt\n\nn = 20\nZ = np.random.uniform(0,1,n)\nplt.pie(Z)\nplt.show()\n\u003c/pre\u003e\n\u003cp\u003eClick on figure for solution.\u003c/p\u003e\n\u003c/div\u003e\n\u003cdiv class=\"section\" id=\"quiver-plots\"\u003e\n\u003ch2\u003eQuiver Plots\u003c/h2\u003e\n\u003ca class=\"reference external image-reference\" href=\"scripts/quiver_ex.py\"\u003e\u003cimg alt=\"figures/quiver_ex.png\" class=\"align-right\" src=\"figures/quiver_ex.png\" /\u003e\u003c/a\u003e\n\u003cdiv class=\"admonition admonition-hints\"\u003e\n\u003cp class=\"first admonition-title\"\u003eHints\u003c/p\u003e\n\u003cp class=\"last\"\u003eYou need to draw arrows twice.\u003c/p\u003e\n\u003c/div\u003e\n\u003cp\u003eStarting from the code above, try to reproduce the graphic on the right taking\ncare of colors and orientations.\u003c/p\u003e\n\u003cpre class=\"literal-block\"\u003e\nimport numpy as np\nimport matplotlib.pyplot as plt\n\nn = 8\nX,Y = np.mgrid[0:n,0:n]\nplt.quiver(X,Y)\nplt.show()\n\u003c/pre\u003e\n\u003cp\u003eClick on figure for solution.\u003c/p\u003e\n\u003c/div\u003e\n\u003cdiv class=\"section\" id=\"grids\"\u003e\n\u003ch2\u003eGrids\u003c/h2\u003e\n\u003ca class=\"reference external image-reference\" href=\"scripts/grid_ex.py\"\u003e\u003cimg alt=\"figures/grid_ex.png\" class=\"align-right\" src=\"figures/grid_ex.png\" /\u003e\u003c/a\u003e\n\u003cp\u003eStarting from the code below, try to reproduce the graphic on the right taking\ncare of line styles.\u003c/p\u003e\n\u003cpre class=\"literal-block\"\u003e\nimport numpy as np\nimport matplotlib.pyplot as plt\n\naxes = gca()\naxes.set_xlim(0,4)\naxes.set_ylim(0,3)\naxes.set_xticklabels([])\naxes.set_yticklabels([])\n\nplt.show()\n\u003c/pre\u003e\n\u003cp\u003eClick on figure for solution.\u003c/p\u003e\n\u003c/div\u003e\n\u003cdiv class=\"section\" id=\"multi-plots\"\u003e\n\u003ch2\u003eMulti Plots\u003c/h2\u003e\n\u003ca class=\"reference external image-reference\" href=\"scripts/multiplot_ex.py\"\u003e\u003cimg alt=\"figures/multiplot_ex.png\" class=\"align-right\" src=\"figures/multiplot_ex.png\" /\u003e\u003c/a\u003e\n\u003cdiv class=\"admonition admonition-hints\"\u003e\n\u003cp class=\"first admonition-title\"\u003eHints\u003c/p\u003e\n\u003cp class=\"last\"\u003eYou can use several subplots with different partition.\u003c/p\u003e\n\u003c/div\u003e\n\u003cp\u003eStarting from the code below, try to reproduce the graphic on the right.\u003c/p\u003e\n\u003cpre class=\"literal-block\"\u003e\nimport numpy as np\nimport matplotlib.pyplot as plt\n\nplt.subplot(2,2,1)\nplt.subplot(2,2,3)\nplt.subplot(2,2,4)\n\nplt.show()\n\u003c/pre\u003e\n\u003cp\u003eClick on figure for solution.\u003c/p\u003e\n\u003c/div\u003e\n\u003cdiv class=\"section\" id=\"polar-axis\"\u003e\n\u003ch2\u003ePolar Axis\u003c/h2\u003e\n\u003ca class=\"reference external image-reference\" href=\"scripts/polar_ex.py\"\u003e\u003cimg alt=\"figures/polar_ex.png\" class=\"align-right\" src=\"figures/polar_ex.png\" /\u003e\u003c/a\u003e\n\u003cdiv class=\"admonition admonition-hints\"\u003e\n\u003cp class=\"first admonition-title\"\u003eHints\u003c/p\u003e\n\u003cp class=\"last\"\u003eYou only need to modify the \u003ctt class=\"docutils literal\"\u003eaxes\u003c/tt\u003e line.\u003c/p\u003e\n\u003c/div\u003e\n\u003cp\u003eStarting from the code below, try to reproduce the graphic on the right.\u003c/p\u003e\n\u003cpre class=\"literal-block\"\u003e\nimport numpy as np\nimport matplotlib.pyplot as plt\n\nplt.axes([0,0,1,1])\n\nN = 20\ntheta = np.arange(0.0, 2*np.pi, 2*np.pi/N)\nradii = 10*np.random.rand(N)\nwidth = np.pi/4*np.random.rand(N)\nbars = plt.bar(theta, radii, width=width, bottom=0.0)\n\nfor r,bar in zip(radii, bars):\n    bar.set_facecolor( cm.jet(r/10.))\n    bar.set_alpha(0.5)\n\nplt.show()\n\u003c/pre\u003e\n\u003cp\u003eClick on figure for solution.\u003c/p\u003e\n\u003c/div\u003e\n\u003cdiv class=\"section\" id=\"d-plots\"\u003e\n\u003ch2\u003e3D Plots\u003c/h2\u003e\n\u003ca class=\"reference external image-reference\" href=\"scripts/plot3d_ex.py\"\u003e\u003cimg alt=\"figures/plot3d_ex.png\" class=\"align-right\" src=\"figures/plot3d_ex.png\" /\u003e\u003c/a\u003e\n\u003cdiv class=\"admonition admonition-hints\"\u003e\n\u003cp class=\"first admonition-title\"\u003eHints\u003c/p\u003e\n\u003cp class=\"last\"\u003eYou need to use \u003ca class=\"reference external\" href=\"http://matplotlib.sourceforge.net/api/pyplot_api.html#matplotlib.pyplot.contourf\"\u003econtourf\u003c/a\u003e.\u003c/p\u003e\n\u003c/div\u003e\n\u003cp\u003eStarting from the code below, try to reproduce the graphic on the right.\u003c/p\u003e\n\u003cpre class=\"literal-block\"\u003e\nimport numpy as np\nimport matplotlib.pyplot as plt\nfrom mpl_toolkits.mplot3d import Axes3D\n\nfig = plt.figure()\nax = Axes3D(fig)\nX = np.arange(-4, 4, 0.25)\nY = np.arange(-4, 4, 0.25)\nX, Y = np.meshgrid(X, Y)\nR = np.sqrt(X**2 + Y**2)\nZ = np.sin(R)\n\nax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap='hot')\n\nplt.show()\n\u003c/pre\u003e\n\u003cp\u003eClick on figure for solution.\u003c/p\u003e\n\u003c/div\u003e\n\u003cdiv class=\"section\" id=\"text\"\u003e\n\u003ch2\u003eText\u003c/h2\u003e\n\u003ca class=\"reference external image-reference\" href=\"scripts/text_ex.py\"\u003e\u003cimg alt=\"figures/text_ex.png\" class=\"align-right\" src=\"figures/text_ex.png\" /\u003e\u003c/a\u003e\n\u003cdiv class=\"admonition admonition-hints\"\u003e\n\u003cp class=\"first admonition-title\"\u003eHints\u003c/p\u003e\n\u003cp class=\"last\"\u003eHave a look at the \u003ca class=\"reference external\" href=\"http://matplotlib.sourceforge.net/examples/api/logo2.html\"\u003ematplotlib logo\u003c/a\u003e.\u003c/p\u003e\n\u003c/div\u003e\n\u003cp\u003eTry to do the same from scratch!\u003c/p\u003e\n\u003cp\u003eClick on figure for solution.\u003c/p\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"section\" id=\"beyond-this-tutorial\"\u003e\n\u003ch1\u003e\u003ca class=\"toc-backref\" href=\"#id10\"\u003eBeyond this tutorial\u003c/a\u003e\u003c/h1\u003e\n\u003cp\u003eMatplotlib benefits from extensive documentation as well as a large\ncommunity of users and developpers. Here are some links of interest:\u003c/p\u003e\n\u003cdiv class=\"section\" id=\"tutorials\"\u003e\n\u003ch2\u003eTutorials\u003c/h2\u003e\n\u003cul class=\"simple\"\u003e\n\u003cli\u003e\u003ca class=\"reference external\" href=\"http://matplotlib.sourceforge.net/users/pyplot_tutorial.html\"\u003ePyplot tutorial\u003c/a\u003e\u003cul\u003e\n\u003cli\u003eIntroduction\u003c/li\u003e\n\u003cli\u003eControlling line properties\u003c/li\u003e\n\u003cli\u003eWorking with multiple figures and axes\u003c/li\u003e\n\u003cli\u003eWorking with text\u003c/li\u003e\n\u003cli\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca class=\"reference external\" href=\"http://matplotlib.sourceforge.net/users/image_tutorial.html\"\u003eImage tutorial\u003c/a\u003e\u003cul\u003e\n\u003cli\u003eStartup commands\u003c/li\u003e\n\u003cli\u003eImporting image data into Numpy arrays\u003c/li\u003e\n\u003cli\u003ePlotting numpy arrays as images\u003c/li\u003e\n\u003cli\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca class=\"reference external\" href=\"http://matplotlib.sourceforge.net/users/index_text.html\"\u003eText tutorial\u003c/a\u003e\u003cul\u003e\n\u003cli\u003eText introduction\u003c/li\u003e\n\u003cli\u003eBasic text commands\u003c/li\u003e\n\u003cli\u003eText properties and layout\u003c/li\u003e\n\u003cli\u003eWriting mathematical expressions\u003c/li\u003e\n\u003cli\u003eText rendering With LaTeX\u003c/li\u003e\n\u003cli\u003eAnnotating text\u003c/li\u003e\n\u003cli\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca class=\"reference external\" href=\"http://matplotlib.sourceforge.net/users/artists.html\"\u003eArtist tutorial\u003c/a\u003e\u003cul\u003e\n\u003cli\u003eIntroduction\u003c/li\u003e\n\u003cli\u003eCustomizing your objects\u003c/li\u003e\n\u003cli\u003eObject containers\u003c/li\u003e\n\u003cli\u003eFigure container\u003c/li\u003e\n\u003cli\u003eAxes container\u003c/li\u003e\n\u003cli\u003eAxis containers\u003c/li\u003e\n\u003cli\u003eTick containers\u003c/li\u003e\n\u003cli\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca class=\"reference external\" href=\"http://matplotlib.sourceforge.net/users/path_tutorial.html\"\u003ePath tutorial\u003c/a\u003e\u003cul\u003e\n\u003cli\u003eIntroduction\u003c/li\u003e\n\u003cli\u003eBézier example\u003c/li\u003e\n\u003cli\u003eCompound paths\u003c/li\u003e\n\u003cli\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca class=\"reference external\" href=\"http://matplotlib.sourceforge.net/users/transforms_tutorial.html\"\u003eTransforms tutorial\u003c/a\u003e\u003cul\u003e\n\u003cli\u003eIntroduction\u003c/li\u003e\n\u003cli\u003eData coordinates\u003c/li\u003e\n\u003cli\u003eAxes coordinates\u003c/li\u003e\n\u003cli\u003eBlended transformations\u003c/li\u003e\n\u003cli\u003eUsing offset transforms to create a shadow effect\u003c/li\u003e\n\u003cli\u003eThe transformation pipeline\u003c/li\u003e\n\u003cli\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/div\u003e\n\u003cdiv class=\"section\" id=\"matplotlib-documentation\"\u003e\n\u003ch2\u003eMatplotlib documentation\u003c/h2\u003e\n\u003cul class=\"simple\"\u003e\n\u003cli\u003e\u003ca class=\"reference external\" href=\"http://matplotlib.sourceforge.net/users/index.html\"\u003eUser guide\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca class=\"reference external\" href=\"http://matplotlib.sourceforge.net/faq/index.html\"\u003eFAQ\u003c/a\u003e\u003cul\u003e\n\u003cli\u003eInstallation\u003c/li\u003e\n\u003cli\u003eUsage\u003c/li\u003e\n\u003cli\u003eHow-To\u003c/li\u003e\n\u003cli\u003eTroubleshooting\u003c/li\u003e\n\u003cli\u003eEnvironment Variables\u003c/li\u003e\n\u003cli\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca class=\"reference external\" href=\"http://matplotlib.sourceforge.net/users/screenshots.html\"\u003eScreenshots\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/div\u003e\n\u003cdiv class=\"section\" id=\"code-documentation\"\u003e\n\u003ch2\u003eCode documentation\u003c/h2\u003e\n\u003cp\u003eThe code is fairly well documented and you can quickly access a specific\ncommand from within a python session:\u003c/p\u003e\n\u003cpre class=\"literal-block\"\u003e\n\u0026gt;\u0026gt;\u0026gt; import matplotlib.pyplot as plt\n\u0026gt;\u0026gt;\u0026gt; help(plt)\nHelp on function plot in module matplotlib.pyplot:\n\nplot(*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\u003c/pre\u003e\n\u003c/div\u003e\n\u003cdiv class=\"section\" id=\"galleries\"\u003e\n\u003ch2\u003eGalleries\u003c/h2\u003e\n\u003cp\u003eThe \u003ca class=\"reference external\" href=\"http://matplotlib.sourceforge.net/gallery.html\"\u003ematplotlib gallery\u003c/a\u003e is\nalso incredibly useful when you search how to render a given graphic. Each\nexample comes with its source.\u003c/p\u003e\n\u003c/div\u003e\n\u003cdiv class=\"section\" id=\"mailing-lists\"\u003e\n\u003ch2\u003eMailing lists\u003c/h2\u003e\n\u003cp\u003eFinally, there is a \u003ca class=\"reference external\" href=\"https://mail.python.org/mailman/listinfo/matplotlib-users\"\u003euser mailing list\u003c/a\u003e where you can\nask for help and a \u003ca class=\"reference external\" href=\"https://mail.python.org/mailman/listinfo/matplotlib-devel\"\u003edevelopers mailing list\u003c/a\u003e that is more\ntechnical.\u003c/p\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cdiv class=\"section\" id=\"quick-references\"\u003e\n\u003ch1\u003e\u003ca class=\"toc-backref\" href=\"#id11\"\u003eQuick references\u003c/a\u003e\u003c/h1\u003e\n\u003cp\u003eHere is a set of tables that show main properties and styles.\u003c/p\u003e\n\u003cdiv class=\"section\" id=\"line-properties\"\u003e\n\u003ch2\u003eLine properties\u003c/h2\u003e\n\u003ctable border=\"1\" class=\"colwidths-given docutils\"\u003e\n\u003ccolgroup\u003e\n\u003ccol width=\"20%\" /\u003e\n\u003ccol width=\"30%\" /\u003e\n\u003ccol width=\"50%\" /\u003e\n\u003c/colgroup\u003e\n\u003cthead valign=\"bottom\"\u003e\n\u003ctr\u003e\u003cth class=\"head\"\u003eProperty\u003c/th\u003e\n\u003cth class=\"head\"\u003eDescription\u003c/th\u003e\n\u003cth class=\"head\"\u003eAppearance\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody valign=\"top\"\u003e\n\u003ctr\u003e\u003ctd\u003ealpha (or a)\u003c/td\u003e\n\u003ctd\u003ealpha transparency on 0-1 scale\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/alpha.png\" class=\"first last\" src=\"figures/alpha.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003eantialiased\u003c/td\u003e\n\u003ctd\u003eTrue or False - use antialised rendering\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/aliased.png\" class=\"first\" src=\"figures/aliased.png\" /\u003e\n\u003cimg alt=\"figures/antialiased.png\" class=\"last\" src=\"figures/antialiased.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003ecolor (or c)\u003c/td\u003e\n\u003ctd\u003ematplotlib color arg\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/color.png\" class=\"first last\" src=\"figures/color.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003elinestyle (or ls)\u003c/td\u003e\n\u003ctd\u003esee \u003ca class=\"reference internal\" href=\"#line-properties\"\u003eLine properties\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\u0026nbsp;\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003elinewidth (or lw)\u003c/td\u003e\n\u003ctd\u003efloat, the line width in points\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/linewidth.png\" class=\"first last\" src=\"figures/linewidth.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003esolid_capstyle\u003c/td\u003e\n\u003ctd\u003eCap style for solid lines\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/solid_capstyle.png\" class=\"first last\" src=\"figures/solid_capstyle.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003esolid_joinstyle\u003c/td\u003e\n\u003ctd\u003eJoin style for solid lines\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/solid_joinstyle.png\" class=\"first last\" src=\"figures/solid_joinstyle.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003edash_capstyle\u003c/td\u003e\n\u003ctd\u003eCap style for dashes\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/dash_capstyle.png\" class=\"first last\" src=\"figures/dash_capstyle.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003edash_joinstyle\u003c/td\u003e\n\u003ctd\u003eJoin style for dashes\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/dash_joinstyle.png\" class=\"first last\" src=\"figures/dash_joinstyle.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003emarker\u003c/td\u003e\n\u003ctd\u003esee \u003ca class=\"reference internal\" href=\"#markers\"\u003eMarkers\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\u0026nbsp;\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003emarkeredgewidth (mew)\u003c/td\u003e\n\u003ctd\u003eline width around the marker symbol\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/mew.png\" class=\"first last\" src=\"figures/mew.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003emarkeredgecolor (mec)\u003c/td\u003e\n\u003ctd\u003eedge color if a marker is used\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/mec.png\" class=\"first last\" src=\"figures/mec.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003emarkerfacecolor (mfc)\u003c/td\u003e\n\u003ctd\u003eface color if a marker is used\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/mfc.png\" class=\"first last\" src=\"figures/mfc.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003emarkersize (ms)\u003c/td\u003e\n\u003ctd\u003esize of the marker in points\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/ms.png\" class=\"first last\" src=\"figures/ms.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/div\u003e\n\u003cdiv class=\"section\" id=\"line-styles\"\u003e\n\u003ch2\u003eLine styles\u003c/h2\u003e\n\u003ctable border=\"1\" class=\"colwidths-given docutils\"\u003e\n\u003ccolgroup\u003e\n\u003ccol width=\"16%\" /\u003e\n\u003ccol width=\"32%\" /\u003e\n\u003ccol width=\"53%\" /\u003e\n\u003c/colgroup\u003e\n\u003cthead valign=\"bottom\"\u003e\n\u003ctr\u003e\u003cth class=\"head\"\u003eSymbol\u003c/th\u003e\n\u003cth class=\"head\"\u003eDescription\u003c/th\u003e\n\u003cth class=\"head\"\u003eAppearance\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody valign=\"top\"\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ctt class=\"docutils literal\"\u003e-\u003c/tt\u003e\u003c/td\u003e\n\u003ctd\u003esolid line\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/linestyle--.png\" class=\"first last\" src=\"figures/linestyle--.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ctt class=\"docutils literal\"\u003e\u003cspan class=\"pre\"\u003e--\u003c/span\u003e\u003c/tt\u003e\u003c/td\u003e\n\u003ctd\u003edashed line\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/linestyle---.png\" class=\"first last\" src=\"figures/linestyle---.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ctt class=\"docutils literal\"\u003e\u003cspan class=\"pre\"\u003e-.\u003c/span\u003e\u003c/tt\u003e\u003c/td\u003e\n\u003ctd\u003edash-dot line\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/linestyle--dot.png\" class=\"first last\" src=\"figures/linestyle--dot.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ctt class=\"docutils literal\"\u003e:\u003c/tt\u003e\u003c/td\u003e\n\u003ctd\u003edotted line\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/linestyle-:.png\" class=\"first last\" src=\"figures/linestyle-:.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ctt class=\"docutils literal\"\u003e.\u003c/tt\u003e\u003c/td\u003e\n\u003ctd\u003epoints\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/linestyle-dot.png\" class=\"first last\" src=\"figures/linestyle-dot.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ctt class=\"docutils literal\"\u003e,\u003c/tt\u003e\u003c/td\u003e\n\u003ctd\u003epixels\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/linestyle-,.png\" class=\"first last\" src=\"figures/linestyle-,.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ctt class=\"docutils literal\"\u003eo\u003c/tt\u003e\u003c/td\u003e\n\u003ctd\u003ecircle\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/linestyle-o.png\" class=\"first last\" src=\"figures/linestyle-o.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ctt class=\"docutils literal\"\u003e^\u003c/tt\u003e\u003c/td\u003e\n\u003ctd\u003etriangle up\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/linestyle-^.png\" class=\"first last\" src=\"figures/linestyle-^.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ctt class=\"docutils literal\"\u003ev\u003c/tt\u003e\u003c/td\u003e\n\u003ctd\u003etriangle down\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/linestyle-v.png\" class=\"first last\" src=\"figures/linestyle-v.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ctt class=\"docutils literal\"\u003e\u0026lt;\u003c/tt\u003e\u003c/td\u003e\n\u003ctd\u003etriangle left\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/linestyle-\u0026lt;.png\" class=\"first last\" src=\"figures/linestyle-\u0026lt;.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ctt class=\"docutils literal\"\u003e\u0026gt;\u003c/tt\u003e\u003c/td\u003e\n\u003ctd\u003etriangle right\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/linestyle-\u0026gt;.png\" class=\"first last\" src=\"figures/linestyle-\u0026gt;.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ctt class=\"docutils literal\"\u003es\u003c/tt\u003e\u003c/td\u003e\n\u003ctd\u003esquare\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/linestyle-s.png\" class=\"first last\" src=\"figures/linestyle-s.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ctt class=\"docutils literal\"\u003e+\u003c/tt\u003e\u003c/td\u003e\n\u003ctd\u003eplus\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/linestyle-+.png\" class=\"first last\" src=\"figures/linestyle-+.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ctt class=\"docutils literal\"\u003ex\u003c/tt\u003e\u003c/td\u003e\n\u003ctd\u003ecross\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/linestyle-x.png\" class=\"first last\" src=\"figures/linestyle-x.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ctt class=\"docutils literal\"\u003eD\u003c/tt\u003e\u003c/td\u003e\n\u003ctd\u003ediamond\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/linestyle-dd.png\" class=\"first last\" src=\"figures/linestyle-dd.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ctt class=\"docutils literal\"\u003ed\u003c/tt\u003e\u003c/td\u003e\n\u003ctd\u003ethin diamond\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/linestyle-d.png\" class=\"first last\" src=\"figures/linestyle-d.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ctt class=\"docutils literal\"\u003e1\u003c/tt\u003e\u003c/td\u003e\n\u003ctd\u003etripod down\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/linestyle-1.png\" class=\"first last\" src=\"figures/linestyle-1.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ctt class=\"docutils literal\"\u003e2\u003c/tt\u003e\u003c/td\u003e\n\u003ctd\u003etripod up\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/linestyle-2.png\" class=\"first last\" src=\"figures/linestyle-2.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ctt class=\"docutils literal\"\u003e3\u003c/tt\u003e\u003c/td\u003e\n\u003ctd\u003etripod left\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/linestyle-3.png\" class=\"first last\" src=\"figures/linestyle-3.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ctt class=\"docutils literal\"\u003e4\u003c/tt\u003e\u003c/td\u003e\n\u003ctd\u003etripod right\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/linestyle-4.png\" class=\"first last\" src=\"figures/linestyle-4.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ctt class=\"docutils literal\"\u003eh\u003c/tt\u003e\u003c/td\u003e\n\u003ctd\u003ehexagon\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/linestyle-h.png\" class=\"first last\" src=\"figures/linestyle-h.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ctt class=\"docutils literal\"\u003eH\u003c/tt\u003e\u003c/td\u003e\n\u003ctd\u003erotated hexagon\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/linestyle-hh.png\" class=\"first last\" src=\"figures/linestyle-hh.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ctt class=\"docutils literal\"\u003ep\u003c/tt\u003e\u003c/td\u003e\n\u003ctd\u003epentagon\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/linestyle-p.png\" class=\"first last\" src=\"figures/linestyle-p.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ctt class=\"docutils literal\"\u003e|\u003c/tt\u003e\u003c/td\u003e\n\u003ctd\u003evertical line\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/linestyle-|.png\" class=\"first last\" src=\"figures/linestyle-|.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ctt class=\"docutils literal\"\u003e_\u003c/tt\u003e\u003c/td\u003e\n\u003ctd\u003ehorizontal line\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/linestyle-_.png\" class=\"first last\" src=\"figures/linestyle-_.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/div\u003e\n\u003cdiv class=\"section\" id=\"markers\"\u003e\n\u003ch2\u003eMarkers\u003c/h2\u003e\n\u003ctable border=\"1\" class=\"colwidths-given docutils\"\u003e\n\u003ccolgroup\u003e\n\u003ccol width=\"16%\" /\u003e\n\u003ccol width=\"32%\" /\u003e\n\u003ccol width=\"53%\" /\u003e\n\u003c/colgroup\u003e\n\u003cthead valign=\"bottom\"\u003e\n\u003ctr\u003e\u003cth class=\"head\"\u003eSymbol\u003c/th\u003e\n\u003cth class=\"head\"\u003eDescription\u003c/th\u003e\n\u003cth class=\"head\"\u003eAppearance\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody valign=\"top\"\u003e\n\u003ctr\u003e\u003ctd\u003e0\u003c/td\u003e\n\u003ctd\u003etick left\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/marker-i0.png\" class=\"first last\" src=\"figures/marker-i0.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e1\u003c/td\u003e\n\u003ctd\u003etick right\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/marker-i1.png\" class=\"first last\" src=\"figures/marker-i1.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e2\u003c/td\u003e\n\u003ctd\u003etick up\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/marker-i2.png\" class=\"first last\" src=\"figures/marker-i2.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e3\u003c/td\u003e\n\u003ctd\u003etick down\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/marker-i3.png\" class=\"first last\" src=\"figures/marker-i3.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e4\u003c/td\u003e\n\u003ctd\u003ecaret left\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/marker-i4.png\" class=\"first last\" src=\"figures/marker-i4.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e5\u003c/td\u003e\n\u003ctd\u003ecaret right\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/marker-i5.png\" class=\"first last\" src=\"figures/marker-i5.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e6\u003c/td\u003e\n\u003ctd\u003ecaret up\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/marker-i6.png\" class=\"first last\" src=\"figures/marker-i6.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e7\u003c/td\u003e\n\u003ctd\u003ecaret down\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/marker-i7.png\" class=\"first last\" src=\"figures/marker-i7.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ctt class=\"docutils literal\"\u003eo\u003c/tt\u003e\u003c/td\u003e\n\u003ctd\u003ecircle\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/marker-o.png\" class=\"first last\" src=\"figures/marker-o.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ctt class=\"docutils literal\"\u003eD\u003c/tt\u003e\u003c/td\u003e\n\u003ctd\u003ediamond\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/marker-dd.png\" class=\"first last\" src=\"figures/marker-dd.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ctt class=\"docutils literal\"\u003eh\u003c/tt\u003e\u003c/td\u003e\n\u003ctd\u003ehexagon 1\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/marker-h.png\" class=\"first last\" src=\"figures/marker-h.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ctt class=\"docutils literal\"\u003eH\u003c/tt\u003e\u003c/td\u003e\n\u003ctd\u003ehexagon 2\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/marker-hh.png\" class=\"first last\" src=\"figures/marker-hh.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ctt class=\"docutils literal\"\u003e_\u003c/tt\u003e\u003c/td\u003e\n\u003ctd\u003ehorizontal line\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/marker-_.png\" class=\"first last\" src=\"figures/marker-_.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ctt class=\"docutils literal\"\u003e1\u003c/tt\u003e\u003c/td\u003e\n\u003ctd\u003etripod down\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/marker-1.png\" class=\"first last\" src=\"figures/marker-1.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ctt class=\"docutils literal\"\u003e2\u003c/tt\u003e\u003c/td\u003e\n\u003ctd\u003etripod up\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/marker-2.png\" class=\"first last\" src=\"figures/marker-2.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ctt class=\"docutils literal\"\u003e3\u003c/tt\u003e\u003c/td\u003e\n\u003ctd\u003etripod left\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/marker-3.png\" class=\"first last\" src=\"figures/marker-3.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ctt class=\"docutils literal\"\u003e4\u003c/tt\u003e\u003c/td\u003e\n\u003ctd\u003etripod right\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/marker-4.png\" class=\"first last\" src=\"figures/marker-4.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ctt class=\"docutils literal\"\u003e8\u003c/tt\u003e\u003c/td\u003e\n\u003ctd\u003eoctagon\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/marker-8.png\" class=\"first last\" src=\"figures/marker-8.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ctt class=\"docutils literal\"\u003ep\u003c/tt\u003e\u003c/td\u003e\n\u003ctd\u003epentagon\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/marker-p.png\" class=\"first last\" src=\"figures/marker-p.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ctt class=\"docutils literal\"\u003e^\u003c/tt\u003e\u003c/td\u003e\n\u003ctd\u003etriangle up\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/marker-^.png\" class=\"first last\" src=\"figures/marker-^.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ctt class=\"docutils literal\"\u003ev\u003c/tt\u003e\u003c/td\u003e\n\u003ctd\u003etriangle down\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/marker-v.png\" class=\"first last\" src=\"figures/marker-v.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ctt class=\"docutils literal\"\u003e\u0026lt;\u003c/tt\u003e\u003c/td\u003e\n\u003ctd\u003etriangle left\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/marker-\u0026lt;.png\" class=\"first last\" src=\"figures/marker-\u0026lt;.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ctt class=\"docutils literal\"\u003e\u0026gt;\u003c/tt\u003e\u003c/td\u003e\n\u003ctd\u003etriangle right\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/marker-\u0026gt;.png\" class=\"first last\" src=\"figures/marker-\u0026gt;.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ctt class=\"docutils literal\"\u003ed\u003c/tt\u003e\u003c/td\u003e\n\u003ctd\u003ethin diamond\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/marker-d.png\" class=\"first last\" src=\"figures/marker-d.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ctt class=\"docutils literal\"\u003e,\u003c/tt\u003e\u003c/td\u003e\n\u003ctd\u003epixel\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/marker-,.png\" class=\"first last\" src=\"figures/marker-,.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ctt class=\"docutils literal\"\u003e+\u003c/tt\u003e\u003c/td\u003e\n\u003ctd\u003eplus\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/marker-+.png\" class=\"first last\" src=\"figures/marker-+.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ctt class=\"docutils literal\"\u003e.\u003c/tt\u003e\u003c/td\u003e\n\u003ctd\u003epoint\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/marker-dot.png\" class=\"first last\" src=\"figures/marker-dot.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ctt class=\"docutils literal\"\u003es\u003c/tt\u003e\u003c/td\u003e\n\u003ctd\u003esquare\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/marker-s.png\" class=\"first last\" src=\"figures/marker-s.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ctt class=\"docutils literal\"\u003e*\u003c/tt\u003e\u003c/td\u003e\n\u003ctd\u003estar\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/marker-*.png\" class=\"first last\" src=\"figures/marker-*.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ctt class=\"docutils literal\"\u003e|\u003c/tt\u003e\u003c/td\u003e\n\u003ctd\u003evertical line\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/marker-|.png\" class=\"first last\" src=\"figures/marker-|.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ctt class=\"docutils literal\"\u003ex\u003c/tt\u003e\u003c/td\u003e\n\u003ctd\u003ecross\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/marker-x.png\" class=\"first last\" src=\"figures/marker-x.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ctt class=\"docutils literal\"\u003e\u003cspan class=\"pre\"\u003er'$\\sqrt{2}$'\u003c/span\u003e\u003c/tt\u003e\u003c/td\u003e\n\u003ctd\u003eany latex expression\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/marker-latex.png\" class=\"first last\" src=\"figures/marker-latex.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/div\u003e\n\u003cdiv class=\"section\" id=\"colormaps\"\u003e\n\u003ch2\u003eColormaps\u003c/h2\u003e\n\u003cp\u003eAll colormaps can be reversed by appending \u003ctt class=\"docutils literal\"\u003e_r\u003c/tt\u003e. For instance, \u003ctt class=\"docutils literal\"\u003egray_r\u003c/tt\u003e is\nthe reverse of \u003ctt class=\"docutils literal\"\u003egray\u003c/tt\u003e.\u003c/p\u003e\n\u003cp\u003eIf you want to know more about colormaps, see \u003ca class=\"reference external\" href=\"https://gist.github.com/2719900\"\u003eDocumenting the matplotlib\ncolormaps\u003c/a\u003e.\u003c/p\u003e\n\u003cdiv class=\"section\" id=\"base\"\u003e\n\u003ch3\u003eBase\u003c/h3\u003e\n\u003ctable border=\"1\" class=\"colwidths-given docutils\"\u003e\n\u003ccolgroup\u003e\n\u003ccol width=\"30%\" /\u003e\n\u003ccol width=\"70%\" /\u003e\n\u003c/colgroup\u003e\n\u003cthead valign=\"bottom\"\u003e\n\u003ctr\u003e\u003cth class=\"head\"\u003eName\u003c/th\u003e\n\u003cth class=\"head\"\u003eAppearance\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody valign=\"top\"\u003e\n\u003ctr\u003e\u003ctd\u003eautumn\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/cmap-autumn.png\" class=\"first last\" src=\"figures/cmap-autumn.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003ebone\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/cmap-bone.png\" class=\"first last\" src=\"figures/cmap-bone.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003ecool\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/cmap-cool.png\" class=\"first last\" src=\"figures/cmap-cool.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003ecopper\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/cmap-copper.png\" class=\"first last\" src=\"figures/cmap-copper.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003eflag\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/cmap-flag.png\" class=\"first last\" src=\"figures/cmap-flag.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003egray\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/cmap-gray.png\" class=\"first last\" src=\"figures/cmap-gray.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003ehot\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/cmap-hot.png\" class=\"first last\" src=\"figures/cmap-hot.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003ehsv\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/cmap-hsv.png\" class=\"first last\" src=\"figures/cmap-hsv.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003ejet\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/cmap-jet.png\" class=\"first last\" src=\"figures/cmap-jet.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003epink\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/cmap-pink.png\" class=\"first last\" src=\"figures/cmap-pink.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003eprism\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/cmap-prism.png\" class=\"first last\" src=\"figures/cmap-prism.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003espectral\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/cmap-spectral.png\" class=\"first last\" src=\"figures/cmap-spectral.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003espring\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/cmap-spring.png\" class=\"first last\" src=\"figures/cmap-spring.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003esummer\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/cmap-summer.png\" class=\"first last\" src=\"figures/cmap-summer.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003ewinter\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/cmap-winter.png\" class=\"first last\" src=\"figures/cmap-winter.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/div\u003e\n\u003cdiv class=\"section\" id=\"gist\"\u003e\n\u003ch3\u003eGIST\u003c/h3\u003e\n\u003ctable border=\"1\" class=\"colwidths-given docutils\"\u003e\n\u003ccolgroup\u003e\n\u003ccol width=\"30%\" /\u003e\n\u003ccol width=\"70%\" /\u003e\n\u003c/colgroup\u003e\n\u003cthead valign=\"bottom\"\u003e\n\u003ctr\u003e\u003cth class=\"head\"\u003eName\u003c/th\u003e\n\u003cth class=\"head\"\u003eAppearance\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody valign=\"top\"\u003e\n\u003ctr\u003e\u003ctd\u003egist_earth\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/cmap-gist_earth.png\" class=\"first last\" src=\"figures/cmap-gist_earth.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003egist_gray\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/cmap-gist_gray.png\" class=\"first last\" src=\"figures/cmap-gist_gray.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003egist_heat\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/cmap-gist_heat.png\" class=\"first last\" src=\"figures/cmap-gist_heat.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003egist_ncar\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/cmap-gist_ncar.png\" class=\"first last\" src=\"figures/cmap-gist_ncar.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003egist_rainbow\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/cmap-gist_rainbow.png\" class=\"first last\" src=\"figures/cmap-gist_rainbow.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003egist_stern\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/cmap-gist_stern.png\" class=\"first last\" src=\"figures/cmap-gist_stern.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003egist_yarg\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/cmap-gist_yarg.png\" class=\"first last\" src=\"figures/cmap-gist_yarg.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/div\u003e\n\u003cdiv class=\"section\" id=\"diverging\"\u003e\n\u003ch3\u003eDiverging\u003c/h3\u003e\n\u003ctable border=\"1\" class=\"colwidths-given docutils\"\u003e\n\u003ccolgroup\u003e\n\u003ccol width=\"30%\" /\u003e\n\u003ccol width=\"70%\" /\u003e\n\u003c/colgroup\u003e\n\u003cthead valign=\"bottom\"\u003e\n\u003ctr\u003e\u003cth class=\"head\"\u003eName\u003c/th\u003e\n\u003cth class=\"head\"\u003eAppearance\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody valign=\"top\"\u003e\n\u003ctr\u003e\u003ctd\u003eBrBG\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/cmap-BrBG.png\" class=\"first last\" src=\"figures/cmap-BrBG.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003ePiYG\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/cmap-PiYG.png\" class=\"first last\" src=\"figures/cmap-PiYG.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003ePRGn\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/cmap-PRGn.png\" class=\"first last\" src=\"figures/cmap-PRGn.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003ePuOr\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/cmap-PuOr.png\" class=\"first last\" src=\"figures/cmap-PuOr.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003eRdBu\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/cmap-RdBu.png\" class=\"first last\" src=\"figures/cmap-RdBu.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003eRdGy\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/cmap-RdGy.png\" class=\"first last\" src=\"figures/cmap-RdGy.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003eRdYlBu\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/cmap-RdYlBu.png\" class=\"first last\" src=\"figures/cmap-RdYlBu.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003eRdYlGn\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/cmap-RdYlGn.png\" class=\"first last\" src=\"figures/cmap-RdYlGn.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003eSpectral\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/cmap-spectral-2.png\" class=\"first last\" src=\"figures/cmap-spectral-2.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/div\u003e\n\u003cdiv class=\"section\" id=\"sequential\"\u003e\n\u003ch3\u003eSequential\u003c/h3\u003e\n\u003ctable border=\"1\" class=\"colwidths-given docutils\"\u003e\n\u003ccolgroup\u003e\n\u003ccol width=\"30%\" /\u003e\n\u003ccol width=\"70%\" /\u003e\n\u003c/colgroup\u003e\n\u003cthead valign=\"bottom\"\u003e\n\u003ctr\u003e\u003cth class=\"head\"\u003eName\u003c/th\u003e\n\u003cth class=\"head\"\u003eAppearance\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody valign=\"top\"\u003e\n\u003ctr\u003e\u003ctd\u003eBlues\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/cmap-Blues.png\" class=\"first last\" src=\"figures/cmap-Blues.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003eBuGn\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/cmap-BuGn.png\" class=\"first last\" src=\"figures/cmap-BuGn.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003eBuPu\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/cmap-BuPu.png\" class=\"first last\" src=\"figures/cmap-BuPu.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003eGnBu\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/cmap-GnBu.png\" class=\"first last\" src=\"figures/cmap-GnBu.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003eGreens\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/cmap-Greens.png\" class=\"first last\" src=\"figures/cmap-Greens.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003eGreys\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/cmap-Greys.png\" class=\"first last\" src=\"figures/cmap-Greys.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003eOranges\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/cmap-Oranges.png\" class=\"first last\" src=\"figures/cmap-Oranges.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003eOrRd\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/cmap-OrRd.png\" class=\"first last\" src=\"figures/cmap-OrRd.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003ePuBu\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/cmap-PuBu.png\" class=\"first last\" src=\"figures/cmap-PuBu.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003ePuBuGn\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/cmap-PuBuGn.png\" class=\"first last\" src=\"figures/cmap-PuBuGn.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003ePuRd\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/cmap-PuRd.png\" class=\"first last\" src=\"figures/cmap-PuRd.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003ePurples\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/cmap-Purples.png\" class=\"first last\" src=\"figures/cmap-Purples.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003eRdPu\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/cmap-RdPu.png\" class=\"first last\" src=\"figures/cmap-RdPu.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003eReds\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/cmap-Reds.png\" class=\"first last\" src=\"figures/cmap-Reds.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003eYlGn\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/cmap-YlGn.png\" class=\"first last\" src=\"figures/cmap-YlGn.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003eYlGnBu\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/cmap-YlGnBu.png\" class=\"first last\" src=\"figures/cmap-YlGnBu.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003eYlOrBr\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/cmap-YlOrBr.png\" class=\"first last\" src=\"figures/cmap-YlOrBr.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003eYlOrRd\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/cmap-YlOrRd.png\" class=\"first last\" src=\"figures/cmap-YlOrRd.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/div\u003e\n\u003cdiv class=\"section\" id=\"qualitative\"\u003e\n\u003ch3\u003eQualitative\u003c/h3\u003e\n\u003ctable border=\"1\" class=\"colwidths-given docutils\"\u003e\n\u003ccolgroup\u003e\n\u003ccol width=\"30%\" /\u003e\n\u003ccol width=\"70%\" /\u003e\n\u003c/colgroup\u003e\n\u003cthead valign=\"bottom\"\u003e\n\u003ctr\u003e\u003cth class=\"head\"\u003eName\u003c/th\u003e\n\u003cth class=\"head\"\u003eAppearance\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody valign=\"top\"\u003e\n\u003ctr\u003e\u003ctd\u003eAccent\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/cmap-Accent.png\" class=\"first last\" src=\"figures/cmap-Accent.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003eDark2\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/cmap-Dark2.png\" class=\"first last\" src=\"figures/cmap-Dark2.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003ePaired\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/cmap-Paired.png\" class=\"first last\" src=\"figures/cmap-Paired.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003ePastel1\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/cmap-Pastel1.png\" class=\"first last\" src=\"figures/cmap-Pastel1.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003ePastel2\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/cmap-Pastel2.png\" class=\"first last\" src=\"figures/cmap-Pastel2.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003eSet1\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/cmap-Set1.png\" class=\"first last\" src=\"figures/cmap-Set1.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003eSet2\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/cmap-Set2.png\" class=\"first last\" src=\"figures/cmap-Set2.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003eSet3\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/cmap-Set3.png\" class=\"first last\" src=\"figures/cmap-Set3.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/div\u003e\n\u003cdiv class=\"section\" id=\"miscellaneous\"\u003e\n\u003ch3\u003eMiscellaneous\u003c/h3\u003e\n\u003ctable border=\"1\" class=\"colwidths-given docutils\"\u003e\n\u003ccolgroup\u003e\n\u003ccol width=\"30%\" /\u003e\n\u003ccol width=\"70%\" /\u003e\n\u003c/colgroup\u003e\n\u003cthead valign=\"bottom\"\u003e\n\u003ctr\u003e\u003cth class=\"head\"\u003eName\u003c/th\u003e\n\u003cth class=\"head\"\u003eAppearance\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody valign=\"top\"\u003e\n\u003ctr\u003e\u003ctd\u003eafmhot\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/cmap-afmhot.png\" class=\"first last\" src=\"figures/cmap-afmhot.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003ebinary\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/cmap-binary.png\" class=\"first last\" src=\"figures/cmap-binary.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003ebrg\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/cmap-brg.png\" class=\"first last\" src=\"figures/cmap-brg.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003ebwr\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/cmap-bwr.png\" class=\"first last\" src=\"figures/cmap-bwr.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003ecoolwarm\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/cmap-coolwarm.png\" class=\"first last\" src=\"figures/cmap-coolwarm.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003eCMRmap\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/cmap-CMRmap.png\" class=\"first last\" src=\"figures/cmap-CMRmap.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003ecubehelix\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/cmap-cubehelix.png\" class=\"first last\" src=\"figures/cmap-cubehelix.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003egnuplot\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/cmap-gnuplot.png\" class=\"first last\" src=\"figures/cmap-gnuplot.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003egnuplot2\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/cmap-gnuplot2.png\" class=\"first last\" src=\"figures/cmap-gnuplot2.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003eocean\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/cmap-ocean.png\" class=\"first last\" src=\"figures/cmap-ocean.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003erainbow\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/cmap-rainbow.png\" class=\"first last\" src=\"figures/cmap-rainbow.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003eseismic\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/cmap-seismic.png\" class=\"first last\" src=\"figures/cmap-seismic.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003eterrain\u003c/td\u003e\n\u003ctd\u003e\u003cimg alt=\"figures/cmap-terrain.png\" class=\"first last\" src=\"figures/cmap-terrain.png\" /\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003c/body\u003e\n\u003c/html\u003e\n","funding_links":[],"categories":["Python","Matplotlib","其他_机器学习与深度学习"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frougier%2Fmatplotlib-tutorial","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frougier%2Fmatplotlib-tutorial","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frougier%2Fmatplotlib-tutorial/lists"}