{ "cells": [ { "cell_type": "markdown", "metadata": { "lines_to_next_cell": 0, "toc": true }, "source": [ "

Table of Contents

\n", "
" ] }, { "cell_type": "markdown", "metadata": { "lines_to_next_cell": 0 }, "source": [ "# Plotting fields using pcolormesh\n", "\n", "Matplotlib has a couple of different ways of plotting 2-dimensional fields.\n", "For problems typical of our class, contourf is usually not what we want,\n", "because it does its own interpolation on the gridcells. If you don't\n", "want that smearing, then use pcolor or pcolormesh. The p stands for \"pseudo\"\n", "(because concentrations don't really have colors, and the \"mesh\" indicates\n", "that the routine is laying down a cellular mesh to plot into).\n", "\n", "Below I show how to use pcolormesh plus fancy pallette features to plot\n", "limited ranges of data." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "setting context.data_dir to /Users/phil/repos/eosc213_students/notebooks/cookbook_examples\n" ] } ], "source": [ "import matplotlib\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "import context" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Read in the concentration dataset" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "lines_to_next_cell": 0 }, "outputs": [], "source": [ "cp = np.load(context.data_dir / \"colormap_data.npz\")\n", "x, y, c = cp[\"x\"], cp[\"y\"], cp[\"c\"]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Get a feeling for the range of concentrations" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(array([5.528e+03, 3.080e+02, 1.000e+02, 2.000e+01, 1.200e+01, 1.200e+01,\n", " 0.000e+00, 4.000e+00, 0.000e+00, 1.600e+01]),\n", " array([ 0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.]),\n", " )" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.hist(c.flat)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Create a normalized pallette\n", "\n", "The next cell allows me to focus on the concentration\n", "values between 0.2 and 1.5. It does this by assigning\n", "all the 256 pallette colors values in that range. If\n", "a concentration is larger than 1.5 it gets colored white,\n", "and if a color is less than 0. it gets colored teal. If the data\n", "is missing, it is colored light gray (i.e. 0.75 as bright as white)\n", "\n", "\"xkcd\" below is a reference to the [xkcd color names](https://xkcd.com/color/rgb/)\n", "which are explained (in pretty interesting) detail [here](https://blog.xkcd.com/2010/05/03/color-survey-results/)\n", "\n" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "pal = plt.get_cmap(\"RdYlBu\").reversed()\n", "pal.set_bad(\"0.75\") # 75% grey for np.nan (missing data)\n", "pal.set_over(\"xkcd:white\") # color cells > vmax white\n", "pal.set_under(\"xkcd:teal\") # color cells < vmin teal\n", "vmax = 1.5\n", "vmin = 0.2\n", "the_norm = matplotlib.colors.Normalize(vmin=vmin, vmax=vmax, clip=False)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## plot the grid\n", "\n", "I had trouble putting a fancy pallette on the axes_grid1 layout\n", "we were using, so I went back to basics and placed the colorbar by hand.\n", "Things to note:\n", "\n", "1. I needed to set the aspect ratio to 1 to preserve the rectangular shape.\n", " If you comment out the_ax.set_aspect(1) below you'll get square\n", " axes, which is not what we want.\n", "\n", "2. I set concentrations smaller than 1.e-4 to missing/np.nan, so they get\n", " their own color initially and it is clear that the spot is diffusing\n", " into clean water.\n", "\n", "3. I create axes number 10 to hold the colorbar by specifying x,y coordinates\n", " for the lower corner as 0.92,0.1 a width of 0.025 and and height of\n", " 0.55. This was pure trial and error." ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "hide_input": false, "lines_to_next_cell": 2, "scrolled": true }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plot_c = np.array(c)\n", "plot_c[plot_c < 1.0e-4] = np.nan\n", "m2km = 1.0e-3\n", "time_steps = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8])\n", "nfig = len(time_steps)\n", "fig, grid = plt.subplots(3, 3, figsize=(10, 10))\n", "ntimesteps = len(time_steps)\n", "\n", "for time_index, the_ax in zip(time_steps, grid.flat):\n", " im = the_ax.pcolormesh(\n", " x * m2km, y * m2km, plot_c[:, :, time_index], norm=the_norm, cmap=pal\n", " )\n", " the_ax.set_aspect(1)\n", " fig.subplots_adjust(bottom=0.1, top=0.65)\n", "\n", "cax = fig.add_axes([0.92, 0.1, 0.025, 0.55], frameon=False)\n", "cbar = matplotlib.colorbar.Colorbar(cax, im, extend=\"both\")\n", "cbar.ax.set_ylabel(\"Concentration ($kg/m^3$)\", rotation=270, size=20, va=\"bottom\")\n", "fig.suptitle(\n", " \"Evolution of the oil concentration through time\", y=0.7, size=25, va=\"top\"\n", ");" ] } ], "metadata": { "jupytext": { "cell_metadata_filter": "all", "notebook_metadata_filter": "all,-language_info", "text_representation": { "extension": ".py", "format_name": "percent", "format_version": "1.2", "jupytext_version": "1.0.4" } }, "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.7" }, "nbsphinx": { "execute": "never" }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": true, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": true, "toc_position": {}, "toc_section_display": true, "toc_window_display": true } }, "nbformat": 4, "nbformat_minor": 2 }