You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

126 lines
30 KiB

{
"cells": [
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"import matplotlib\n",
"import matplotlib.pyplot as plt\n",
"from matplotlib.colors import BoundaryNorm\n",
"from matplotlib.ticker import MaxNLocator\n",
"import numpy as np\n",
"\n",
"\n",
"# make these smaller to increase the resolution\n",
"dx, dy = 0.05, 0.05\n",
"\n",
"# generate 2 2d grids for the x & y bounds\n",
"y, x = np.mgrid[slice(1, 5 + dy, dy),\n",
" slice(1, 5 + dx, dx)]\n",
"\n",
"z = np.sin(x)**10 + np.cos(10 + y*x) * np.cos(x)\n",
"\n",
"# x and y are bounds, so z should be the value *inside* those bounds.\n",
"# Therefore, remove the last value from the z array.\n",
"z = z[:-1, :-1]\n",
"levels = MaxNLocator(nbins=15).tick_values(z.min(), z.max())\n",
"\n",
"\n",
"# pick the desired colormap, sensible levels, and define a normalization\n",
"# instance which takes data values and translates those into levels.\n",
"cmap = plt.get_cmap('PiYG')\n",
"norm = BoundaryNorm(levels, ncolors=cmap.N, clip=True)\n",
"\n",
"fig, (ax0, ax1) = plt.subplots(nrows=2)\n",
"\n",
"im = ax0.pcolormesh(x, y, z, cmap=cmap, norm=norm)\n",
"fig.colorbar(im, ax=ax0)\n",
"ax0.set_title('pcolormesh with levels')\n",
"\n",
"\n",
"# contours are *point* based plots, so convert our bound into point\n",
"# centers\n",
"cf = ax1.contourf(x[:-1, :-1] + dx/2.,\n",
" y[:-1, :-1] + dy/2., z, levels=levels,\n",
" cmap=cmap)\n",
"fig.colorbar(cf, ax=ax1)\n",
"ax1.set_title('contourf with levels')\n",
"\n",
"# adjust spacing between subplots so `ax1` title and `ax0` tick labels\n",
"# don't overlap\n",
"fig.tight_layout()\n",
"\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[1. , 1. , 1. , ..., 1. , 1. , 1. ],\n",
" [1.05, 1.05, 1.05, ..., 1.05, 1.05, 1.05],\n",
" [1.1 , 1.1 , 1.1 , ..., 1.1 , 1.1 , 1.1 ],\n",
" ...,\n",
" [4.9 , 4.9 , 4.9 , ..., 4.9 , 4.9 , 4.9 ],\n",
" [4.95, 4.95, 4.95, ..., 4.95, 4.95, 4.95],\n",
" [5. , 5. , 5. , ..., 5. , 5. , 5. ]])"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"y"
]
},
{
"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.5.2"
}
},
"nbformat": 4,
"nbformat_minor": 2
}