{ "nbformat": 4, "nbformat_minor": 0, "metadata": { "anaconda-cloud": {}, "hide_input": false, "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.4" }, "latex_envs": { "bibliofile": "biblio.bib", "cite_by": "apalike", "current_citInitial": 1, "eqLabelWithNumbers": true, "eqNumInitial": 0 }, "name": "Interact.ipynb", "colab": { "name": "kl_py_interakcio.ipynb", "provenance": [], "collapsed_sections": [], "include_colab_link": true }, "widgets": { "application/vnd.jupyter.widget-state+json": { "8ec329a4f9804a14850acda3ed888bda": { "model_module": "@jupyter-widgets/controls", "model_name": "VBoxModel", "state": { "_view_name": "VBoxView", "_dom_classes": [ "widget-interact" ], "_model_name": "VBoxModel", "_view_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_view_count": null, "_view_module_version": "1.5.0", "box_style": "", "layout": "IPY_MODEL_e027e994a2894145bf291c44da9c700f", "_model_module": "@jupyter-widgets/controls", "children": [ "IPY_MODEL_378100c5b817408d957c112af2dcbc12", "IPY_MODEL_6ce79f9167174e8caf9d9c9e6ec33005" ] } }, "e027e994a2894145bf291c44da9c700f": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "state": { "_view_name": "LayoutView", "grid_template_rows": null, "right": null, "justify_content": null, "_view_module": "@jupyter-widgets/base", "overflow": null, "_model_module_version": "1.2.0", "_view_count": null, "flex_flow": null, "width": null, "min_width": null, "border": null, "align_items": null, "bottom": null, "_model_module": "@jupyter-widgets/base", "top": null, "grid_column": null, "overflow_y": null, "overflow_x": null, "grid_auto_flow": null, "grid_area": null, "grid_template_columns": null, "flex": null, "_model_name": "LayoutModel", "justify_items": null, "grid_row": null, "max_height": null, "align_content": null, "visibility": null, "align_self": null, "height": null, "min_height": null, "padding": null, "grid_auto_rows": null, "grid_gap": null, "max_width": null, "order": null, "_view_module_version": "1.2.0", "grid_template_areas": null, "object_position": null, "object_fit": null, "grid_auto_columns": null, "margin": null, "display": null, "left": null } }, "378100c5b817408d957c112af2dcbc12": { "model_module": "@jupyter-widgets/controls", "model_name": "IntSliderModel", "state": { "_view_name": "IntSliderView", "style": "IPY_MODEL_6fb210b74d4746abb418af61180bd89c", "_dom_classes": [], "description": "m", "step": 1, "_model_name": "IntSliderModel", "orientation": "horizontal", "max": 17, "_view_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "value": 0, "_view_count": null, "disabled": false, "_view_module_version": "1.5.0", "min": 0, "continuous_update": true, "readout_format": "d", "description_tooltip": null, "readout": true, "_model_module": "@jupyter-widgets/controls", "layout": "IPY_MODEL_138dbb45358140d49ae1aba037391f1d" } }, "6ce79f9167174e8caf9d9c9e6ec33005": { "model_module": "@jupyter-widgets/output", "model_name": "OutputModel", "state": { "_view_name": "OutputView", "msg_id": "", "_dom_classes": [], "_model_name": "OutputModel", "outputs": [ { "output_type": "stream", "metadata": { "tags": [] }, "text": "/usr/local/lib/python3.6/dist-packages/ipykernel_launcher.py:23: MatplotlibDeprecationWarning: Adding an axes using the same arguments as a previous axes currently reuses the earlier instance. In a future version, a new instance will always be created and returned. Meanwhile, this warning can be suppressed, and the future behavior ensured, by passing a unique label to each axes instance.\n", "stream": "stderr" }, { "output_type": "display_data", "metadata": { "tags": [] }, "image/png": "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\nAAAASUVORK5CYII=\n", "text/plain": "
" } ], "_view_module": "@jupyter-widgets/output", "_model_module_version": "1.0.0", "_view_count": null, "_view_module_version": "1.0.0", "layout": "IPY_MODEL_ce017d833f8247648dca6fc8703690e0", "_model_module": "@jupyter-widgets/output" } }, "6fb210b74d4746abb418af61180bd89c": { "model_module": "@jupyter-widgets/controls", "model_name": "SliderStyleModel", "state": { "_view_name": "StyleView", "handle_color": null, "_model_name": "SliderStyleModel", "description_width": "", "_view_module": "@jupyter-widgets/base", "_model_module_version": "1.5.0", "_view_count": null, "_view_module_version": "1.2.0", "_model_module": "@jupyter-widgets/controls" } }, "138dbb45358140d49ae1aba037391f1d": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "state": { "_view_name": "LayoutView", "grid_template_rows": null, "right": null, "justify_content": null, "_view_module": "@jupyter-widgets/base", "overflow": null, "_model_module_version": "1.2.0", "_view_count": null, "flex_flow": null, "width": null, "min_width": null, "border": null, "align_items": null, "bottom": null, "_model_module": "@jupyter-widgets/base", "top": null, "grid_column": null, "overflow_y": null, "overflow_x": null, "grid_auto_flow": null, "grid_area": null, "grid_template_columns": null, "flex": null, "_model_name": "LayoutModel", "justify_items": null, "grid_row": null, "max_height": null, "align_content": null, "visibility": null, "align_self": null, "height": null, "min_height": null, "padding": null, "grid_auto_rows": null, "grid_gap": null, "max_width": null, "order": null, "_view_module_version": "1.2.0", "grid_template_areas": null, "object_position": null, "object_fit": null, "grid_auto_columns": null, "margin": null, "display": null, "left": null } } } } }, "cells": [ { "cell_type": "markdown", "metadata": { "id": "view-in-github", "colab_type": "text" }, "source": [ "\"Open" ] }, { "cell_type": "markdown", "metadata": { "id": "PfdyJhH_L3kK", "colab_type": "text" }, "source": [ "

\n", " \n", " \n", "

\n", "\n", "\n", "

\n", "\n", "\n", "\n", "# Python alapok interaktivitás (ipywidgets)\n", "\n", "" ] }, { "cell_type": "markdown", "metadata": { "id": "yq5ltPHOL3kM", "colab_type": "text" }, "source": [ "---\n", "\n", "# Interaktív függvények megjelenítése\n", "\n", "Az alábbiakban vizsgáljunk meg egy egyszerű módszert arra, hogy hogyan tehetjük Python-függvényeinket interaktívvá!\n", "Ehhez az `ipywidgets és Bokeh` csomag lesz segítségünkre!\n", "\n", "\n", "---" ] }, { "cell_type": "code", "metadata": { "id": "2zFbzf-IL3kN", "colab_type": "code", "colab": {}, "outputId": "45da80c9-4eff-4a5a-c0f8-3d7d38ec2dfa" }, "source": [ "## Egyszerű plot négyzet függvény\n", "# Az alábbi paranccsal alapvető matplotlib és numpy függvényeket töltünk be.\n", "%matplotlib inline\n", "%pylab inline \n", "\n", "x=linspace(0,3,100) #mintavételezési pontok legyártása\n", "y=x**2 #függvény kiértékelése a mintavételezési pontokban\n", "plot(x,y) #ábrázolás" ], "execution_count": 0, "outputs": [ { "output_type": "stream", "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ], "name": "stdout" }, { "output_type": "execute_result", "data": { "text/plain": [ "[]" ] }, "metadata": { "tags": [] }, "execution_count": 10 }, { "output_type": "display_data", "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "tags": [], "needs_background": "light" } } ] }, { "cell_type": "code", "metadata": { "id": "TOc1T6pqL3kS", "colab_type": "code", "colab": {}, "outputId": "4a866f95-75b7-4b22-85c2-4742b9e6238d" }, "source": [ "## Egyszerű plot, kétváltozós függvény\n", "# Az alábbi paranccsal alapvető matplotlib és numpy függvényeket töltünk be.\n", "%matplotlib inline\n", "%pylab inline \n", "\n", "x2, y2 = meshgrid(linspace(-2,5,100),linspace(-1,4,100)) #2D mintavételezés\n", "z2 = sin(x2) ** 10 + cos(10 + y2 * x2) * cos(x2) #kiértékelés \n", "pcolor(x2,y2,z2) #ábrázolás" ], "execution_count": 0, "outputs": [ { "output_type": "stream", "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ], "name": "stdout" }, { "output_type": "execute_result", "data": { "text/plain": [ "" ] }, "metadata": { "tags": [] }, "execution_count": 29 }, { "output_type": "display_data", "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "tags": [], "needs_background": "light" } } ] }, { "cell_type": "code", "metadata": { "id": "_W08Iqc1L3kV", "colab_type": "code", "colab": {}, "outputId": "108b9101-a0a7-41a1-8a59-760697183e43" }, "source": [ "## Egyszerű plot szinusz függvény\n", "# Az alábbi paranccsal alapvető matplotlib és numpy függvényeket töltünk be.\n", "%matplotlib inline\n", "%pylab inline \n", "\n", "from ipywidgets import * # az interaktivitásért felelős csomag\n", "t=linspace(0,2*pi,100);\n", "plot(t,sin(t))" ], "execution_count": 0, "outputs": [ { "output_type": "stream", "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ], "name": "stdout" }, { "output_type": "execute_result", "data": { "text/plain": [ "[]" ] }, "metadata": { "tags": [] }, "execution_count": 1 }, { "output_type": "display_data", "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYIAAAD4CAYAAADhNOGaAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO3dd3xUVf7/8dcnnRQSQkJLgQChd0JQsCBFsGJfcFXEgp1Vd13xq7u6ukXXXXVFLIgidlkLsDY6iihCQDqEFEpCS0JoSUhCkvP7Ixd/ESckYSa5Uz7Px2Memdtm3oO785lz77nniDEGpZRSvsvP7gBKKaXspYVAKaV8nBYCpZTycVoIlFLKx2khUEopHxdgd4AzERMTYzp06GB3DKWU8ihr1qwpMMbEnrreIwtBhw4dSEtLszuGUkp5FBHZ5Wi9nhpSSikfp4VAKaV8nBYCpZTycVoIlFLKx2khUEopH+eSQiAib4pInohsqmW7iMiLIpIpIhtEZECNbRNEJMN6THBFHqWUUvXnqhbBW8CY02y/CEi2HpOAVwBEJBp4HBgMpAKPi0gLF2VSSilVDy65j8AY862IdDjNLmOBt031mNcrRSRKRNoCw4CFxphCABFZSHVB+cAVuVTDFJdVkJlXRFZ+EYdLTlBWUUVZRSXNAv1p1TyYVhEhdIwNo21kM7ujKqVcqKluKIsDcmos51rralv/KyIyierWBImJiY2T0sccL69kZfZBlqbn8c32fHYdLKnXce0iQ+jfvgVDO8Vwce82RIUGNXJSpVRjaqpCIA7WmdOs//VKY6YD0wFSUlJ0Nh0nbNt/lLd/2MWcn/ZQUl79i39Ip5ZcOzCezq0i6NwqnJjwIIID/AkK8KOkvIK8Y2UcOFpK+v5jrNl1iDW7DvHFhn08Pm8T53dpxTUD47mwR2v8/Bz9J1VKubOmKgS5QEKN5Xhgr7V+2CnrlzVRJp+zakch/16Qzo87CgkO8OOyvu24vG87UpOiCQn0r/W4iJBAIkIC6RQbzpBOMUwcmoQxhs17jzJ33R7mrd/Loq0H6BQbxt3DOnN5v3YE+muHNKU8hbhqqkrrGsHnxpheDrZdAtwLXEz1heEXjTGp1sXiNcDJXkRrgYEnrxnUJiUlxehYQ/WXceAYz3y9jUVb82jdPJhbhiZxXUoCLcJcc0qnssrw5cZ9TFuaybb9x+jQMpTHL+vJBd1aueT1lVKuISJrjDEpp653SYtARD6g+pd9jIjkUt0TKBDAGPMq8CXVRSATKAEmWtsKReQpYLX1Uk/WVQRU/ZWeqOQ/izN47ZsswoICeGh0V24ZmkSzoNp//Z8Jfz/hsr7tuLRPWxZvzePvX21l4lurGd2zNX++rCdxUXpxWSl35rIWQVPSFkHd1uUc5qH/ricjr4jrUuKZclF3ol3UAqhLeUUVM77LZuriTETgybG9uHpAHCJ6/UApO9XWItATuV7GGMMry7K46uUVFJVV8NbEQfzzmr5NVgQAggL8uHtYZxY+eB694yL5w3/X88BH6zhWeqLJMiil6s8j5yNQjhWVVfDQf9fz1ab9XNKnLf+4qjfNQwJtyxPfIpT3bz+LaUszeWHRdn7KOcyMm1JIbh1hWyal1K9pi8BL7CwoZuxL37FgywEevbg7L43vb2sROMnfT5g8IpmP7jibkvJKrnr5e5Zn5NsdSylVgxYCL7Ax9whXv/I9hcXlvHNrKref19HtzscP6hDNnHuGEteiGTfPXM27Kx1OlKSUsoEWAg/3XUYB46b/QEigPx/fNYQhnWLsjlSruKhmfHzXEM7vEstjczbxn0UZeGJnBaW8jRYCD/b1pn1MfGsVCdGhfHr3EDrFhtsdqU7hwQG8flMKVw+I5/lF2/nn/HQtBkrZTC8We6gFm/dz7/s/0Sc+kpkTU4lsZv/1gPry9xOevaYPIYF+vLIsi9ITlfz50h5udzpLKV+hhcADLdl2gHveX0vPuEhm3ZJKhBtcFG4oPz/hr1f0IjjAnzdX7CDAT/i/i7trMVDKBloIPMzyjHzufGct3do0520PLQIniQh/urQ7lVVVvL58B1GhQdxzQWe7Yynlc7QQeJBNe45w5ztr6Bgbxju3etbpoNqICI9f1pMjx0/w7Px0IpsFcsNZ7e2OpZRP0ULgIXIKS5j41moimwUy65ZUr5oDwM9PePbavhwrreBPczcREx7EmF5t7Y6llM/QXkMe4HBJOTfPXEXZiUpm3ZJK6+YhdkdyuUB/P6b9dgD9E6K4/6N1bMg9bHckpXyGFgI3d6KyijvfXUNO4XFe9/LhGUIC/Zl+Uwox4cHcNiuNfUeO2x1JKZ+ghcDN/e2LrazMLuTpq3szuGNLu+M0upjwYN6YMIiS8kpufSuN4rIKuyMp5fW0ELix2Wk5vPX9Tm47J4mrBsTbHafJdG0TwdTr+7Nt/1H++MkGveFMqUamhcBNrd19iMc+28S5yTFMuaib3XGa3AVdW/GH0V35YsM+Zq7YaXccpbyaSwqBiIwRkXQRyRSRKQ62Py8i66zHdhE5XGNbZY1t81yRx9MVFpdzz3traR0ZzNTx/Qnw0fl/7zq/E6N6tObvX24lbadOXKdUY3H6G0ZE/IFpwEVAD2C8iPSouY8x5gFjTD9jTD9gKvBpjc3HT24zxlzubB5PV1Vl+P3sdRwsKueV3w70qm6iDSUi/Pu6vsS3aMbd760l71ip3ZGU8kqu+KmZCmQaY7KNMeXAh8DY0+w/HvjABe/rlV5fns3S9Hweu7Q7veIi7Y5ju+Yhgbx640COlp7gwY/WU1Wl1wuUcjVXFII4IKfGcq617ldEpD2QBCypsTpERNJEZKWIXFHbm4jIJGu/tPx875zYZM2uQv45P52Le7fhRr279mfd2jTn8ct68l1mAa8vz7Y7jlJexxWFwNEoYbX9bBsHfGyMqayxLtGaTPl64AUR6eToQGPMdGNMijEmJTY21rnEbuho6Qkmf7COuKhmPH11Hx187RTjBiVwUa82PDs/nfU5erOZUq7kikKQCyTUWI4H9tay7zhOOS1kjNlr/c0GlgH9XZDJ4zwxbzP7j5bywrh+bjHFpLsREf5xVW9iI4KZ/OFPFOn9BUq5jCsKwWogWUSSRCSI6i/7X/X+EZGuQAvghxrrWohIsPU8BhgKbHFBJo/y5cZ9fLp2D/dc0JkBiS3sjuO2okKDeOE3/cgpLOHJ/222O45SXsPpQmCMqQDuBeYDW4HZxpjNIvKkiNTsBTQe+ND88u6g7kCaiKwHlgJPG2N8qhAcOFrK/322kb7xkdw3XIdgrsvgji254/xOzE7LZcm2A3bHUcoriCfetZmSkmLS0tLsjuE0YwwTZq5m9Y5Cvph8Dh09YKpJd1BWUcnlU1dQWFLOwgfO8+kutko1hIissa7J/oJv3qnkJv67Jpdvt+fzyMXdtAg0QHCAP/++ri+Hist5fJ6eIlLKWVoIbLL/SClPfb6FwUnR3DBYu4o2VK+4SO4bnszcdXv5etM+u+Mo5dG0ENjAGMOjn23kRGUVz1zdBz8/7Sp6Ju6+oBO94prz2JzNHCk5YXccpTyWFgIbzFu/l8Xb8vjDhV3pEBNmdxyPFejvx9NX9eFQSTl//3Kr3XGU8lhaCJpYYXE5T8zbTP/EKCYOTbI7jsfrFRfJ7ed25KO0HL7PLLA7jlIeSQtBE/v7l1s5VlrBM1f3wV9PCbnE/SOTad8ylEc+20jpicq6D1BK/YIWgib0Q9ZBPl6Ty6TzOtLFi6ecbGohgf7846re7DpYwguLMuyOo5TH0ULQRMoqKnn0s40kRody3/Bku+N4nSGdYrh2YDwzlmeTceCY3XGU8ihaCJrIK8uyyC4o5qkretEsyN/uOF5pykXdCAsO4LE5m3R6S6UaQAtBE9h1sJiXl2VxWd92nN/F+0ZOdRctw4N5eEw3ftxRyJx1e+yOo5TH0ELQBJ783xYC/YTHLuludxSvN25QAn0TovjbF9s4clzvLVCqPrQQNLLFWw+weFse94/sQuvmIXbH8Xp+fsLfruhFYXEZzy1ItzuOUh5BC0EjKj1RyV/+t4XOrcK5eWgHu+P4jF5xkdxwVnveWbmLbfuP2h1HKbenhaARvf5tNrsLS/jL5T0J9Nd/6qb04KguNG8WyBPzNuuFY6XqoN9OjWTv4eNMW5bJJb3bMrRzjN1xfE5UaBC/v7ArK7ML+WrTfrvjKOXWXFIIRGSMiKSLSKaITHGw/WYRyReRddbjthrbJohIhvWY4Io87uCZr7dhDDxycTe7o/is61MT6dYmgr99sVXvOFbqNJwuBCLiD0wDLgJ6AONFpIeDXT8yxvSzHjOsY6OBx4HBQCrwuIh4/FyNa3YdYu66vUw6ryPxLULtjuOz/P2EJy7vyZ7Dx3ntm2y74yjltlzRIkgFMo0x2caYcuBDYGw9jx0NLDTGFBpjDgELgTEuyGSbqirDk59voXXzYO48v5PdcXzeWR1bcknvtrzyTSb7j5TaHUcpt+SKQhAH5NRYzrXWnepqEdkgIh+LSEIDj/UYc9fvYX3OYf44uvouV2W/KRd1o6oK/qXdSZVyyBWFwNEQmqd20/gf0MEY0wdYBMxqwLHVO4pMEpE0EUnLz88/47CNqaS8gme+SqdPfCRX9vfoeuZVEqJDmTi0A5+szWXTniN2x1HK7biiEOQCCTWW44G9NXcwxhw0xpRZi68DA+t7bI3XmG6MSTHGpMTGuucwDTOW72D/0VL+dGkPnXXMzdx9QWdahAbx1y+2aHdSpU7hikKwGkgWkSQRCQLGAfNq7iAibWssXg6cnE5qPnChiLSwLhJfaK3zOPnHynjtmyxG92zNoA7RdsdRp4hsFsgDI5NZmV3Ioq15dsdRyq04XQiMMRXAvVR/gW8FZhtjNovIkyJyubXbZBHZLCLrgcnAzdaxhcBTVBeT1cCT1jqP88Ki7ZRVVPHwGO0u6q7GpybSKTaMf3y5lROVVXbHUcptiCc2k1NSUkxaWprdMX6WmVfE6Be+5YbBifxlbC+746jTWLTlALe9ncZTV/TixrPa2x1HqSYlImuMMSmnrtc7i13g6a+2ERroz+QROuGMuxvRvRWpHaL5z6IMissq7I6jlFvQQuCkVTsKWbT1AHcO60TL8GC746g6iAhTLu5GQVEZry/Xm8yUAi0ETjHG8PRXW2ndPJhbhibZHUfV04DEFlzUqw3Tv80m/1hZ3Qco5eW0EDhh4ZYDrN19mPtHdtHpJz3MQ6O7UlZRxdQlOtm9UloIzlBlleHZ+el0jA3j2oHxdsdRDdQxNpzxqQm8/+NudhYU2x1HKVtpIThDn6zNJSOviIcu7EqAzjXgkSYPTybQ34/nF223O4pSttJvsDNQeqKSFxZup29CFGN6tbE7jjpDrZqHMHFoB+at38vWfTqTmfJdWgjOwLsrd7H3SCkPj+6KiA4l4cnuOK8TEcEB/Gu+DkinfJcWggYqKqvglWVZnNM5hiE685jHiwwN5M5hnVi8LY+0nR55U7tSTtNC0EAzv9vBweJy/jC6q91RlItMHJJEbEQw/5yfrgPSKZ+khaABDpeUM315NqN6tKZfQpTdcZSLNAvyZ/LwzqzaUcjyjAK74yjV5LQQNMBr32ZTVFbB7y/sYncU5WK/GZRIXFQz/rVAWwXK92ghqKe8Y6XMXLGDy/u2o1ub5nbHUS4WFODH70YmsyH3CAu3HLA7jlJNSgtBPb28NIsTlYb7R2prwFtd1T+OpJgwnlu4naoqbRUo36GFoB72HTnO+6t2c82AeJJiwuyOoxpJgL8f949MZtv+Y3yxcZ/dcZRqMloI6mHa0kyMMdw7vLPdUVQju6xPO7q2juD5Rdup0MlrlI9wSSEQkTEiki4imSIyxcH2B0Vki4hsEJHFItK+xrZKEVlnPeadeqzdcg+V8NHqHK5LSSAhOtTuOKqR+fkJD4xKJju/mLnrHE6frZTXcboQiIg/MA24COgBjBeRHqfs9hOQYozpA3wM/LPGtuPGmH7W43LczNTFmYiItgZ8yOiebejRtjkvLsnQVoHyCa5oEaQCmcaYbGNMOfAhMLbmDsaYpcaYEmtxJeARw3XuOljMx2tzuT41kbaRzeyOo5qIiPDAqC7sOljCpz/tsTuOUo3OFYUgDsipsZxrravNrcBXNZZDRCRNRFaKyBW1HSQik6z90vLz851LXE8vLs4k0F+4e1inJnk/5T5Gdm9F77hIpi7J0InulddzRSFwNOqaw753InIDkAI8W2N1ojWZ8vXACyLi8FvXGDPdGJNijEmJjY11NnOddhQU89lPudwwuD2tmoc0+vsp91LdKkgmp/A4n6zJtTuOUo3KFYUgF0iosRwP/Ooqm4iMBB4FLjfG/Dw/oDFmr/U3G1gG9HdBJqdNXZxBUIAfd5yvrQFfdUHXVvRNiGLqkkzKK7RVoLyXKwrBaiBZRJJEJAgYB/yi94+I9Adeo7oI5NVY30JEgq3nMcBQYIsLMjklO7+IOev2cONZ7YmN0AnpfZWI8MDIZPYcPs7H2ipQXszpQmCMqQDuBeYDW4HZxpjNIvKkiJzsBfQsEA7895Ruot2BNBFZDywFnjbG2F4Ipi7JJCjAj0nnaWvA153fJZZ+CVFMW6qtAuW9AlzxIsaYL4EvT1n35xrPR9Zy3PdAb1dkcJWs/CLmrtvDbed21NaAQkS4f2QyN89czcdrcrl+cKLdkZRyOb2z+BQvLckkOMCfSed1tDuKchPaKlDeTgtBDdlWa+DGs9sTE66tAVXtZKtgz+HjfLJWrxUo76OFoIaXrGsDt5+rrQH1SydbBS9pDyLlhbQQWHYUFDNn3R5uGKw9hdSviQi/01aB8lJaCCwvLckk0N+PSedra0A5NqxLLH3jI5m2NFPvNlZeRQsB1WMKzVm3h98Obk+rCL2LWDl2slWQe+g4n63VMYiU99BCQPV8AwF+wp3aGlB1uKBr9RhELy3N1JFJldfw+UKQU1jCp2v3MD41UccUUnUSESaPSGZ3YQlzdL4C5SV8vhC8vCwLPxHu1DGFVD2N7N6KHm2bM01bBcpL+HQhqB5DJoffDEqgTaS2BlT9nGwV7Cgo5n8btFWgPJ9PF4JXl2UBcJfON6Aa6MIerenWJoKXlmRSWeVw1HWlPIbPFoL9R0r5aHUO16Yk0C5KZx9TDePnJ9w3PJms/GK+3LjP7jhKOcVnC8Gr32RRZQx36bUBdYYu6tWG5FbhvLQkkyptFSgP5pOFIO9YKR+s2s1VA+JIiA61O47yUH5+wr3DO5N+4BgLtuy3O45SZ8wnC8Hr32ZTUWW454LOdkdRHu7SPu3oGBPGi4szMUZbBcoz+VwhKCgq492Vuxnbtx3tW4bZHUd5OH8/4Z4LOrNl31EWbc2r+wCl3JBLCoGIjBGRdBHJFJEpDrYHi8hH1vYfRaRDjW2PWOvTRWS0K/KczozlOyitqOSe4doaUK4xtl872rcMZeqSDG0VKI/kdCEQEX9gGnAR0AMYLyI9TtntVuCQMaYz8DzwjHVsD6rnOO4JjAFetl6vURwqLuedH3ZyaZ92dIoNb6y3UT4mwN+Pu4d1YkPuEb7Znm93HKUazBUtglQg0xiTbYwpBz4Exp6yz1hglvX8Y2CEiIi1/kNjTJkxZgeQab1eo3hzxQ6Kyyu5T1sDysWu7B9PXFQzXlysrQLVODLzipg4cxW7D5a4/LVdUQjigJway7nWOof7WJPdHwFa1vNYAERkkoikiUhafv6Z/eoqLC7nkj5t6dI64oyOV6o2QQF+3DWsE2t3H+b7rIN2x1FeaNrSTFZmFxIW7PqTJq4oBOJg3ak/iWrbpz7HVq80ZroxJsUYkxIbG9vAiNX+dmVvXhzX/4yOVaou16bE06Z5CP9ZnGF3FOVldhQU/zyNbstGmEbXFYUgF0iosRwPnDoAy8/7iEgAEAkU1vNYl/L3c1R7lHJecIA/d57fkVU7ClmZra0C5TovL62eOOu2c5Ma5fVdUQhWA8kikiQiQVRf/J13yj7zgAnW82uAJab6ROo8YJzVqygJSAZWuSCTUrYYl5pIbEQwU5doq0C5Rk5hCZ/+tIfrByc22sRZThcC65z/vcB8YCsw2xizWUSeFJHLrd3eAFqKSCbwIDDFOnYzMBvYAnwN3GOMqXQ2k1J2CQn0547zOrIi8yBrdhXaHUd5gZeXZeEvwh3nNd5wOOKJPRxSUlJMWlqa3TGUcqikvIJzn1lKr7hIZt3SaJ3glA/Yc/g4w55dyrhBiTx1RS+nX09E1hhjUk5d73N3FivV2EKDArj9vI58sz2fdTmH7Y6jPNhr31QPlX9nIw+Vr4VAqUZww1ntiQoNZKr2IFJnaP+RUj5clcM1AxOIa+Sh8rUQKNUIwoMDuO2cJBZvy2PTniN2x1Ee6LVvq4fKv7sJJs7SQqBUI7lpSAeahwTworYKVAPlHSvl/R+bbqh8LQRKNZLmIYHcck4SC7YcYMveo3bHUR6kqYfK10KgVCOaOCSJiOAAva9A1VtBURnvrNxljWrbNEPlayFQqhFFhgYycWgHvtq0n/T9x+yOozzA68uzKa+oatKJs7QQKNXIbjknifDgAF7UVoGqQ2FxOe/8sIvL+jbtUPlaCJRqZFGhQUwY0p4vN+4j44C2ClTtXl+ezfETTT9UvhYCpZrAred0pFmgPy8uybQ7inJThcXlzPq+euKszq2adqh8LQRKNYHosCBuOrsDn2/YS2aetgrUr82wWgOTbZg4SwuBUk3k9nOTqlsFi7VVoH7pkNUauLh3W5JtmDhLC4FSTaRleDA3nd2B/2mrQJ3ije+qp9GdPDzZlvfXQqBUEzrZKpiq1wqU5VBxOW99v5NLerelaxt7ptHVQqBUEzrZKpi3fi+ZeUV2x1FuYMZ32RSXVzB5hD2tAdBCoFST+//XCvS+Al9XWFzOWyuqrw3Y1RoAJwuBiESLyEIRybD+tnCwTz8R+UFENovIBhH5TY1tb4nIDhFZZz36OZNHKU9Q81qB3lfg22Ysz6bkRCX329gaAOdbBFOAxcaYZGCxtXyqEuAmY0xPYAzwgohE1dj+kDGmn/VY52QepTzCpPM6Ehroz3+0VeCzat43YEdPoZqcLQRjgVnW81nAFafuYIzZbozJsJ7vBfKAWCffVymPFh0WxM1DO/DFxn06BpGPet1qDdhx38CpnC0ErY0x+wCsv61Ot7OIpAJBQFaN1X+zThk9LyLBpzl2koikiUhafn6+k7GVst/t53YkLCiA/yzebncU1cQKisp4a8VOLnOD1gDUoxCIyCIR2eTgMbYhbyQibYF3gInGmCpr9SNAN2AQEA08XNvxxpjpxpgUY0xKbKw2KJTniwoN4pahHfhy436dr8DHvLosi7KKSn430t5rAyfVWQiMMSONMb0cPOYCB6wv+JNf9HmOXkNEmgNfAI8ZY1bWeO19ploZMBNIdcWHUspT3HpORyJCAnhhkbYKfMWBo6W8s3IXV/aPb9IRRk/H2VND84AJ1vMJwNxTdxCRIOAz4G1jzH9P2XayiAjV1xc2OZlHKY8SGRrIbed0ZMGWA2zM1bmNfcHLSzOpqDJMHmH/tYGTnC0ETwOjRCQDGGUtIyIpIjLD2uc64DzgZgfdRN8TkY3ARiAG+KuTeZTyOLec04Go0ED+vTDd7iiqke09fJwPVuVw7cD4Jpt9rD4CnDnYGHMQGOFgfRpwm/X8XeDdWo4f7sz7K+UNIkICufP8Tjz91TbSdhaS0iHa7kiqkby0NBOD4V436ClUk95ZrJQbuOns9sSEB/Ps/HSMMXbHUY1g18FiZq/OYdygROJbhNod5xe0ECjlBkKDArjngk78uKOQ77MO2h1HNYIXFmUQ4C9NPvtYfWghUMpNjE9NpG1kiLYKvND2A8eYs24PE87uQKvmIXbH+RUtBEq5iZBAfyaPSGZdzmEWbXXYE1t5qH8vSCcsKIA7z+9kdxSHtBAo5UauHRhPUkwY/5qfTmWVtgq8wfqcw8zffIDbzk2iRViQ3XEc0kKglBsJ8PfjwVFdSD9wjLnr9tgdR7nAvxak0yI0kFvPSbI7Sq20ECjlZi7p3ZYebZvz/KLtlFdU1X2AclvfZxawPKOAu4d1JiIk0O44tdJCoJSb8fMTHhrTlZzC43y4erfdcdQZMsbwzNfbaBcZwo1nt7c7zmlpIVDKDQ3rEktqUjQvLs6kuKzC7jjqDHy1aT/rc49w/6guhAT62x3ntLQQKOWGRISHx3SjoKiMGct32B1HNVBFZRX/mp9Ocqtwrh4Qb3ecOmkhUMpNDWzfgtE9WzP92ywKisrsjqMaYHZaLtkFxTw0uiv+fmJ3nDppIVDKjf1xTDdKK6p0onsPUlJewQuLtjMgMYpRPVrbHadetBAo5cY6xYbzm0EJvP/jbnYUFNsdR9XDjOU7yDtWxqOXdKd6hH33p4VAKTd3/4hkAv39+Nd8Haba3eUdK+XVb7IY07MNA9t7ziiyWgiUcnOtmodw+7lJfLFxH2t3H7I7jjqNFxZlUF5RxcMXdbM7SoM4VQhEJFpEFopIhvW3RS37VdaYlGZejfVJIvKjdfxH1mxmSqlT3HF+J2Ijgvnr51t0QDo3lZl3jI9W53DDWe1JinGfSWfqw9kWwRRgsTEmGVhsLTty3BjTz3pcXmP9M8Dz1vGHgFudzKOUVwoLDuD3o7qwdvdhvti4z+44yoGnv9pGqDVwoKdxthCMBWZZz2dRPe9wvVjzFA8HPj6T45XyNdemJNCtTQTPfL2N0hOVdsdRNXyXUcCirXncdUEnot10YLnTcbYQtDbG7AOw/raqZb8QEUkTkZUicvLLviVw2Bhz8rbJXCDOyTxKeS1/P+GxS3qQU3icWd/vtDuOslRUVvHU51tIiG7GLUPdd2C506lzzmIRWQS0cbDp0Qa8T6IxZq+IdASWWBPWH3WwX60nP0VkEjAJIDExsQFvrZT3OCc5hgu6xvLSkkyuGRhPy/BguyP5vI/Sckg/cIxXfjvA7YeSqE2dLQJjzEhjTC8Hj7nAARFpC2D9dTibhjFmr/U3G1gG9AcKgCgROVmM4oG9p8kx3RiTYoxJiY2NbcBHVMq7PHpJd46fqORfC7bbHcXnHS09wZSaCVIAAA9xSURBVL8XbCc1KZoxvRz9XvYMzp4amgdMsJ5PAOaeuoOItBCRYOt5DDAU2GKquz4sBa453fFKqV/q3CqCCUM68OHq3Wzac8TuOD7tpSWZHCop58+X9vCYm8cccbYQPA2MEpEMYJS1jIikiMgMa5/uQJqIrKf6i/9pY8wWa9vDwIMikkn1NYM3nMyjlE+YPCKZ6NAgnpi3WbuT2iQrv4iZK3ZwzYB4esVF2h3HKXVeIzgdY8xBYISD9WnAbdbz74HetRyfDaQ6k0EpXxTZLJCHRndlyqcbmbd+L2P7aT+LpmSM4Yl5mwkJ8OePYzzr5jFH9M5ipTzUtSkJ9I6L5B9fbqOkXOcsaErzNx9geUYBD4zqQmyE51+w10KglIfy9xOeuLwH+4+WMnVJpt1xfMbx8kqe+nwLXVtHcJObzzxWX1oIlPJgA9tHc11KPK9/m03GgWN2x/EJr3yTxZ7Dx/nL2J4E+HvHV6h3fAqlfNjDY7oRFhzAn+Zu0gvHjWxnQTGvfpPF5X3bcVbHlnbHcRktBEp5uJbhwTw8phsrswuZu67WW3GUk4wxPDZnE8H+fjx6SXe747iUFgKlvMC4QQn0TYjir19s5cjxE3bH8Urz1u/lu8wC/jimK62bh9gdx6W0ECjlBfz8hL9d0YvC4jKe+Xqb3XG8zuGScp76fAt9E6K4frB3XCCuSQuBUl6iV1wkt53bkfd/3M2P2QftjuNVnvl6G4dKTvD3K3t5xGT0DaWFQCkv8sDILiREN+ORTzfqUNUu8mP2QT5YlcOt5yTRs51n30FcGy0ESnmRZkH+/P3K3mQXFPOS3lvgtOPllTz8yQYSo0O5f6TnTThTX1oIlPIy5ybHcvWAeF79Jostex2N9q7q67mF6ew8WMLTV/cmNMipEXncmhYCpbzQY5d0Jyo0iN//dz3lFVV2x/FIa3cf4o3vdvDbwYkM6RRjd5xGpYVAKS/UIiyIf1zVm637jvLSkgy743ic0hOV/PHjDbRpHsKUizx/ULm6aCFQykuN6tGaqwbEMW1ZFutzDtsdx6P8e0E6mXlF/P2q3kSEBNodp9FpIVDKiz1+WU9iw4P5/X/Xay+ievo+q4AZ3+3ghrMSGda1tmnYvYsWAqW8WGSzQJ65pg+ZeUV6o1k9HDl+gj/MXk9SyzAevbiH3XGajFOFQESiRWShiGRYf1s42OcCEVlX41EqIldY294SkR01tvVzJo9S6tfO7xLLhLPbM3PFTpamO5xWXFn+PHcTecfKeP43/WgW5JkT0Z8JZ1sEU4DFxphkYLG1/AvGmKXGmH7GmH7AcKAEWFBjl4dObjfGrHMyj1LKgUcu7k63NhH8YfZ68o6V2h3HLc35aQ9z1+1l8ohk+iZE2R2nSTlbCMYCs6zns4Ar6tj/GuArY0yJk++rlGqAkEB/po7vT1FZBb+fvZ6qKh2uuqas/CL+77ONpHaI5u5hneyO0+ScLQStjTH7AKy/dV1ZGQd8cMq6v4nIBhF5XkRqnfNNRCaJSJqIpOXn5zuXWikflNw6gj9d2oPlGQVMX55tdxy3UXqiknveW0tIoD8vju/vNZPNNESdn1hEFonIJgePsQ15IxFpS/Uk9vNrrH4E6AYMAqKBh2s73hgz3RiTYoxJiY2NbchbK6Usvx2cyCW92/LPr7fxQ5YOTAfwl/9tZtv+Yzx3XV/aRHrX8NL1VWchMMaMNMb0cvCYCxywvuBPftGf7krUdcBnxpifB0s3xuwz1cqAmUCqcx9HKXU6IsIz1/QhKSaM+z5Yy/4jvn294NO1uXywKoe7hnXyma6ijjjbBpoHTLCeTwDmnmbf8ZxyWqhGERGqry9scjKPUqoO4cEBvHbjQErKK7nn/bU+OwTFhtzDTPl0I4OTovn9qC52x7GVs4XgaWCUiGQAo6xlRCRFRGac3ElEOgAJwDenHP+eiGwENgIxwF+dzKOUqofOrSL45zV9WLPrEE9+vtnuOE0u71gpk95eQ2x4MC//doBPXheoyanh9IwxB4ERDtanAbfVWN4JxDnYb7gz76+UOnOX9mnHxj1HeO2bbDrHhnPz0CS7IzWJ8ooq7n53LYePl/PJXUNoGV5rHxWf4b3jqiql6vTw6G7syC/myc+30D4mjAu8/Dy5MYZHPt1I2q5DTB3f32snmmko324PKeXj/PyEF8b1o3vb5tz3/k+k7z9md6RG9dzC7XyyNpf7RyZzWd92dsdxG1oIlPJxoUEBzJiQQliwPxPeXEVOoXfe7/n+j7uZuiST36Qk8LsR3jvb2JnQQqCUom1kM2bdkkpJeQU3vvEj+cfK7I7kUgu3HOCxORsZ1jWWv17Zi+qOiuokLQRKKQC6tWnOzImpHDhaxk1vruLI8RN1H+QBlqbncc97a+kdF8m06wcQ6OM9hBzRfxGl1M8Gtm/BazcOJDPvGBO8oBh8uz2fO95ZQ3LrcN6+ZTBhwdo/xhEtBEqpXzivSyzTrh/A5r1HuP71lRQWl9sd6YysyCzg9rfT6BgTxru3DiYy1PtnGjtTWgiUUr9yYc82vH5TCpl5RYyb/oPHDV39xYZ9TJy5mg4tw3jvtsG0CAuyO5Jb00KglHJoWNdWzLx5ELmHjnPNKz+QmVdkd6R6eeeHndz7wVr6xEfy0R1n6Q1j9aCFQClVqyGdY3jvtsGUlFdw1csrWJFZYHekWlVWGZ75eht/mruZEd1a8c6tg4kK1ZZAfWghUEqdVv/EFnx291DaRIYw4c1VvLtyF8a418Q2h4rLmfjWal5ZlsX41ERevWGgT0016SwtBEqpOiVEh/LJXUMY2jmGx+Zs4r4PfuJoqXv0KNq05wiXvfQdK7MO8o+revOPq3r7/CByDaX/WkqpeokICeTNmwfx0OiufLVpPxf/Zzlrdh2yLc+JyipeXJzBlS+voKLS8NEdZzE+NdG2PJ5MC4FSqt78/YR7LujM7DvOxhi45tXv+dOcTRwpadrWwZa9R7li2gqeW7idi3q15avfnUv/xBZNmsGbiLud66uPlJQUk5aWZncMpXza0dITPLdgO2//sJMWoUE8PKYbVw2Ia9TTMvuOHOe5BdUDx0WHBfHXK3ozplebRns/byMia4wxKb9ar4VAKeWMzXuP8Kc5m1i7+zCJ0aHceX4nrh4YR3CA6y7W5hSW8PYPO3n7h10YAzed3Z57h3fWXkEN1CiFQESuBZ4AugOp1oQ0jvYbA/wH8AdmGGNOzmSWBHxI9cT1a4EbjTF13saohUAp91JVZVi09QDTlmayPvcIsRHBXNGvHWP7xdGzXfMzGuSt9EQl32cV8P6Pu1m8LQ8BxvaL48FRXUiIDnX9h/ABjVUIugNVwGvAHxwVAhHxB7ZTPZVlLrAaGG+M2SIis4FPjTEfisirwHpjzCt1va8WAqXckzGG7zILmPX9Lr7ZnseJSkNSTBhndYxmQGIL+idGERcV+quuncYYDhaXk3GgiPT9R1meUcCKrAJKT1QREx7EuEGJXD84kXZRzWz6ZN6htkLg7FSVW60XP91uqUCmMSbb2vdDYKyIbAWGA9db+82iunVRZyFQSrknEeHc5FjOTY7lcEk5X27cz4It+/liwz4+WJXz834RwQFEhwdRZQxlJ6ooKa+kqKzi5+0J0c34TUoCw7q2Ykjnli49zaR+rSmG4osDcmos5wKDgZbAYWNMRY31v5rX+CQRmQRMAkhM1C5iSrm7qNAgrh9c/Uu+qsqQlV/Exj1H2H+0lLyjZRwsLifQTwgO9CM4wJ/E6FCSW4fTuVU4bZqH6JwBTajOQiAiiwBHl+UfNcbMrcd7OPqvaU6z3iFjzHRgOlSfGqrH+yql3ISfn5DcOoLk1hF2R1EO1FkIjDEjnXyPXCChxnI8sBcoAKJEJMBqFZxcr5RSqgk1xQ1lq4FkEUkSkSBgHDDPVF+lXgpcY+03AahPC0MppZQLOVUIRORKEckFzga+EJH51vp2IvIlgPVr/15gPrAVmG2M2Wy9xMPAgyKSSfU1gzecyaOUUqrh9IYypZTyEbV1H9WxhpRSysdpIVBKKR+nhUAppXycFgKllPJxHnmxWETygV1neHgM1fcweCpPzw+e/xk8PT94/mfw9Pxgz2dob4yJPXWlRxYCZ4hImqOr5p7C0/OD538GT88Pnv8ZPD0/uNdn0FNDSinl47QQKKWUj/PFQjDd7gBO8vT84PmfwdPzg+d/Bk/PD270GXzuGoFSSqlf8sUWgVJKqRq0ECillI/zqUIgImNEJF1EMkVkit15GkJE3hSRPBHZZHeWMyEiCSKyVES2ishmEfmd3ZkaSkRCRGSViKy3PsNf7M50JkTEX0R+EpHP7c5yJkRkp4hsFJF1IuJxo0+KSJSIfCwi26z/P5xteyZfuUYgIv7AdmAU1ZPlrAbGG2O22BqsnkTkPKAIeNsY08vuPA0lIm2BtsaYtSISAawBrvCUf38AqZ47McwYUyQigcB3wO+MMSttjtYgIvIgkAI0N8ZcaneehhKRnUCKMcYjbygTkVnAcmPMDGuOllBjzGE7M/lSiyAVyDTGZBtjyoEPgbE2Z6o3Y8y3QKHdOc6UMWafMWat9fwY1XNT1DpHtTsy1YqsxUDr4VG/pEQkHrgEmGF3Fl8kIs2B87DmXjHGlNtdBMC3CkEckFNjORcP+yLyFiLSAegP/GhvkoazTqusA/KAhcYYT/sMLwB/BKrsDuIEAywQkTUiMsnuMA3UEcgHZlqn52aISJjdoXypEIiDdR71a84biEg48AlwvzHmqN15GsoYU2mM6Uf1HNupIuIxp+lE5FIgzxizxu4sThpqjBkAXATcY5029RQBwADgFWNMf6AYsP16pS8VglwgocZyPLDXpiw+yTqv/gnwnjHmU7vzOMNqzi8DxtgcpSGGApdb59g/BIaLyLv2Rmo4Y8xe628e8BnVp309RS6QW6Ml+THVhcFWvlQIVgPJIpJkXaAZB8yzOZPPsC60vgFsNcY8Z3eeMyEisSISZT1vBowEttmbqv6MMY8YY+KNMR2o/t//EmPMDTbHahARCbM6G2CdUrkQ8JiedMaY/UCOiHS1Vo0AbO8wEWB3gKZijKkQkXuB+YA/8KYxZrPNsepNRD4AhgExIpILPG6MecPeVA0yFLgR2GidYwf4P2PMlzZmaqi2wCyrB5ofMNsY45FdMD1Ya+Cz6t8VBADvG2O+tjdSg90HvGf9IM0GJtqcx3e6jyqllHLMl04NKaWUckALgVJK+TgtBEop5eO0ECillI/TQqCUUj5OC4FSSvk4LQRKKeXj/h+z1wwT88KdawAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "tags": [], "needs_background": "light" } } ] }, { "cell_type": "markdown", "metadata": { "id": "fDfem0AFL3kY", "colab_type": "text" }, "source": [ "Írjunk egy függvényt, ami egy megadott frekvenciájú jelet rajzol ki!" ] }, { "cell_type": "code", "metadata": { "id": "M0a5X-FwL3kZ", "colab_type": "code", "colab": {}, "outputId": "e7ee53d7-7dd8-4b68-959a-df08c3f5d8c2" }, "source": [ "## Egyszerű plot szinusz függvény\n", "# Az alábbi paranccsal alapvető matplotlib és numpy függvényeket töltünk be.\n", "%matplotlib inline\n", "%pylab inline \n", "\n", "# a függvény definiciója\n", "t=linspace(0,2*pi,100);\n", "def freki(omega): \n", " plot(t,sin(omega*t))\n", " \n", "freki(1.0) # függvény meghívása 1.\n", "freki(2.0) # függvény meghívása 2." ], "execution_count": 0, "outputs": [ { "output_type": "display_data", "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "tags": [], "needs_background": "light" } } ] }, { "cell_type": "markdown", "metadata": { "id": "ScSulOq6L3kc", "colab_type": "text" }, "source": [ "Most jön a varázslat! Az `interact()` függvény segítségével interaktívvá tehetjük a fent definiált függvényünket!" ] }, { "cell_type": "code", "metadata": { "id": "FG1cqv_YL3kc", "colab_type": "code", "colab": { "referenced_widgets": [ "8e5104dab5f74b14932e4531cfc92949" ] }, "outputId": "1878bbf8-12a6-494f-e245-1953ee26a55c" }, "source": [ "## interaktívvá tett függvény megjelenítés\n", "# Az alábbi paranccsal alapvető matplotlib és numpy függvényeket töltünk be.\n", "%matplotlib inline\n", "%pylab inline \n", "\n", "# a függvény definiciója\n", "t=linspace(0,2*pi,100);\n", "def freki(omega): \n", " plot(t,sin(omega*t))\n", " \n", "interact(freki,omega=(0,10,0.1)) # függvény interaktív meghívása " ], "execution_count": 0, "outputs": [ { "output_type": "stream", "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "8e5104dab5f74b14932e4531cfc92949", "version_major": 2, "version_minor": 0 }, "text/plain": [ "interactive(children=(FloatSlider(value=5.0, description='omega', max=10.0), Output()), _dom_classes=('widget-…" ] }, "metadata": { "tags": [] } }, { "output_type": "execute_result", "data": { "text/plain": [ "" ] }, "metadata": { "tags": [] }, "execution_count": 3 } ] }, { "cell_type": "markdown", "metadata": { "id": "SWBgxjraL3kh", "colab_type": "text" }, "source": [ "Nézzük meg egy kicsit közelebbről, hogy is működik ez az `interact()` konstrukció! Definiáljunk ehhez először egy nagyon egyszerű függvényt!" ] }, { "cell_type": "code", "metadata": { "id": "iqeLkEmNL3ki", "colab_type": "code", "colab": {} }, "source": [ "def func(x):\n", " print(x)" ], "execution_count": 0, "outputs": [] }, { "cell_type": "markdown", "metadata": { "id": "hNvt2--3L3kl", "colab_type": "text" }, "source": [ "Az interact egy olyan függvény, amely az első paramétereként egy függvényt vár, és kulcsszavakként várja a függvény bemenő paramétereit! Amit visszaad, az egy interaktív **widget**, ami lehet sokfajta, de alapvetően azt a célt szolgálja, hogy a **func** függvényt kiszolgálja. Annak ad egy bemenő paramétert, lefuttatja, majd vár, hogy a felhasználó újra megváltoztassa az állapotot.\n", "Ha a kulcsszavas argumentumnak zárójelbe írt egész számokat adunk meg, akkor egy egész számokon végigmenő csúszkát kapunk:" ] }, { "cell_type": "code", "metadata": { "id": "RPAGwXEZL3kl", "colab_type": "code", "colab": { "referenced_widgets": [ "a5616a5da733401585864ebb667a1d32" ] }, "outputId": "e8b1b99f-6033-469e-8734-03b449641a1c" }, "source": [ "interact(func,x=(0,10)); " ], "execution_count": 0, "outputs": [ { "output_type": "display_data", "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "a5616a5da733401585864ebb667a1d32", "version_major": 2, "version_minor": 0 }, "text/plain": [ "interactive(children=(IntSlider(value=5, description='x', max=10), Output()), _dom_classes=('widget-interact',…" ] }, "metadata": { "tags": [] } } ] }, { "cell_type": "markdown", "metadata": { "id": "smLrjtbxL3ko", "colab_type": "text" }, "source": [ "Ha egy `bool` értéket adunk meg, akkor egy pipálható dobozt:" ] }, { "cell_type": "code", "metadata": { "id": "vvPoCL81L3kp", "colab_type": "code", "colab": { "referenced_widgets": [ "6c64533b34554b9f84e6b996d87c9fc3" ] }, "outputId": "f35afa75-60ea-4f4b-d5cc-cefa202ab343" }, "source": [ "interact(func,x=False);" ], "execution_count": 0, "outputs": [ { "output_type": "display_data", "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "6c64533b34554b9f84e6b996d87c9fc3", "version_major": 2, "version_minor": 0 }, "text/plain": [ "interactive(children=(Checkbox(value=False, description='x'), Output()), _dom_classes=('widget-interact',))" ] }, "metadata": { "tags": [] } } ] }, { "cell_type": "markdown", "metadata": { "id": "jUSsrzY4L3ks", "colab_type": "text" }, "source": [ "Ha egy általános listát adunk meg, akkor egy legördülő menüt kapunk:" ] }, { "cell_type": "code", "metadata": { "id": "_mz8ijZlL3kt", "colab_type": "code", "colab": { "referenced_widgets": [ "69849a2180c24d9c96d94beec0200977" ] }, "outputId": "decefb02-b678-4c14-b8b7-e9ce40cde2de" }, "source": [ "interact(func,x=['hétfő','kedd','szerda']);" ], "execution_count": 0, "outputs": [ { "output_type": "display_data", "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "69849a2180c24d9c96d94beec0200977", "version_major": 2, "version_minor": 0 }, "text/plain": [ "interactive(children=(Dropdown(description='x', options=('hétfő', 'kedd', 'szerda'), value='hétfő'), Output())…" ] }, "metadata": { "tags": [] } } ] }, { "cell_type": "markdown", "metadata": { "id": "fh5vfARVL3kv", "colab_type": "text" }, "source": [ "Ha a sima zárójelbe írt számok nem egészek (legalább az egyik) akkor egy float csúszkát kapunk:" ] }, { "cell_type": "code", "metadata": { "id": "3mXk1G1jL3kw", "colab_type": "code", "colab": { "referenced_widgets": [ "3378d15f294d44858a00dcc95838e81c" ] }, "outputId": "42042070-8915-4997-8076-3b2a41801597" }, "source": [ "interact(func,x=(0,10,0.1));" ], "execution_count": 0, "outputs": [ { "output_type": "display_data", "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "3378d15f294d44858a00dcc95838e81c", "version_major": 2, "version_minor": 0 }, "text/plain": [ "interactive(children=(FloatSlider(value=5.0, description='x', max=10.0), Output()), _dom_classes=('widget-inte…" ] }, "metadata": { "tags": [] } } ] }, { "cell_type": "markdown", "metadata": { "id": "7CbgLZjeL3ky", "colab_type": "text" }, "source": [ "Ha pontosan specifikálni szeretnénk, hogy milyen interaktivitást akarunk, akkor azt az alábbiak szerint tehetjük meg, \n", "\n", "\n", "egész csúszka$\\rightarrow$IntSlider()\n", "\n", "float csúszka$\\rightarrow$FloatSlider()\n", "\n", "legördülő menü$\\rightarrow$Dropdown()\n", "\n", "pipa doboz$\\rightarrow$Checkbox()\n", "\n", "szövegdoboz$\\rightarrow$Text()\n", "\n", "Ezt alább néhány példa illusztrálja:" ] }, { "cell_type": "code", "metadata": { "id": "SfYmt8vOL3kz", "colab_type": "code", "colab": { "referenced_widgets": [ "403d226ae8604277a667b91a4373a9fd" ] }, "outputId": "1848ca78-bf2b-4813-e0b9-9b4179cf4ff6" }, "source": [ "import ipywidgets as widgets\n", "from ipywidgets import HBox, VBox\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from IPython.display import display\n", "%matplotlib inline\n", "\n", "@widgets.interact\n", "def f(x=5):\n", " print(x)" ], "execution_count": 0, "outputs": [ { "output_type": "display_data", "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "403d226ae8604277a667b91a4373a9fd", "version_major": 2, "version_minor": 0 }, "text/plain": [ "interactive(children=(IntSlider(value=5, description='x', max=15, min=-5), Output()), _dom_classes=('widget-in…" ] }, "metadata": { "tags": [] } } ] }, { "cell_type": "code", "metadata": { "id": "Nw6hvDVsL3k2", "colab_type": "code", "colab": { "referenced_widgets": [ "0d26b5fe5f5c46cdb4fc7db464414f11" ] }, "outputId": "6a0fc7d4-9a37-4c15-e13b-5c85798353eb" }, "source": [ "@widgets.interact(x=(0, 5))\n", "def f(x=5):\n", " print(x)" ], "execution_count": 0, "outputs": [ { "output_type": "display_data", "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "0d26b5fe5f5c46cdb4fc7db464414f11", "version_major": 2, "version_minor": 0 }, "text/plain": [ "interactive(children=(IntSlider(value=5, description='x', max=5), Output()), _dom_classes=('widget-interact',)…" ] }, "metadata": { "tags": [] } } ] }, { "cell_type": "code", "metadata": { "id": "eWxkymK4L3k5", "colab_type": "code", "colab": { "referenced_widgets": [ "9f7873190859496ca034b62aba232fab" ] }, "outputId": "fb1d0815-1075-436f-eac8-dd19fc06e0c9" }, "source": [ "@widgets.interact_manual(\n", " color=['blue', 'red', 'green'], lw=(1., 10.))\n", "def plot(freq=1., color='blue', lw=2, grid=True):\n", " t = np.linspace(-1., +1., 1000)\n", " fig, ax = plt.subplots(1, 1, figsize=(8, 6))\n", " ax.plot(t, np.sin(2 * np.pi * freq * t),\n", " lw=lw, color=color)\n", " ax.grid(grid)" ], "execution_count": 0, "outputs": [ { "output_type": "display_data", "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "9f7873190859496ca034b62aba232fab", "version_major": 2, "version_minor": 0 }, "text/plain": [ "interactive(children=(FloatSlider(value=1.0, description='freq', max=3.0, min=-1.0), Dropdown(description='col…" ] }, "metadata": { "tags": [] } } ] }, { "cell_type": "code", "metadata": { "id": "04QGARl1L3k7", "colab_type": "code", "colab": { "referenced_widgets": [ "d244ee8c7f444392b516321a99d6771f" ] }, "outputId": "aaa93bb5-0950-4486-d0de-99b6a5badbe8" }, "source": [ "freq_slider = widgets.FloatSlider(\n", " value=2.,\n", " min=1.,\n", " max=10.0,\n", " step=0.1,\n", " description='Frequency:',\n", " readout_format='.1f',\n", ")\n", "freq_slider" ], "execution_count": 0, "outputs": [ { "output_type": "display_data", "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "d244ee8c7f444392b516321a99d6771f", "version_major": 2, "version_minor": 0 }, "text/plain": [ "FloatSlider(value=2.0, description='Frequency:', max=10.0, min=1.0, readout_format='.1f')" ] }, "metadata": { "tags": [] } } ] }, { "cell_type": "code", "metadata": { "id": "aqRrpATyL3k_", "colab_type": "code", "colab": { "referenced_widgets": [ "10b0e023f11a49b9acdda27b0a5b74d6" ] }, "outputId": "c3cc4c73-e4cf-460a-ed87-9d3ace0526c4" }, "source": [ "color_buttons = widgets.ToggleButtons(\n", " options=['blue', 'red', 'green'],\n", " description='Color:',\n", ")\n", "color_buttons" ], "execution_count": 0, "outputs": [ { "output_type": "display_data", "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "10b0e023f11a49b9acdda27b0a5b74d6", "version_major": 2, "version_minor": 0 }, "text/plain": [ "ToggleButtons(description='Color:', options=('blue', 'red', 'green'), value='blue')" ] }, "metadata": { "tags": [] } } ] }, { "cell_type": "code", "metadata": { "id": "w_YD6_prL3lC", "colab_type": "code", "colab": { "referenced_widgets": [ "3ad4e588bfbf4849b970bcb9ddbd9123" ] }, "outputId": "e188745d-480d-4b1b-9ec7-29900e7555f7" }, "source": [ "color_picker = widgets.ColorPicker(\n", " concise=True,\n", " description='Background color:',\n", " value='#efefef',\n", ")\n", "color_picker" ], "execution_count": 0, "outputs": [ { "output_type": "display_data", "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "3ad4e588bfbf4849b970bcb9ddbd9123", "version_major": 2, "version_minor": 0 }, "text/plain": [ "ColorPicker(value='#efefef', concise=True, description='Background color:')" ] }, "metadata": { "tags": [] } } ] }, { "cell_type": "code", "metadata": { "id": "eMEzaTZcL3lE", "colab_type": "code", "colab": { "referenced_widgets": [ "144a395b236e4adca4dc4e3a25565317" ] }, "outputId": "fd9fac52-f71f-45bb-f5c8-922561cb7a6f" }, "source": [ "## Komlex minta\n", "import ipywidgets as widgets\n", "from ipywidgets import HBox, VBox\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from IPython.display import display\n", "%matplotlib inline\n", "\n", "range_slider = widgets.FloatRangeSlider(\n", " value=[-1., +1.],\n", " min=-5., max=+5., step=0.1,\n", " description='xlim:',\n", " readout_format='.1f',\n", ")\n", "# range_slider\n", "\n", "title_textbox = widgets.Text(\n", " value='Hello World',\n", " description='Title:',\n", ")\n", "# title_textbox\n", "\n", "grid_button = widgets.ToggleButton(\n", " value=False,\n", " description='Grid',\n", " icon='check'\n", ")\n", "# grid_button\n", "\n", "button = widgets.Button(\n", " description='Plot',\n", ")\n", "#button\n", "\n", "color_picker = widgets.ColorPicker(\n", " concise=True,\n", " description='Background color:',\n", " value='#efefef',\n", ")\n", "#color_picker\n", "\n", "def plot2(b=None):\n", " xlim = range_slider.value\n", " freq = freq_slider.value\n", " grid = grid_button.value\n", " color = color_buttons.value\n", " title = title_textbox.value\n", " bgcolor = color_picker.value\n", "\n", " t = np.linspace(xlim[0], xlim[1], 1000)\n", " f, ax = plt.subplots(1, 1, figsize=(8, 6))\n", " ax.plot(t, np.sin(2 * np.pi * freq * t),\n", " color=color)\n", " ax.grid(grid)\n", " \n", "@button.on_click\n", "def plot_on_click(b):\n", " out.clear_output(wait=True)\n", " with out:\n", " plot2()\n", " plt.show()\n", " \n", "tab1 = VBox(children=[freq_slider,\n", " range_slider,\n", " ])\n", "tab2 = VBox(children=[color_buttons,\n", " HBox(children=[title_textbox,\n", " color_picker,\n", " grid_button]),\n", " ])\n", "\n", "out = widgets.Output()\n", "tab = widgets.Tab(children=[tab1, tab2])\n", "tab.set_title(0, 'plot')\n", "tab.set_title(1, 'styling')\n", "VBox(children=[tab, button, out])" ], "execution_count": 0, "outputs": [ { "output_type": "display_data", "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "144a395b236e4adca4dc4e3a25565317", "version_major": 2, "version_minor": 0 }, "text/plain": [ "VBox(children=(Tab(children=(VBox(children=(FloatSlider(value=2.0, description='Frequency:', max=10.0, min=1.0…" ] }, "metadata": { "tags": [] } } ] }, { "cell_type": "markdown", "metadata": { "id": "9zNKRN6pL3lG", "colab_type": "text" }, "source": [ "\n", "$\\pi$ iteratív meghatározása \n", "\n" ] }, { "cell_type": "code", "metadata": { "scrolled": true, "id": "9xCg9TsAL3lH", "colab_type": "code", "colab": { "base_uri": "https://localhost:8080/", "height": 567, "referenced_widgets": [ "8ec329a4f9804a14850acda3ed888bda", "e027e994a2894145bf291c44da9c700f", "378100c5b817408d957c112af2dcbc12", "6ce79f9167174e8caf9d9c9e6ec33005", "6fb210b74d4746abb418af61180bd89c", "138dbb45358140d49ae1aba037391f1d" ] }, "outputId": "a3bee464-3d6a-4f51-fa07-283e0bfbc988" }, "source": [ "## interaktívvá tett függvény megjelenítés\n", "# Az alábbi paranccsal alapvető matplotlib és numpy függvényeket töltünk be.\n", "%pylab inline \n", "%matplotlib inline\n", "\n", "\n", "from ipywidgets import interact\n", "\n", "def fun(n):\n", " a=sqrt(2)\n", " for i in range(1,n):\n", " a=sqrt((1-sqrt(1-a**2/4))**2+a**2/4)\n", " return a*2**n\n", "phi=linspace(0,pi/2,60)\n", "figsize(8,8)\n", "\n", "def geo(m=0):\n", " plot([0,0,1],[1,0,0],color='black')\n", " plot(cos(phi),sin(phi),lw=25,color='black')\n", " p=linspace(0,pi/2,2**m+1)\n", " plot([0,0,cos(p[1])],[1,0,sin(p[1])],color='black')\n", " plot(cos(p[0::2]),sin(p[0::2]),'--',lw=4,color='gray')\n", " plot(cos(p),sin(p),'o-',lw=8,color='red',ms=20,mec='red')\n", " #\n", " axes().set_aspect('equal')\n", " xlim(-0.1,1.1)\n", " ylim(-0.1,1.1)\n", " axis('off');\n", " #\n", " text(0.7,0.95,r'$\\pi/2=$'+str(pi/2),fontsize=40)\n", " text(0.7,0.8,r'$\\;\\,s=$'+str(fun(m+1)/2),fontsize=40,color='red')\n", " if m==1:\n", " text(0.5,-0.1,r'$1$',fontsize=40)\n", " text(-0.1,0.5,r'$1$',fontsize=40)\n", " text(0.5,0.6,r'$x$',fontsize=40)\n", " text(0.1,0.35,r'$1-x$',fontsize=40)\n", " text(0.5,0.2,r'$\\frac{a_{m-1}}{2}$',fontsize=40)\n", " text(0.9,0.35,r'$a_m$',fontsize=40,color='red')\n", " text(1.2,0.5,r'$a^2_{m-1}/4+(1-x)^2=1$',fontsize=40)\n", " text(1.2,0.3,r'$a^2_{m-1}/4+x^2=a^2_m$',fontsize=40)\n", " text(1.2,0.1,r'$s=2^m a_m$',fontsize=40,color='red')\n", " elif m==10:\n", " text(1.1,0.4,r'$\\lim_{m\\rightarrow\\infty} \\left (2^m a_m\\right)=\\pi/2 $',fontsize=50,color='magenta')\n", " \n", "interact(geo,m=(0,17))" ], "execution_count": 1, "outputs": [ { "output_type": "stream", "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ], "name": "stdout" }, { "output_type": "display_data", "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "8ec329a4f9804a14850acda3ed888bda", "version_minor": 0, "version_major": 2 }, "text/plain": [ "interactive(children=(IntSlider(value=0, description='m', max=17), Output()), _dom_classes=('widget-interact',…" ] }, "metadata": { "tags": [] } }, { "output_type": "execute_result", "data": { "text/plain": [ "" ] }, "metadata": { "tags": [] }, "execution_count": 1 } ] }, { "cell_type": "code", "metadata": { "id": "0PA0Y36DL3lJ", "colab_type": "code", "colab": {}, "outputId": "5d66ae0e-e1e9-4a1c-b794-be0e1a2e61f1" }, "source": [ "from bokeh.plotting import figure \n", "from bokeh.io import output_notebook, show\n", "output_notebook()\n", "from numpy import cos, linspace\n", "x = linspace(-6, 6, 100)\n", "y = cos(x)\n", "from IPython.display import IFrame\n", "IFrame('https://demo.bokeh.org/sliders', width=900, height=410)" ], "execution_count": 0, "outputs": [ { "output_type": "display_data", "data": { "text/html": [ "\n", "
\n", " \n", " Loading BokehJS ...\n", "
" ] }, "metadata": { "tags": [] } }, { "output_type": "display_data", "data": { "application/javascript": [ "\n", "(function(root) {\n", " function now() {\n", " return new Date();\n", " }\n", "\n", " var force = true;\n", "\n", " if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n", " root._bokeh_onload_callbacks = [];\n", " root._bokeh_is_loading = undefined;\n", " }\n", "\n", " var JS_MIME_TYPE = 'application/javascript';\n", " var HTML_MIME_TYPE = 'text/html';\n", " var EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n", " var CLASS_NAME = 'output_bokeh rendered_html';\n", "\n", " /**\n", " * Render data to the DOM node\n", " */\n", " function render(props, node) {\n", " var script = document.createElement(\"script\");\n", " node.appendChild(script);\n", " }\n", "\n", " /**\n", " * Handle when an output is cleared or removed\n", " */\n", " function handleClearOutput(event, handle) {\n", " var cell = handle.cell;\n", "\n", " var id = cell.output_area._bokeh_element_id;\n", " var server_id = cell.output_area._bokeh_server_id;\n", " // Clean up Bokeh references\n", " if (id != null && id in Bokeh.index) {\n", " Bokeh.index[id].model.document.clear();\n", " delete Bokeh.index[id];\n", " }\n", "\n", " if (server_id !== undefined) {\n", " // Clean up Bokeh references\n", " var cmd = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n", " cell.notebook.kernel.execute(cmd, {\n", " iopub: {\n", " output: function(msg) {\n", " var id = msg.content.text.trim();\n", " if (id in Bokeh.index) {\n", " Bokeh.index[id].model.document.clear();\n", " delete Bokeh.index[id];\n", " }\n", " }\n", " }\n", " });\n", " // Destroy server and session\n", " var cmd = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n", " cell.notebook.kernel.execute(cmd);\n", " }\n", " }\n", "\n", " /**\n", " * Handle when a new output is added\n", " */\n", " function handleAddOutput(event, handle) {\n", " var output_area = handle.output_area;\n", " var output = handle.output;\n", "\n", " // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n", " if ((output.output_type != \"display_data\") || (!output.data.hasOwnProperty(EXEC_MIME_TYPE))) {\n", " return\n", " }\n", "\n", " var toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n", "\n", " if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n", " toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n", " // store reference to embed id on output_area\n", " output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n", " }\n", " if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n", " var bk_div = document.createElement(\"div\");\n", " bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n", " var script_attrs = bk_div.children[0].attributes;\n", " for (var i = 0; i < script_attrs.length; i++) {\n", " toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n", " }\n", " // store reference to server id on output_area\n", " output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n", " }\n", " }\n", "\n", " function register_renderer(events, OutputArea) {\n", "\n", " function append_mime(data, metadata, element) {\n", " // create a DOM node to render to\n", " var toinsert = this.create_output_subarea(\n", " metadata,\n", " CLASS_NAME,\n", " EXEC_MIME_TYPE\n", " );\n", " this.keyboard_manager.register_events(toinsert);\n", " // Render to node\n", " var props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n", " render(props, toinsert[toinsert.length - 1]);\n", " element.append(toinsert);\n", " return toinsert\n", " }\n", "\n", " /* Handle when an output is cleared or removed */\n", " events.on('clear_output.CodeCell', handleClearOutput);\n", " events.on('delete.Cell', handleClearOutput);\n", "\n", " /* Handle when a new output is added */\n", " events.on('output_added.OutputArea', handleAddOutput);\n", "\n", " /**\n", " * Register the mime type and append_mime function with output_area\n", " */\n", " OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n", " /* Is output safe? */\n", " safe: true,\n", " /* Index of renderer in `output_area.display_order` */\n", " index: 0\n", " });\n", " }\n", "\n", " // register the mime type if in Jupyter Notebook environment and previously unregistered\n", " if (root.Jupyter !== undefined) {\n", " var events = require('base/js/events');\n", " var OutputArea = require('notebook/js/outputarea').OutputArea;\n", "\n", " if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n", " register_renderer(events, OutputArea);\n", " }\n", " }\n", "\n", " \n", " if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n", " root._bokeh_timeout = Date.now() + 5000;\n", " root._bokeh_failed_load = false;\n", " }\n", "\n", " var NB_LOAD_WARNING = {'data': {'text/html':\n", " \"
\\n\"+\n", " \"

\\n\"+\n", " \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n", " \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n", " \"

\\n\"+\n", " \"
    \\n\"+\n", " \"
  • re-rerun `output_notebook()` to attempt to load from CDN again, or
  • \\n\"+\n", " \"
  • use INLINE resources instead, as so:
  • \\n\"+\n", " \"
\\n\"+\n", " \"\\n\"+\n", " \"from bokeh.resources import INLINE\\n\"+\n", " \"output_notebook(resources=INLINE)\\n\"+\n", " \"\\n\"+\n", " \"
\"}};\n", "\n", " function display_loaded() {\n", " var el = document.getElementById(\"1003\");\n", " if (el != null) {\n", " el.textContent = \"BokehJS is loading...\";\n", " }\n", " if (root.Bokeh !== undefined) {\n", " if (el != null) {\n", " el.textContent = \"BokehJS \" + root.Bokeh.version + \" successfully loaded.\";\n", " }\n", " } else if (Date.now() < root._bokeh_timeout) {\n", " setTimeout(display_loaded, 100)\n", " }\n", " }\n", "\n", "\n", " function run_callbacks() {\n", " try {\n", " root._bokeh_onload_callbacks.forEach(function(callback) {\n", " if (callback != null)\n", " callback();\n", " });\n", " } finally {\n", " delete root._bokeh_onload_callbacks\n", " }\n", " console.debug(\"Bokeh: all callbacks have finished\");\n", " }\n", "\n", " function load_libs(css_urls, js_urls, callback) {\n", " if (css_urls == null) css_urls = [];\n", " if (js_urls == null) js_urls = [];\n", "\n", " root._bokeh_onload_callbacks.push(callback);\n", " if (root._bokeh_is_loading > 0) {\n", " console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n", " return null;\n", " }\n", " if (js_urls == null || js_urls.length === 0) {\n", " run_callbacks();\n", " return null;\n", " }\n", " console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n", " root._bokeh_is_loading = css_urls.length + js_urls.length;\n", "\n", " function on_load() {\n", " root._bokeh_is_loading--;\n", " if (root._bokeh_is_loading === 0) {\n", " console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n", " run_callbacks()\n", " }\n", " }\n", "\n", " function on_error() {\n", " console.error(\"failed to load \" + url);\n", " }\n", "\n", " for (var i = 0; i < css_urls.length; i++) {\n", " var url = css_urls[i];\n", " const element = document.createElement(\"link\");\n", " element.onload = on_load;\n", " element.onerror = on_error;\n", " element.rel = \"stylesheet\";\n", " element.type = \"text/css\";\n", " element.href = url;\n", " console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n", " document.body.appendChild(element);\n", " }\n", "\n", " for (var i = 0; i < js_urls.length; i++) {\n", " var url = js_urls[i];\n", " var element = document.createElement('script');\n", " element.onload = on_load;\n", " element.onerror = on_error;\n", " element.async = false;\n", " element.src = url;\n", " console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n", " document.head.appendChild(element);\n", " }\n", " };var element = document.getElementById(\"1003\");\n", " if (element == null) {\n", " console.error(\"Bokeh: ERROR: autoload.js configured with elementid '1003' but no matching script tag was found. \")\n", " return false;\n", " }\n", "\n", " function inject_raw_css(css) {\n", " const element = document.createElement(\"style\");\n", " element.appendChild(document.createTextNode(css));\n", " document.body.appendChild(element);\n", " }\n", "\n", " var js_urls = [\"https://cdn.pydata.org/bokeh/release/bokeh-1.3.4.min.js\", \"https://cdn.pydata.org/bokeh/release/bokeh-widgets-1.3.4.min.js\", \"https://cdn.pydata.org/bokeh/release/bokeh-tables-1.3.4.min.js\", \"https://cdn.pydata.org/bokeh/release/bokeh-gl-1.3.4.min.js\"];\n", " var css_urls = [];\n", "\n", " var inline_js = [\n", " function(Bokeh) {\n", " Bokeh.set_log_level(\"info\");\n", " },\n", " \n", " function(Bokeh) {\n", " \n", " },\n", " function(Bokeh) {} // ensure no trailing comma for IE\n", " ];\n", "\n", " function run_inline_js() {\n", " \n", " if ((root.Bokeh !== undefined) || (force === true)) {\n", " for (var i = 0; i < inline_js.length; i++) {\n", " inline_js[i].call(root, root.Bokeh);\n", " }if (force === true) {\n", " display_loaded();\n", " }} else if (Date.now() < root._bokeh_timeout) {\n", " setTimeout(run_inline_js, 100);\n", " } else if (!root._bokeh_failed_load) {\n", " console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n", " root._bokeh_failed_load = true;\n", " } else if (force !== true) {\n", " var cell = $(document.getElementById(\"1003\")).parents('.cell').data().cell;\n", " cell.output_area.append_execute_result(NB_LOAD_WARNING)\n", " }\n", "\n", " }\n", "\n", " if (root._bokeh_is_loading === 0) {\n", " console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n", " run_inline_js();\n", " } else {\n", " load_libs(css_urls, js_urls, function() {\n", " console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n", " run_inline_js();\n", " });\n", " }\n", "}(window));" ], "application/vnd.bokehjs_load.v0+json": "\n(function(root) {\n function now() {\n return new Date();\n }\n\n var force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\n \n\n \n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n var NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"
    \\n\"+\n \"
  • re-rerun `output_notebook()` to attempt to load from CDN again, or
  • \\n\"+\n \"
  • use INLINE resources instead, as so:
  • \\n\"+\n \"
\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded() {\n var el = document.getElementById(\"1003\");\n if (el != null) {\n el.textContent = \"BokehJS is loading...\";\n }\n if (root.Bokeh !== undefined) {\n if (el != null) {\n el.textContent = \"BokehJS \" + root.Bokeh.version + \" successfully loaded.\";\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(display_loaded, 100)\n }\n }\n\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error() {\n console.error(\"failed to load \" + url);\n }\n\n for (var i = 0; i < css_urls.length; i++) {\n var url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error;\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (var i = 0; i < js_urls.length; i++) {\n var url = js_urls[i];\n var element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error;\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };var element = document.getElementById(\"1003\");\n if (element == null) {\n console.error(\"Bokeh: ERROR: autoload.js configured with elementid '1003' but no matching script tag was found. \")\n return false;\n }\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n var js_urls = [\"https://cdn.pydata.org/bokeh/release/bokeh-1.3.4.min.js\", \"https://cdn.pydata.org/bokeh/release/bokeh-widgets-1.3.4.min.js\", \"https://cdn.pydata.org/bokeh/release/bokeh-tables-1.3.4.min.js\", \"https://cdn.pydata.org/bokeh/release/bokeh-gl-1.3.4.min.js\"];\n var css_urls = [];\n\n var inline_js = [\n function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\n \n function(Bokeh) {\n \n },\n function(Bokeh) {} // ensure no trailing comma for IE\n ];\n\n function run_inline_js() {\n \n if ((root.Bokeh !== undefined) || (force === true)) {\n for (var i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }if (force === true) {\n display_loaded();\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n var cell = $(document.getElementById(\"1003\")).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));" }, "metadata": { "tags": [] } }, { "output_type": "execute_result", "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": { "tags": [] }, "execution_count": 7 } ] }, { "cell_type": "code", "metadata": { "id": "HWpWZN0qL3lL", "colab_type": "code", "colab": {}, "outputId": "e0dea57d-87bb-4bd3-fbe4-8b2f41645fd7" }, "source": [ "p = figure(width=500, height=500)\n", "p.circle(x, y, size=7, color=\"firebrick\", alpha=0.5)\n", "show(p)" ], "execution_count": 0, "outputs": [ { "output_type": "display_data", "data": { "text/html": [ "\n", "\n", "\n", "\n", "\n", "\n", "
\n" ] }, "metadata": { "tags": [] } }, { "output_type": "display_data", "data": { "application/javascript": [ "(function(root) {\n", " function embed_document(root) {\n", " \n", " var docs_json = {\"aae9d7a2-371c-4c19-bec6-f2866339c9b2\":{\"roots\":{\"references\":[{\"attributes\":{\"below\":[{\"id\":\"1013\",\"type\":\"LinearAxis\"}],\"center\":[{\"id\":\"1017\",\"type\":\"Grid\"},{\"id\":\"1022\",\"type\":\"Grid\"}],\"left\":[{\"id\":\"1018\",\"type\":\"LinearAxis\"}],\"plot_height\":500,\"plot_width\":500,\"renderers\":[{\"id\":\"1039\",\"type\":\"GlyphRenderer\"}],\"title\":{\"id\":\"1042\",\"type\":\"Title\"},\"toolbar\":{\"id\":\"1029\",\"type\":\"Toolbar\"},\"x_range\":{\"id\":\"1005\",\"type\":\"DataRange1d\"},\"x_scale\":{\"id\":\"1009\",\"type\":\"LinearScale\"},\"y_range\":{\"id\":\"1007\",\"type\":\"DataRange1d\"},\"y_scale\":{\"id\":\"1011\",\"type\":\"LinearScale\"}},\"id\":\"1004\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{},\"id\":\"1023\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"1044\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"1011\",\"type\":\"LinearScale\"},{\"attributes\":{\"callback\":null},\"id\":\"1007\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"1024\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"lightgrey\"},\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":{\"value\":1.0},\"line_color\":{\"value\":\"black\"},\"line_dash\":[4,4],\"line_width\":{\"value\":2},\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"1047\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"overlay\":{\"id\":\"1047\",\"type\":\"BoxAnnotation\"}},\"id\":\"1025\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"source\":{\"id\":\"1036\",\"type\":\"ColumnDataSource\"}},\"id\":\"1040\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1048\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"1023\",\"type\":\"PanTool\"},{\"id\":\"1024\",\"type\":\"WheelZoomTool\"},{\"id\":\"1025\",\"type\":\"BoxZoomTool\"},{\"id\":\"1026\",\"type\":\"SaveTool\"},{\"id\":\"1027\",\"type\":\"ResetTool\"},{\"id\":\"1028\",\"type\":\"HelpTool\"}]},\"id\":\"1029\",\"type\":\"Toolbar\"},{\"attributes\":{},\"id\":\"1026\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"1027\",\"type\":\"ResetTool\"},{\"attributes\":{\"callback\":null,\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAGMCEDz744IMXwAgffPDBBxfAjC666KKLFsAQPvjggw8WwJNNNtlkkxXAF1100UUXFcCbbLLJJpsUwB988MEHHxTAo4suuuiiE8Anm2yyySYTwKqqqqqqqhLALrrooosuEsCyySabbLIRwDbZZJNNNhHAuuiiiy66EMA++OCDDz4QwIQPPvjggw/AjC666KKLDsCTTTbZZJMNwJtssskmmwzAo4suuuiiC8CqqqqqqqoKwLLJJptssgnAuuiiiy66CMDCBx988MEHwMomm2yyyQbA0UUXXXTRBcDZZJNNNtkEwOGDDz744APA6KKLLrroAsDwwQcffPABwPjggw8++ADAAAAAAAAAAMAQPvjggw/+vyB88MEHH/y/MLrooosu+r88+OCDDz74v0w22WSTTfa/XHTRRRdd9L9ssskmm2zyv3zwwQcffPC/GF100UUX7b842WSTTTbpv1BVVVVVVeW/cNFFF1104b8gm2yyySbbv2CTTTbZZNO/QBdddNFFx78AH3zwwQevvwAffPDBB68/QBdddNFFxz9gk0022WTTPzCbbLLJJts/eNFFF1104T9YVVVVVVXlPzjZZJNNNuk/GF100UUX7T988MEHH3zwP2yyySabbPI/YHTRRRdd9D9QNtlkk032P0D44IMPPvg/MLrooosu+j8gfPDBBx/8PxA++OCDD/4/AAAAAAAAAED44IMPPvgAQPDBBx988AFA6KKLLrroAkDggw8++OADQNhkk0022QRA0EUXXXTRBUDMJptssskGQMQHH3zwwQdAvOiiiy66CEC0ySabbLIJQKyqqqqqqgpApIsuuuiiC0CcbLLJJpsMQJRNNtlkkw1AjC666KKLDkCEDz744IMPQD744IMPPhBAuuiiiy66EEA22WSTTTYRQLLJJptsshFALrrooosuEkCsqqqqqqoSQCibbLLJJhNApIsuuuiiE0AgfPDBBx8UQJxssskmmxRAGF100UUXFUCUTTbZZJMVQBA++OCDDxZAjC666KKLFkAIH3zwwQcXQIQPPvjggxdAAAAAAAAAGEA=\",\"dtype\":\"float64\",\"shape\":[100]},\"y\":{\"__ndarray__\":\"9SJ4Cbe57j8JY+r+OmvtP60Tvck6rus/WLzTHz6J6T/x0bJaUwTnP6I1+zPxKOQ/oScYONMB4T8ZPFzpojXbP8HygfRnAdQ/fGjcYAsEyT8z6888mk6zP+5YV8fTZqe/pYFip7xExb9PFf407y/Svy7Wz2Mtedm/GSzA6Fwx4L8zrWZ2Tmnjv1qZMxdUWOa/yEpIeGjz6L+BKUaewTDrv4rmZKv1B+2/pq/Cehpy7r9tKDKa32nvv7My8UCi6++/lWFJ+Hr1779ggMrCRIfvv13mP6edou6/+5JWneBK7b/O+cbyGIXrv36TXFjvV+m/wpQK3pDL5r8HDQc8kOnjv6yITtzBvOC/BXJTVyai2r/ACBWWu2bTv4h0TibdxMe/sSQZ5fDFsL8tuK+mtnmsP79vCY4VhcY//tyFCJLL0j9AaSfs/Q3aPzoevIFEd+A/HBvGyK6p4z+YiDpMO5LmPxkpbAr9Jek/+alUikVb6z85RlM6ySntP8nZq5m+iu4/fMS1t/d47z+hS/Ko9fDvP6FL8qj18O8/fMS1t/d47z/J2auZvoruPzZGUzrJKe0/9KlUikVb6z8UKWwK/SXpP5iIOkw7kuY/HBvGyK6p4z86HryBRHfgP0BpJ+z9Ddo/79yFCJLL0j+fbwmOFYXGP623r6a2eaw/sSQZ5fDFsL+IdE4m3cTHv8AIFZa7ZtO/BXJTVyai2r+siE7cwbzgvwcNBzyQ6eO/wpQK3pDL5r98k1xY71fpv8z5xvIYheu/+pJWneBK7b9f5j+nnaLuv2KAysJEh++/lWFJ+Hr177+zMvFAouvvv2soMprfae+/pK/Cehpy7r+I5mSr9Qftv38pRp7BMOu/yEpIeGjz6L9amTMXVFjmvzOtZnZOaeO/GSzA6Fwx4L8u1s9jLXnZv08V/jTvL9K/pYFip7xExb/uV1fH02anv3PrzzyaTrM/nGjcYAsEyT/Q8oH0ZwHUPyc8XOmiNds/pycYONMB4T+oNfsz8SjkP/HRslpTBOc/WLzTHz6J6T+tE73JOq7rPwlj6v46a+0/9SJ4Cbe57j8=\",\"dtype\":\"float64\",\"shape\":[100]}},\"selected\":{\"id\":\"1049\",\"type\":\"Selection\"},\"selection_policy\":{\"id\":\"1048\",\"type\":\"UnionRenderers\"}},\"id\":\"1036\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"size\":{\"units\":\"screen\",\"value\":7},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1038\",\"type\":\"Circle\"},{\"attributes\":{\"ticker\":{\"id\":\"1014\",\"type\":\"BasicTicker\"}},\"id\":\"1017\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1014\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"1046\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"dimension\":1,\"ticker\":{\"id\":\"1019\",\"type\":\"BasicTicker\"}},\"id\":\"1022\",\"type\":\"Grid\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"firebrick\"},\"line_alpha\":{\"value\":0.5},\"line_color\":{\"value\":\"firebrick\"},\"size\":{\"units\":\"screen\",\"value\":7},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1037\",\"type\":\"Circle\"},{\"attributes\":{\"formatter\":{\"id\":\"1046\",\"type\":\"BasicTickFormatter\"},\"ticker\":{\"id\":\"1019\",\"type\":\"BasicTicker\"}},\"id\":\"1018\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"1028\",\"type\":\"HelpTool\"},{\"attributes\":{},\"id\":\"1049\",\"type\":\"Selection\"},{\"attributes\":{\"formatter\":{\"id\":\"1044\",\"type\":\"BasicTickFormatter\"},\"ticker\":{\"id\":\"1014\",\"type\":\"BasicTicker\"}},\"id\":\"1013\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"1019\",\"type\":\"BasicTicker\"},{\"attributes\":{\"text\":\"\"},\"id\":\"1042\",\"type\":\"Title\"},{\"attributes\":{\"callback\":null},\"id\":\"1005\",\"type\":\"DataRange1d\"},{\"attributes\":{\"data_source\":{\"id\":\"1036\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"1037\",\"type\":\"Circle\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1038\",\"type\":\"Circle\"},\"selection_glyph\":null,\"view\":{\"id\":\"1040\",\"type\":\"CDSView\"}},\"id\":\"1039\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"1009\",\"type\":\"LinearScale\"}],\"root_ids\":[\"1004\"]},\"title\":\"Bokeh Application\",\"version\":\"1.3.4\"}};\n", " var render_items = [{\"docid\":\"aae9d7a2-371c-4c19-bec6-f2866339c9b2\",\"roots\":{\"1004\":\"ec07c3b4-3720-49f6-8816-cc8969745127\"}}];\n", " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", "\n", " }\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " } else {\n", " var attempts = 0;\n", " var timer = setInterval(function(root) {\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " clearInterval(timer);\n", " }\n", " attempts++;\n", " if (attempts > 100) {\n", " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n", " clearInterval(timer);\n", " }\n", " }, 10, root)\n", " }\n", "})(window);" ], "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "tags": [], "application/vnd.bokehjs_exec.v0+json": { "id": "1004" } } } ] }, { "cell_type": "code", "metadata": { "id": "XDEo9TrGL3lO", "colab_type": "code", "colab": {} }, "source": [ "" ], "execution_count": 0, "outputs": [] } ] }