{ "cells": [ { "cell_type": "code", "execution_count": 196, "metadata": {}, "outputs": [], "source": [ "from grid_strategy import strategies\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "import ipywidgets as widgets\n", "from ipywidgets import interact, interactive, fixed, interact_manual\n", "import math\n", "\n", "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 197, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "\t\tBefore:\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "print(\"\\n\\t\\tBefore:\")\n", "\n", "t1 = np.arange(-5.0, 5.0, 0.2)\n", "y0 = np.sin(t1) ** 0\n", "y1 = np.sin(t1) ** 1\n", "plt.subplot(2, 3, 1)\n", "plt.plot(t1, y0)\n", "plt.subplot(2, 3, 2)\n", "plt.plot(t1, y1)\n", "plt.show()\n", "\n", "y2 = np.sin(t1) ** 2\n", "y3 = np.sin(t1) ** 3\n", "y4 = np.sin(t1) ** 4\n", "plt.subplot(2, 3, 4)\n", "plt.plot(t1, y2)\n", "plt.subplot(2, 3, 5)\n", "plt.plot(t1, y3)\n", "plt.subplot(2, 3, 6)\n", "plt.plot(t1, y4)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 198, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "\t\tAfter: with grid-strategy\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "print(\"\\n\\t\\tAfter: with grid-strategy\")\n", "\n", "t1 = np.arange(-5.0, 5.0, 0.2)\n", "specs1 = strategies.SquareStrategy(\"left\").get_grid(5)\n", "for i, sub in enumerate(specs1):\n", " plt.subplot(sub)\n", " plt.plot(t1, np.sin(t1) ** i)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 199, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "\tExamples of grid-strategy\n" ] } ], "source": [ "print(\"\\n\\tExamples of grid-strategy\")" ] }, { "cell_type": "code", "execution_count": 200, "metadata": { "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "\tSlider from ipywidgets for RIGHT-formatted plots (Squarify)\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "bb77a8e52ecd449bb75fbbcc0f85c605", "version_major": 2, "version_minor": 0 }, "text/plain": [ "interactive(children=(IntSlider(value=5, description='x', max=15, min=1), Output()), _dom_classes=('widget-int…" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "print(\"\\n\\tSlider from ipywidgets for RIGHT-formatted plots (Squarify)\")\n", "t1 = np.arange(-10.0, 10.0, 0.1)\n", "\n", "def f1(x):\n", " specs2 = strategies.SquareStrategy(\"right\").get_grid(x)\n", " for i, subplot in enumerate(specs2):\n", " plt.subplot(subplot)\n", " plt.plot(t1, np.sin(t1) ** i) \n", " plt.show()\n", "\n", "interact(f1, x=widgets.IntSlider(min=1,max=15,step=1,value=5));\n" ] }, { "cell_type": "code", "execution_count": 201, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "\tSlider from ipywidgets for LEFT-formatted plots (Squarify)\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "e2cec130c0734ad3ac77f9b12f8eb2f8", "version_major": 2, "version_minor": 0 }, "text/plain": [ "interactive(children=(IntSlider(value=5, description='x', max=15, min=1), Output()), _dom_classes=('widget-int…" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "\n", "print(\"\\n\\tSlider from ipywidgets for LEFT-formatted plots (Squarify)\")\n", "t1 = np.arange(-10.0, 10.0, 0.1)\n", "\n", "def f2(x):\n", " specs3 = strategies.SquareStrategy(\"left\").get_grid(x)\n", " for i, subplot in enumerate(specs3):\n", " plt.subplot(subplot)\n", " plt.plot(t1, np.sin(t1) ** i) \n", " plt.show()\n", " \n", "interact(f2, x=widgets.IntSlider(min=1,max=15,step=1,value=5));" ] }, { "cell_type": "code", "execution_count": 202, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "\tSlider from ipywidgets for CENTER-formatted plots (Squarify)\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "3b2ee44610e242b8a4a0efde7a479349", "version_major": 2, "version_minor": 0 }, "text/plain": [ "interactive(children=(IntSlider(value=5, description='x', max=15, min=1), Output()), _dom_classes=('widget-int…" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "print(\"\\n\\tSlider from ipywidgets for CENTER-formatted plots (Squarify)\")\n", "t1 = np.arange(-10.0, 10.0, 0.1)\n", "\n", "def f3(x):\n", " specs4 = strategies.SquareStrategy(\"center\").get_grid(x)\n", " for i, subplot in enumerate(specs4):\n", " plt.subplot(subplot)\n", " plt.plot(t1, np.sin(t1) ** i) \n", " plt.show()\n", " \n", "interact(f3, x=widgets.IntSlider(min=1,max=15,step=1,value=5));" ] }, { "cell_type": "code", "execution_count": 203, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "\tSlider from ipywidgets for JUSTIFIED-formatted plots (Squarify)\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "1cc1d3088d2a4e15a90d407afbd0acd1", "version_major": 2, "version_minor": 0 }, "text/plain": [ "interactive(children=(IntSlider(value=5, description='x', max=15, min=1), Output()), _dom_classes=('widget-int…" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "print(\"\\n\\tSlider from ipywidgets for JUSTIFIED-formatted plots (Squarify)\")\n", "\n", "t1 = np.arange(-10.0, 10.0, 0.1)\n", "\n", "def f4(x):\n", " specs5 = strategies.SquareStrategy(\"justified\").get_grid(x)\n", " for i, subplot in enumerate(specs5):\n", " plt.subplot(subplot)\n", " plt.plot(t1, np.sin(t1) ** i) \n", " plt.show()\n", " \n", "interact(f4, x=widgets.IntSlider(min=1,max=15,step=1,value=5));" ] }, { "cell_type": "code", "execution_count": 204, "metadata": { "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "\tSlider from ipywidgets for rectangular plots\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "b4b57ebd3bf4414b9d26697d7c90c873", "version_major": 2, "version_minor": 0 }, "text/plain": [ "interactive(children=(IntSlider(value=8, description='x', max=15, min=1), Output()), _dom_classes=('widget-int…" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "print(\"\\n\\tSlider from ipywidgets for rectangular plots\")\n", "t1 = np.arange(-10.0, 10.0, 0.1)\n", "\n", "def f5(x):\n", " specs6 = strategies.RectangularStrategy().get_grid(x)\n", " for i, subplot in enumerate(specs6):\n", " plt.subplot(subplot)\n", " plt.plot(t1, np.sin(t1) ** i) \n", " plt.show()\n", " \n", "interact(f5, x=widgets.IntSlider(min=1,max=15,step=1,value=8));" ] }, { "cell_type": "code", "execution_count": 195, "metadata": { "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "\tArray to store functions\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "5f1c1e83a3b9489cbc4efbbc709d33fd", "version_major": 2, "version_minor": 0 }, "text/plain": [ "interactive(children=(IntSlider(value=7, description='x', max=15, min=1), Output()), _dom_classes=('widget-int…" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "print(\"\\n\\tArray to store functions\")\n", "\n", "t1 = np.arange(-10.0, 10.0, .1)\n", "funcs = [t1**3, (t1**5)/t1,t1/(2**t1),t1/(3*t1),-t1, math.sqrt(2)/t1,\n", " 5/(t1**2), -t1**13, np.sin(t1), np.tan(t1),np.cos(t1/2), \n", " t1 + t1**9, np.tan(-np.sin(t1)), -t1**2, t1*np.arcsin(.5)]\n", "\n", "def f6(x):\n", " specs7 = strategies.SquareStrategy(\"center\").get_grid(x)\n", " for i, subplot in enumerate(specs7):\n", " plt.subplot(subplot)\n", " plt.xticks([])\n", " plt.yticks([])\n", " plt.plot(t1, funcs[i])\n", " plt.show()\n", " \n", "interact(f6, x=widgets.IntSlider(min=1,max=15,step=1,value=7));" ] }, { "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.7.1" } }, "nbformat": 4, "nbformat_minor": 2 }