{ "cells": [ { "cell_type": "raw", "metadata": {}, "source": [ "---\n", "title: \"Plotting with Python\"\n", "file_title: Plotting\n", "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This is a MATLAB users introduction to making great plots with Matplotlib in python.\n", "\n", "**First** we need to import the matplotlib.pyplot library, and we can access the functions in that library using the `plt` namespace, this is a typical style but any prefix works. This allows us to avoid typing `matplotlib.pyplt.function()` to call functions from that library." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Next, we need the numerical python (numpy) library. This is imported under the namespace `np`." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import numpy as np" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We need some data to plot, so we will use the `linspace` function of the `numpy` library to generate a linearly spaced array of values we will use inputs to a function." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "theta = np.linspace(0, 2*np.pi, 100)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now, we need to *instatiate* figure and axes objects to plot things on to them. Note that there is no need to clear the frame, since a clean slate will always be generated. Also `fig` and `ax` are simply a variable choice, I could have just easily said `fig1` and `ax1`, which may happen if we want to make multiple figures." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots()\n", "ax.plot(theta, np.sin(theta))\n", "ax.set_title('Simple Plot')\n", "ax.set_xlabel(r'$\\theta$')\n", "ax.set_ylabel(r'$\\sin(\\theta)$')\n", "ax.grid(True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Advanced: Styling and Saving\n", "We can use different in-built plot styles to make the style plot looks exactly like we want. The available styles may look different on your system, but you can easily print a list of available plot styles with the following:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Solarize_Light2\n", "_classic_test_patch\n", "bmh\n", "classic\n", "dark_background\n", "fast\n", "fivethirtyeight\n", "ggplot\n", "grayscale\n", "seaborn\n", "seaborn-bright\n", "seaborn-colorblind\n", "seaborn-dark\n", "seaborn-dark-palette\n", "seaborn-darkgrid\n", "seaborn-deep\n", "seaborn-muted\n", "seaborn-notebook\n", "seaborn-paper\n", "seaborn-pastel\n", "seaborn-poster\n", "seaborn-talk\n", "seaborn-ticks\n", "seaborn-white\n", "seaborn-whitegrid\n", "tableau-colorblind10\n" ] } ], "source": [ "for style in plt.style.available:\n", "\tprint(style)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZUAAAEaCAYAAADZvco2AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+j8jraAAAgAElEQVR4nO3de1xVVf7/8dfagKKiCOeoxMVUUvN+CbzgPVFLTanM1LLMmmq0HC37lX01a8yizCwnTRsNu02l6WDmNTS1tEZMDW+lOJaZOshVQUBgr98fJ5kYUS4e2OfA5/l49Hhw9tmL/V4c48Pal7WU1lojhBBCOIFhdQAhhBBVhxQVIYQQTiNFRQghhNNIURFCCOE0UlSEEEI4jRQVIYQQTiNFRYgSPP/889xwww1V6lhbt25FKcXJkycr/FiiepGiIqq17OxsZsyYQfPmzalVqxY2m43w8HDmz59fuM/UqVP57rvvLExZdk2aNEEphVIKb29vbrzxRl599VVM0yz393zxxRdp0qSJ80KKKsnT6gBCWOnPf/4zX331FW+++SYdOnTg3Llz7N27lxMnThTu4+Pjg4+Pj4Upy+fpp59m8uTJZGdns3r1ap544gmUUjz11FNWRxNVmIxURLUWGxvLU089RVRUFE2bNqVDhw6MGzeO5557rnCf/z0lden18uXLad68ObVr1yYqKopz586xatUqWrZsSd26dRkxYgQZGRmF7caNG0dkZCSvv/46QUFB1K5dmzvvvJPk5OSrZvzyyy/p0aMHtWrVIigoiAceeICUlJQS++bj40NAQABNmzZl8uTJ9O/fn1WrVl1x/++++47evXtTq1Yt/Pz8GDNmDElJSQAsW7aMGTNm8MsvvxSOgJ5//vkSM4jqR4qKqNauu+46NmzYQGpqapnanT59mvfee4+VK1eyfv16duzYwYgRI1iyZAnLly9n3bp1fP3117z00ktF2u3atYutW7eyYcMG1q1bR0JCAuPHj7/icbZs2cLw4cMZNWoUCQkJxMbG8vPPP3P77bdT1hmWatWqRV5eXrHvnTlzhoEDBxIcHMyuXbtYs2YNBw4c4M477wTg7rvv5umnnyY4OJjTp09z+vRppk6dWqbji+pBTn+Jam3JkiWMGTOGBg0a0KZNG7p168aQIUMYNmwYSqkrtsvNzeW9997DbrcDMHLkSBYtWsSZM2do0KABAKNGjWLz5s1F2pmmyQcffICvry8ACxYsYNCgQRw9epTmzZtfdpy//vWvTJo0iccff7xw23vvvcf111/PDz/8QMeOHUvso2marF+/no0bNzJlypRi91mwYAH16tVj2bJl1KhRA4APPviAjh07sn37dnr37o2Pjw8eHh4EBASUeExRfclIRVRrPXr04NixY3z99dfcf//9/Oc//+HOO+9k2LBhVx0JBAUFFRYUgICAAAICAgoLyqVtl04fXdK6devCgnLp+ACHDx8u9jjx8fG88cYbhdd1fHx8aN26NQBHjx69at9mzZqFj48P3t7e3HHHHdx///1XPGV18OBBunXrVlhQADp06ICvry8HDx686nGE+CMZqYhqz9PTk4iICCIiInjyySf58MMPGTt2LNu3b6dPnz7FtvHy8iryWilV7LZrudsKHKOMp59+mrFjx172XkkjhokTJzJhwgS8vb0JDAzEMK7+N+SVRmZXG7EJ8b+kqAjxP1q1agVw2SjDGQ4fPsy5c+eoV68eADt37ixyzP8VFhbGwYMHy/Xsir+/f6nbtWnThpiYGC5evFg4Wvnhhx/IyMigTZs2ANSoUYOCgoIy5xDVi5z+EtVanz59WLRoEbt37+aXX35h8+bNTJgwgfr169OvXz+nH08pxX333ceBAwfYvn07EydOZMiQIcVeTwHHNZXVq1czZcoU9u3bx7Fjx9iwYQMPPvgg2dnZTsv12GOPce7cOcaNG8eBAwf45ptvGDt2LD179qRXr14ANG3alDNnzvDtt9+SnJzMhQsXnHZ8UXVIURHV2q233spHH33E4MGDadmyJQ888ADNmzdnx44dRa6ZOEuXLl3o2bMnAwYMYNCgQYUjhCvp168fW7ZsYf/+/fTq1Yv27dszZcoU6tate9nptmvRqFEjNm3axMmTJwkPD2fo0KG0bduWlStXFu4TFRXFXXfdxZAhQ2jQoAGvvvqq044vqg4lKz8KUTnGjRvHyZMniYuLszqKEBVGRipCCCGcRoqKEEIIp5HTX0IIIZxGRipCCCGcRoqKEEIIp5GHH4FTp06Vq53dbi9xhllX5+59kPzWc/c+uHt+sKYPgYGBxW6XkYoQQginkaIihBDCaaSoCCGEcBopKkIIIZxGiooQQgincbm7vxYuXMiePXvw9fVl7ty5l72v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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.style.use('ggplot')\n", "# replot the plot.\n", "fig, ax = plt.subplots()\n", "ax.plot(theta, np.sin(theta))\n", "ax.set_title('Simple Plot')\n", "ax.set_xlabel(r'$\\theta$')\n", "ax.set_ylabel(r'$\\sin(\\theta)$')\n", "ax.grid(True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now, we can use save the figure as a high quality pdf to include in a LaTeX document, or a png to include in a Word document. The following cell will print out a list of available filetypes." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "ps: Postscript\n", "eps: Encapsulated Postscript\n", "pdf: Portable Document Format\n", "pgf: PGF code for LaTeX\n", "png: Portable Network Graphics\n", "raw: Raw RGBA bitmap\n", "rgba: Raw RGBA bitmap\n", "svg: Scalable Vector Graphics\n", "svgz: Scalable Vector Graphics\n" ] } ], "source": [ "ext = fig.canvas.get_supported_filetypes().items()\n", "for key, value in ext:\n", "\tprint(f'{key}: {value}')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now, we can save the figure to the current directory by using the `savefig` method of the `fig` object." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "fig.savefig('OOP-Plot.pdf', #name of pdf file\n", "\t\t\ttransparent=True, #make bkgd transparent\n", "\t\t\tbbox_inches='tight'#reduce whitespace\n", "\t\t\t)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Sources:\n", "- https://matplotlib.org/tutorials/introductory/lifecycle.html" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.10" }, "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 }