{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\n", "\n", "\"Open\n", "\n", "| - | - |\n", "|---------------------------------------------------------------------|---------------------------------------------------------------------|\n", "| [Exercise 9 (multiple graphs)](<#Exercise-9-(multiple-graphs)>) | [Exercise 10 (subfigures)](<#Exercise-10-(subfigures)>) |\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Matplotlib\n", "\n", "To understand the data better it helps to be able to visualize it in various ways. [Matplotlib](https://matplotlib.org/) is the most common low-level visualization library for Python. It can create line graphs, scatter plots, density plots, histograms, heatmaps, and so on. During this course we will not go deep into details of matplotlib, instead we have just some examples spread throughout the rest of this material of its use.\n", "\n", "## Simple figure\n", "We will start with an example. The standard way to import matplotlib is as the abbreviation `plt`." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "ExecuteTime": { "end_time": "2019-06-14T11:42:24.771885Z", "start_time": "2019-06-14T11:42:20.097503Z" } }, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's first have some data to visualize:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "ExecuteTime": { "end_time": "2019-06-14T11:42:24.859015Z", "start_time": "2019-06-14T11:42:24.854595Z" } }, "outputs": [], "source": [ "a=np.array([2, 5, 7, 4, 7, 0, 3, 1, 9, 2])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Below the `plot` function does the actual drawing of the graph, the rest of the function calls adjust some details of the figure. Make sure you understand how the values in the array `a` correspond to the features in the figure! " ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "ExecuteTime": { "end_time": "2019-06-14T11:44:25.731933Z", "start_time": "2019-06-14T11:44:25.543053Z" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.plot(a) # plot the points in the array a\n", "plt.title(\"My first figure\") # Add a title to the figure\n", "plt.xlabel(\"My x-axis\") # Give a label to the x-axis\n", "plt.ylabel(\"My y-axis\") # Give a label to the y-axis\n", "plt.show() # Tell matplotlib to output the figure.\n", " # Not strictly required in notebooks (but a bit neater)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The key components of any matplotlib figure and the terminology is shown in the below image. The toplevel object is `figure` and it can contain one or more `subfigures`, which are strangely called `axes` in matplotlib." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "![components of a figure](example_figure2.png)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "####
Exercise 9 (multiple graphs)
\n", "\n", "In the above plot the x coordinates were implicitly set to the indices of the array `a`, that is, `arange(10)`. Find out from the documentation of `plt.plot` how to specify the x coordinates explicitly. Find out also how to draw multiple graphs in one axes.\n", "\n", "Make your `main` function plot the following two graphs in one axes. The first graphs has x coordinates 2,4,6,7 and y coordinates 4,3,5,1. The second graph has x coordinates 1,2,3,4 and y coordinates 4,2,3,1.\n", "\n", "Add also a title and some labels for x axis and y axis. Note that in the non-interactive mode you have to call `plt.show()` for the figure to show.\n", "\n", "The plot should look like the one below.\n", "\n", "![multiplot](multiplot.png)\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Subfigures" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "One can create a figure with several subfigures using the command `plt.subplots`. It creates a grid of subfigures, where the number of rows and columns in the grid are given as parameters. It returns a pair of a figure object and an array containing the subfigures. In matplotlib the subfigures are called `axes`. Note the one letter difference: axis is singular and axes is plural of axis. So, you can think of `axes` as the pair of x-axis and y-axis that defines a two dimensional (sub)figure. An example of this:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "ExecuteTime": { "end_time": "2019-06-14T11:51:28.685977Z", "start_time": "2019-06-14T11:51:28.289544Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(2, 2)\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(2,2)\n", "print(ax.shape)\n", "ax[0,0].plot(np.arange(6)) # top left\n", "ax[0,1].plot(np.arange(6,0,-1)) # top right\n", "ax[1,0].plot((-1)**np.arange(6)) # bottom left\n", "ax[1,1].plot((-1)**np.arange(1,7)) # bottom right\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If you don't want to mess around with axes you can direct all your calls to pyplot (in a more matlabby way) like so:" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "ExecuteTime": { "end_time": "2019-06-14T11:58:34.896316Z", "start_time": "2019-06-14T11:58:34.588034Z" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.subplot(2, 2, 1) # Note the 1-indexing of subplots. \n", "plt.plot(np.arange(6))\n", "plt.subplot(2, 2, 2)\n", "plt.plot(np.arange(6, 0, -1))\n", "plt.subplot(2, 2, 3)\n", "plt.plot((-1)**np.arange(6))\n", "plt.subplot(2, 2, 4)\n", "plt.plot((-1)**np.arange(1, 7))\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that in this notebook we have used both the function `plt.plot` and the similar method `plot` of the axes object. The functions in `plt` namespace refer to the global variables that tell what is the current figure and what is the current axes. If we want to refer to multiple figures and/or axes' at the same, we cannot use the function in `plt`. Instead, we can refer to each `figure` or `axes` object and use their methods to do the drawing.\n", "\n", "Note the similarity to the random number generators in Python:\n", "the function like `np.random.randn` use the global random number generator. But if you want to use multiple random number generators at the same time, you first have to create the generators using the call `rng1=np.random.RandomState(seed)` and then use the *method* `rng1.randn`.\n", "\n", "So with both random number generators and matplotlib plots you can choose between using one global object, and functions referring to it, at a time, or using several objects and their methods to refer to multiple objects at the same time." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "####
Exercise 10 (subfigures)
\n", "\n", "Write function `subfigures` that creates a figure that has two subfigures (two *axes* in matplotlib parlance). The function gets a two dimensional array `a` as a parameter. In the left subfigure draw using the `plot` *method* a graph, whose x coordinates are in the first column of `a` and the y coordinates are in the second column of `a`. In the right subfigure draw using the `scatter` *method* a set of points whose x coords are again in the first column of `a` and whose y coordinates are in the second column of `a`. Additionally, the points should get their color from the third column of `a`, and size of the point from the fourth column of `a`. For this, use the `c` and `s` named parameters of `scatter`, respectively\n", "\n", "Test your function `subfigure` from the `main` function.\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Other data visualization libraries for Python\n", "\n", "The development of matplotlib library started already in 2003. In some ways this old age shows as figures that don't look very pretty compared to the figures created with more modern alternatives. Also, it can be quite complicated to create a simple figure. Here's a list of some common modern libraries:\n", "\n", "* [Seaborn](https://seaborn.pydata.org/index.html) is a higher-level plotting library that is build on top of matplotlib. It allows easy creation of more complicated plots. The figures it produces also look prettier than ones created by matplotlib with its default settings.\n", "* [Bokeh](https://bokeh.pydata.org/en/latest/) creates html pages as output that can be viewed with a web browser. Since it doesn't create static images, like many other plotting libraries, but html pages which can containg Javascript, this allows the plots to be interactive. Interactive can here mean that you can e.g. zoom or pan the image, or you can have control elements (button, sliders, etc) that adjust the image.\n", "* [Holoviews](http://holoviews.org/): even higher-level library build on top of Bokeh and matplotlib\n", "* [Plotly](https://plot.ly/python/): A powerful tool for creating interactive plots." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\n", "\n", "\"Open\n" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.9" }, "varInspector": { "cols": { "lenName": 16, "lenType": 16, "lenVar": 40 }, "kernels_config": { "python": { "delete_cmd_postfix": "", "delete_cmd_prefix": "del ", "library": "var_list.py", "varRefreshCmd": "print(var_dic_list())" }, "r": { "delete_cmd_postfix": ") ", "delete_cmd_prefix": "rm(", "library": "var_list.r", "varRefreshCmd": "cat(var_dic_list()) " } }, "types_to_exclude": [ "module", "function", "builtin_function_or_method", "instance", "_Feature" ], "window_display": false } }, "nbformat": 4, "nbformat_minor": 2 }