{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# plotnine-Beispiele" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Einfaches Streudiagramm" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "1. Importe" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "from plotnine import *\n", "from plotnine.data import mtcars" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "2. Streudiagramm" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABQAAAAPACAYAAABq3NR5AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAB7CAAAewgFu0HU+AAB65ElEQVR4nOzdd3iVhdk/8PskIUDCCltUXDgY4qqzbtuq4B44QMFaq7W1ona4a9VWrW8d71snCg6kVaxaHOAeKFK17vGKWlGKIisyEmQk5/eHP/OKkJMEcnKS53w+19VLyHOfc76R4w398jzPSaXT6XQAAAAAAIlUkOsAAAAAAED2KAABAAAAIMEUgAAAAACQYApAAAAAAEgwBSAAAAAAJJgCEAAAAAASTAEIAAAAAAmmAAQAAACABFMAAgAAAECCKQABAAAAIMEUgAAAAACQYApAAAAAAEgwBSAAAAAAJJgCEAAAAAASTAEIAAAAAAmmAAQAAACABFMAAgAAAECCKQABAAAAIMEUgAAAAACQYApAAAAAAEgwBSAAAAAAJJgCEAAAAAASTAEIAAAAAAmmAAQAAACABFMAAgAAAECCKQABAAAAIMEUgAAAAACQYApAAAAAAEgwBSAAAAAAJFhRrgM0pWeffTaeeOKJmD59eixevDhKSkpiww03jN122y1++MMfRmFh4UrzF154Ybz++usZn/Piiy+OrbfeOnuhAQAAAGAt5E0B+Je//CUee+yxiIho3bp1dOnSJb788st466234q233ornnnsuLrrooiguLq55zOeffx4FBQWxzjrr1Pq8bdq0yXp2AAAAAFhTeVEAvvjii/HYY49FYWFhnHzyybHPPvtEq1atoqqqKh599NG4+eab4+23344HH3wwDj/88IiIWLFiRcyZMye6d+8eN9xwQ46/AwAAAABYM3lxD8BJkyZFRMSgQYNiv/32i1atWkVERGFhYQwaNCj23XffiIh45ZVXah4ze/bsqK6uznj2HwAAAAA0d3lRAE6fPj0iotZ79W2wwQYREfHVV1/VfO3zzz+PiFAAAgAAANCi5cUlwCeddFJUV1fH5ptvvtrj06ZNi4iI9dZbr+Zr3xSAPXv2zH5AAAAAAMiSvCgAd91115V+XlVVFRERc+bMiSeeeCKefvrpKC4ujiOOOKJmZtasWRERkU6n4+qrr4433ngjFi5cGKWlpbHZZpvF4MGDY9ttt226bwIAAAAA1kAqnU6ncx2iqf3ud7+L1157rebnpaWlccEFF0S/fv1qvnbJJZfEyy+/XPPzjh07RkFBQZSXl9d8bdCgQXHyySdHKpVqmuAAAAAA0EB5cQbgd3Xr1i26desW5eXlsWLFiqioqIjLL788zj///Nhss80i4v/OAOzfv3+cfPLJseGGG0ZExLx58+LOO++Mp556Kh555JHo1q1bzScHr4m5c+eu9feTa6lUKtq2bRtLliyJPOyTqUObNm2ioKAgqqurV7rPJkTYH2Rmf5CJ/UEm9geZ2B/UxQ4hk+awQ7p27drgx+TlGYDfqKqqin/9618xZsyYmDlzZnTs2DFuueWWaN26dbz44otRVVUVO+64Y82nBn/bn//853j22WejtLQ07rzzzigqWrMuNQkFYGFhYZSVlUV5eXnN5dXwjbKysigsLIyqqqqVzqCFCPuDzOwPMrE/yMT+IBP7g7rYIWTSHHaIAnANffLJJ3HaaadFRMSvf/3r2G233ep8zNtvvx3nnntuRERce+21sdFGG612buzYsTFu3Lhan+eII46I4cOHr0Hq5iOVStX87Yi3E99VUFAQqVQq0ul0VFdX5zoOzYz9QSb2B5nYH2Rif5CJ/UFd7BAyaQ47pLCwsMGPSfwlwO+99168+OKL0aZNmzj22GNXO7PBBhtEx44dY8GCBTF79ux6PW/Hjh1rfrxs2bJa5yoqKjI+Z2Vl5Rr9wjVHBQUFuY5AM5ZKpRLzXqfx2R9kYn+Qif1BJvYHmdgf1MUOIZOWtkMSXwDOmTMnHnjggUilUnHYYYdFmzZtVplJp9OxYsWKiIho27ZtTJkyJf71r39F79694+CDD17t886YMaPmxz169Kj19UtLS6N79+61Hi8pKWnxp503h/ab5svfnpGJ/UEm9geZ2B9kYn+Qif1BXewQMmkOO8QZgKvRt2/fmv9wp06dGnvuuecqM6+88kpUVFRERMSAAQPio48+iscffzxKS0tjn332iXbt2q3ymAkTJkRExBZbbBGdOnWq9fWHDRsWw4YNq/X43LlzW/w9Bb65/n3BggUtvsyk8X1z/4zq6uoW/16n8dkfZGJ/kIn9QSb2B5nYH9TFDiGT5rBD1uQegC3rfMU10K1bt9hll10iIuLWW2+NV199taahraqqiscffzyuuuqqiIjYaaedonfv3rHTTjtFWVlZVFRUxCWXXLLS2X6LFi2K66+/Pt59991IpVIZyz0AAAAAyLXEnwEYEXHyySfHp59+GjNmzIiLLrooSktLo7S0NObNm1fT1vbt2zdOP/30iPj6MuDf/va3cemll8Z7770XP//5z6OsrCxatWoVc+fOjerq6kilUnHiiSfGwIEDc/mtAQAAAEBGeVEAdurUKa688sp46KGHYurUqTFz5syYN29etGvXLjbaaKPYfffdY6+99lrpGup+/frFddddF//4xz/i5ZdfjlmzZkUqlYru3btHv3794oADDog+ffrk8LsCAAAAgLrlRQEY8fWHbQwZMiSGDBlS78eUlZXFiBEjYsSIEdkLBgAAAABZlPh7AAIAAABAPlMAAgAAAECCKQABAAAAIMEUgAAAAACQYApAAAAAAEgwBSAAAAAAJJgCEAAAAAASTAEIAAAAAAmmAAQAAACABFMAAgAAAECCKQABAAAAIMEUgAAAAACQYApAAAAAAEgwBSAAAAAAJJgCEAAAAAASTAEIAAAAAAmmAAQAAACABFMAAgAAAECCKQABAAAAIMEUgAAAAACQYApAAAAAAEiwolwHAOq2aNGieOCBB+KDDz6IwsLC6N+/fxxwwAHRpk2bXEcDAAAAmjkFIDRjVVVVcfnll8fNN98clZWVKx0777zz4swzz4yf/vSnkUqlcpQQAAAAaO4UgNBMVVdXx89//vP4+9//vtrj8+fPj/PPPz/mzp0b5513XhOnAwAAAFoK9wCEZuqee+6ptfz7tmuuuSamTJnSBIkAAACAlkgBCM1QOp2OUaNG1Xv+lltuyWIaAAAAoCVTAEIzNGPGjHjzzTfrPT9x4sRYtmxZFhMBAAAALZUCEJqhefPmNWh+xYoVsWjRoiylAQAAAFoyBSA0Q+3bt2/QfCqVitLS0iylAQAAAFoyBSA0QxtvvHFsuOGG9Z7fddddo02bNtkLBAAAALRYCkBohgoKCuLHP/5xvedPPPHELKYBAAAAWjIFIDRTJ5xwQmy//fZ1zh100EGx//77N0EiAAAAoCVSAEIz1aZNm7j77rtj0KBBqz2eSqVi+PDhceONN0ZBgf+UAQAAgNUrynUAoHbt27eP22+/Pd57772466674sMPP4yCgoIYMGBADBs2LHr37p3riAAAAEAzpwCEFqBv375x6aWX5joGAAAA0AK5bhAAAAAAEkwBCAAAAAAJpgAEAAAAgARTAAIAAABAgikAAQAAACDBFIAAAAAAkGAKQAAAAABIMAUgAAAAACSYAhAAAAAAEkwBCAAAAAAJpgAEAAAAgARTAAIAAABAgikAAQAAACDBFIAAAAAAkGAKQAAAAABIMAUgAAAAACSYAhAAAAAAEkwBCAAAAAAJpgAEAAAAgARTAAIAAABAgikAAQAAACDBFIAAAAAAkGAKQAAAAABIMAUgAAAAACSYAhAAAAAAEkwBCAAAAAAJpgAEAAAAgARTAAIAAABAgikAAQAAACDBFIAAAAAAkGAKQAAAAABIMAUgAAAAACSYAhAAAAAAEkwBCLAGFi1aFLNnz45ly5blOgoAAABkpAAEqKdly5bF2LFjY5999omNN944+vfvHxtvvHGceuqp8frrr+c6HgAAAKyWAhCgHhYuXBiHHXZYnHHGGfHmm2/WfH3p0qUxfvz4+NGPfhQ333xzDhMCAADA6hXlOkC+S6VSUVDQsnvYwsLClf4JtWmp75F0Oh0nnnhi/POf/8w4c95550WvXr3i4IMPbsJ0LZv9QX15j/Bd9gf15T3Cd9kfNIT3Cd/VUndIKp1Op3MdIp9VVlZGSUlJrmMAGTz33HOxxx571Gu2b9++8c4770QqlcpyKgAAAKgfZwDm2JIlS2Lp0qW5jrFWCgsLo0OHDrFw4cKoqqrKdRyamQ4dOkRhYWFUVVXFwoULcx1njfzlL3+p9+x7770XEydOjJ133jmLiZLD/iCTJOwPssf+IBP7g0zsD+pih5BJc9ghZWVlDX6MAjDH0ul0Yn7TqaqqSsz3Qna01PfH22+/3aD5N998M3bYYYcspUkm+4O6eH9QG/uDunh/UBv7g/rwHqE2LW2HtOybzwE0gYbeKaG6ujpLSQAAAKDhFIAAdejTp0+D5jfbbLMsJQEAAICGUwAC1GHYsGH1nt1ggw1it912y2IaAAAAaBgFIEAd9tprr9h2223rNXv66ae3uI+DBwAAINkUgAB1KCgoiDvuuCO22GKLjHOnn356g84WBAAAgKagAASohx49esQjjzwS55xzTqy77rorHdtzzz3jrrvuivPPPz9SqVSOEgIAAMDqFeU6AEBL0b59+zjzzDPj9NNPj+nTp0dlZWX06NEjunfvnutoAAAAUCsFIEADFRYWxiabbJLrGAAAAFAvLgEGAAAAgARTAAIAAABAgikAAQAAACDBFIAAAAAAkGAKQAAAAABIMAUgAAAAACSYAhAAAAAAEkwBCAAAAAAJpgAEAAAAgARTAAIAAABAgikAAQAAACDBFIAAAAAAkGAKQAAAAABIMAUgAAAAACSYAhAAAAAAEkwBCAAAAAAJpgAEAAAAgARTAAIAAABAgikAAQAAACDBFIAAAAAAkGAKQAAAAABIMAUgAAAAACSYAhAAAAAAEkwBCAAAAAAJpgAEAAAAgARTAAIAAABAgikAAQAAACDBFIAAAAAAkGAKQAAAAABIMAUgAAAAACSYAhAAAAAAEkwBCAAAAAAJpgAEAAAAgARTAAIAAABAgikAAQAAACDBFIAAAAAAkGAKQAAAAABIMAUgAAAAACSYAhAAAAAAEkwBCAAAAAAJpgAEAAAAgARTAAIAAABAgikAAQAAACDBFIAAAAAAkGAKQAAAAABIMAUgAAAAACSYAhAAAAAAEkwBCAAAAAAJpgAEAAAAgAQrynUAkuGTTz6Ja6+9Nl544YX46quvomfPnnHEEUfE4MGDo7i4uNFf7/XXX4/bb7893n333Uin09GnT58YNmxY7LzzzpFKpRr99QAAAABaKgUgayWdTscf/vCHuPrqq6O6urrm62+++WY89thjsf7668ftt98eW265ZaO83uLFi+PUU0+NiRMnrvT11157LcaPHx+77LJLjB49Orp06dIorwcAAADQ0rkEmLXyhz/8If785z+vVP5924wZM+Kwww6LDz/8cK1fa/ny5XHcccetUv5925QpU+LII4+MioqKtX49AAAAgCRQALLGPvroo7j22mvrnPvyyy/joosuWuvXu/fee+P555+vc+6tt96K0aNHr/XrAQAAACSBApA1dtttt9V79rHHHosZM2as1euNGTOm3rO33XZbVFVVrdXrAQAAACSBApA19txzz9V7Np1O1+vsvdosXrw4XnvttXrPf/rpp/HJJ5+s8esBAAAAJIUCkDVWWVmZ1flvW5N7+rkPIAAAAIACkLXQrVu3Bs137959jV+rU6dO0apVqyZ7PQAAAICkKMp1gKb07LPPxhNPPBHTp0+PxYsXR0lJSWy44Yax2267xQ9/+MMoLCxc5TFvv/123HffffHxxx/HokWLonPnzrHddtvFIYccEj169MjBd9F8HHbYYfHyyy/Xa7ZDhw6xzz77rPFrtW7dOg444IC4//776zW/66675v2vDwAAAEBEHp0B+Je//CX+/Oc/xxtvvBFfffVVdOnSJZYuXRpvvfVWXH/99XHBBRfEsmXLVnrMQw89FOeee2688sorsXjx4ujUqVPMnTs3Hn744Rg5cmS8++67OfpumoejjjoqOnXqVK/Z448/PkpKStbq9U466aR6z/70pz9dq9cCAAAASIq8KABffPHFeOyxx6KwsDBOPfXUGDduXNxyyy1x9913xymnnBIFBQXx9ttvx4MPPljzmPfffz9GjRoVERFHHnlk3HXXXXHLLbfEbbfdFrvssktUVFTEn/70p1i8eHGuvq2ca9++fdxyyy3RunXrjHM77bRT/OY3v1nr19t+++3jggsuqHPulFNOif3222+tXw8AAAAgCfKiAJw0aVJERAwaNCj222+/mnvJFRYWxqBBg2LfffeNiIhXXnml5jHjxo2LdDod3/ve9+K4446L4uLiiPj6UtaRI0dGx44dY/78+TFx4sQm/m6alz322CMmTJgQO+644yrHSkpK4qSTTop77rkn2rZt2yiv98tf/jKuu+666N279yrHevToEX/84x/j4osvjlQq1SivBwAAANDS5cU9AKdPnx4REVtvvfVqj2+wwQYREfHVV19FRMTixYvjjTfeiIiIwYMHrzLfpk2b2HnnnWPSpEkxZcqUOPLIIxs/dAuy/fbbx9SpU+PZZ5+NyZMnx5IlS2KdddaJQYMGRYcOHRr99YYMGRKHH354PPvss/HOO+9EOp2OTTfdNH7wgx80+INCAAAAAJIuLwrAk046Kaqrq2PzzTdf7fFp06ZFRMR6660XEV9/8Ed1dXUUFBTEgAEDVvuYvn37xqRJk+Ljjz+O5cuXK54iYuDAgdG/f/8mea3CwsLYe++9Y++9926S1wMAAABoqfKiANx1111X+nlVVVVERMyZMyeeeOKJePrpp6O4uDiOOOKIiIiYMWNGRER07dq11vvb9ezZMyIiqqur44svvqgpDwEAAACgOcmLAvC7Lr744njttddqfl5aWhoXXHBBzaXAixYtioiIjh071voc7du3r/lxRUVFlpICAAAAwNrJiw8B+a5u3bpFt27doqjo6/6zoqIiLr/88ppLgSsrKyMiMl7W+81jI/7vjEIAAAAAaG7y8gzAX/ziFxHx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8+fPj1dffTWLaQAAAIDGpAAEGnxj20WLFmUpCQAAANDYFIBAdO7cOavzAAAAQO4oAIE44IAD6j277rrrxjbbbJPFNAAAAEBjUgACceKJJ0YqlarX7IgRI6KoqCjLiQAAAIDGogAEYvPNN4/f//73dc7ttttuceqppzZBIgAAAKCxKACBiIj42c9+Ftdee21069ZtlWOtWrWK448/Pu66664oLi7OQToAAABgTbmOD6hx7LHHxhFHHBGPPPJIvPbaa7F8+fLo3bt3HH744astBgEAAIDmTwEIrKS4uDgOOeSQOOSQQ3IdBQAAAGgELgEGAAAAgARTAAIAAABAgikAAQAAACDBFIAAAAAAkGAKQAAAAABIMAUgAAAAACSYAhAAAAAAEkwBCAAAAAAJpgAEAAAAgARTAAIAAABAgikAAQAAACDBFIAAAAAAkGAKQAAAAABIMAUgAAAAACSYAhAAAAAAEkwBCAAAAAAJpgAEAAAAgARTAAIAAABAgikAAQAAACDBFIAAAAAAkGAKQAAAAABIMAUgAAAAACSYAhAAAAAAEkwBCAAAAAAJpgAEAAAAgARTAAIAAABAgikAAQAAACDBinIdAKApLVq0KB544IGYNm1apFKp6NevXxx00EFRUlKS62gAAACQFQpAIC9UVVXFn/70p7jpppuioqJipWPnn39+nH766fGLX/wiUqlUjhICAABAdigAgcRLp9Nx+umnx913373a4wsWLIiLL744vvjii7j00kubOB0AAABkl3sAAon3wAMP1Fr+fdtNN90UTz31VBMkAgAAgKajAAQSb9SoUfWevfXWW7OYBAAAAJqeAhBItFmzZsXLL79c7/nHH398lXsEAgAAQEumAAQSbf78+Q2aT6fTsXDhwiylAQAAgKanAAQSrX379g1+TLt27bKQBAAAAHJDAQgk2nrrrRebb755ved33HHHNSoNAQAAoLlSAAKJlkql4sc//nG950888cQspgEAAICmpwAEEm/YsGGx22671Tk3aNCgOPjgg5sgEQAAADQdBSCQeMXFxXHnnXfGoYceutrjqVQqhg0bFjfffHMUFFiLAAAAJEtRrgMANIXS0tK4+eab47e//W2MHTs2pk2bFqlUKvr16xfDhg2L3r175zoiAAAAZIUCEMgrm2yySfzud7/LdQwAAABoMq51AwAAAIAEUwACAAAAQIIpAAEAAAAgwRSAAAAAAJBgCkAAAAAASDAFIAAAAAAkmAIQAAAAABJMAQgAAAAACaYABAAAAIAEUwACAAAAQIIpAAEAAAAgwRSAAAAAAJBgCkAAAAAASLCiXAdoSnPmzIkHHnggXn311Zg3b16k0+no2rVrbLPNNnHooYdGt27dVpq/8MIL4/XXX8/4nBdffHFsvfXW2QsNAAAAAGshbwrAd999Ny655JKoqKiIVCoVnTt3jqVLl8bMmTNj5syZ8eyzz8bFF18cm2yySc1jPv/88ygoKIh11lmn1udt06ZNU8QHAAAAgDWSFwXgsmXL4k9/+lNUVFTEwIED47TTTosePXpERMSHH34YV199dcyYMSOuuOKKuP7666OoqChWrFgRc+bMie7du8cNN9yQ4+8AAAAAANZMXtwD8MUXX4z58+dH+/bt45xzzqkp/yIi+vTpE2effXYUFBTErFmzYurUqRERMXv27Kiurs549h8AAAAANHd5UQC+8847ERHxve99L0pLS1c5vv7669cUfe+9915EfH35b0QoAAEAAABo0fKiAJw/f35ERHTv3r3WmYKCr/9VLF++PCL+rwDs2bNnltMBAAAAQPbkxT0Af/Ob30RVVVW0atVqtcc//fTTmDlzZkRE9O7dOyIiZs2aFRER6XQ6rr766njjjTdi4cKFUVpaGptttlkMHjw4tt1226b5BgAAAABgDeVFAVhcXFzrsblz58af/vSnqK6ujtLS0th9990j4v/OABwzZkxERHTs2DHat28f5eXl8fLLL8fLL78cgwYNipNPPjlSqVT2vwkAAAAAWAN5UQCuTjqdjieffDLGjBkTixYtiqKiohg5cmR06NAhIv7vDMD+/fvHySefHBtuuGFERMybNy/uvPPOeOqpp+KRRx6Jbt26xeGHH56rbwMAAAAAMsrLAvCDDz6Im2++Od5///2IiOjWrVucccYZMWDAgJqZYcOGRVVVVey4444rXTrcpUuXGDlyZFRVVcWzzz4b9957bxx88MFRVJSX/yoBAAAAaOZS6XQ6nesQTWXx4sVx2223xeOPPx7pdDqKioriwAMPjKOOOipKSkoa9Fxvv/12nHvuuRERce2118ZGG2202rmxY8fGuHHjan2eI444IoYPH96g125uUqlUFBQURHV1deTR24l6KigoiFQqFel0Oqqrq3Mdh2bG/iAT+4NM7A8ysT/IxP6gLnYImTSHHVJYWNjgx+TNaWufffZZXHTRRTWX9u66665x/PHHr/Gn/Hbs2LHmx8uWLat1rqKiImbPnl3r8crKyjX6hWuOvvkkZVidVCqVmPc6jc/+IBP7g0zsDzKxP8jE/qAudgiZtLQdkhcF4FdffVVT/nXo0CHOOOOM2G677WqdnzJlSvzrX/+K3r17x8EHH7zamRkzZtT8uEePHrU+V2lpaXTv3r3W4yUlJVFVVVWP76L5ag7tN82Xvz0jE/uDTOwPMrE/yMT+IBP7g7rYIWTSHHaIMwBr8eijj8asWbOiTZs2cdFFF0WfPn0yzi9dujQef/zxKC0tjX322SfatWu3ysyECRMiImKLLbaITp061fpcw4YNi2HDhtV6fO7cuVFeXl6/b6SZKiwsjLKysliwYEGLLzNpfGVlZVFYWBjV1dUt/r1O47M/yMT+IBP7g0zsDzKxP6iLHUImzWGHdO3atcGPaVnnK66h559/PiIiDjzwwDrLv4iInXbaKcrKyqKioiIuueSSlc72W7RoUVx//fXx7rvvRiqVyljuAQAAAECuJf4MwHQ6HR999FFERDz99NMxZcqUjPODBw+OAw44IH7729/GpZdeGu+99178/Oc/j7KysmjVqlXMnTs3qqurI5VKxYknnhgDBw5sim8DAAAAANZI4gvARYsWxYoVKyLi68tt67Jw4cKIiOjXr19cd9118Y9//CNefvnlmDVrVqRSqejevXv069cvDjjggHqdTQgAAAAAuZT4ArBDhw419+trqLKyshgxYkSMGDGicUMBAAAAQBPJi3sAAgAAAEC+UgACAAAAQIIpAAEAAAAgwRSAAAAAAJBgCkAAAAAASDAFIAAAAAAkmAIQACBLvvzyy7jxxhtjr732ij59+kS/fv3i+OOPj6eeeiqqq6tzHQ8AgDxRlOsAAABJ9PLLL8dxxx0X8+bNW+nrEydOjIkTJ8YPfvCDGDVqVLRr1y5HCQEAyBfOAAQAaGTTpk2LIUOGrFL+fdsTTzwRP/nJT5wJCABA1ikAAQAa2eWXXx6LFy+uc+7JJ5+MZ555JvuBAADIawpAAIBGNGvWrHjkkUfqPT9mzJgspgEAAAUgAECjev3116Oqqqre8y+//HIW0wAAgAIQAKBRLV26tEHzy5Yty1ISAAD4mgIQAKARrb/++lmdBwCAhlIAAgA0om222SY222yzes8fffTRWUwDAAAKQACARpVKpeLUU0+t12xZWZkCEACArFMAAgA0smOPPTZ+8pOfZJwpLS2N22+/PcrKypooFQAA+UoBCADQyFKpVPzxj3+Mq6++OjbddNOVjhUUFMTgwYNj4sSJsfPOO+coIQAA+aQo1wEAAJIolUrFsGHDYujQofHqq6/Gp59+Gq1bt45tttkm1llnnVzHAwAgjygAAQCyKJVKxXbbbRfbbbddrqMAAJCnXAIMAAAAAAmmAAQAAACABFMAAgAAAECCKQABAAAAIMEUgAAAAACQYApAAAAAAEgwBSAAAAAAJJgCEAAAAAASTAEIAAAAAAmmAAQAAACABFMAAgAAAECCKQABAAAAIMEUgAAAAACQYApAAAAAAEgwBSAAAAAAJJgCEAAAAAASTAEIAAAAAAmmAAQAAACABFMAAgAAAECCKQABAAAAIMEUgAAAAACQYApAAAAAAEgwBSAAAAAAJJgCEAAAAAASTAEIAAAAAAmmAAQAAACABFMAAgAAAECCKQABAAAAIMEUgAAAAACQYApAAAAAAEgwBSAAAAAAJJgCEAAAAAASTAEIAAAAAAmmAAQAAACABFMAAgAAAECCKQABAAAAIMGKch0AgIb7+OOP44MPPohUKhV9+/aN9dZbL9eRIO989NFH8dFHH0VBQUH0798/1llnnVxHAgCA1VIAArQgkydPjquvvjomT55c87VUKhV77713nHXWWbH99tvnMB3khyeeeCKuueaa+Oc//1nztYKCgvjRj34Uv/rVr2KrrbbKYToAAFhVoxeAd9xxxxo/tqCgINq2bRvdunWLTTfd1N+kA3zL2LFj48wzz4x0Or3S19PpdDz55JPx7LPPxo033hgHH3xwjhJC8t10001x/vnnr/L16urqmDRpUjz99NMxevTo+NGPfpSDdAAAsHqNXgCOGDEiUqlUozzXxhtvHD/5yU/irLPOiqIiJysC+etf//pXnHXWWauUf9+2YsWKOPXUU6Nv376x2WabNWE6yA+TJ09ebfn3bUuXLo2TTjopnnvuudhggw2aKBkAAGSWlQ8BSafTjfK/jz76KM4999zYYYcdYubMmdmICtAi3HDDDVFdXV3n3LJly+Lmm29ugkSQf6677rp6zVVWVsaYMWOynAYAAOqv0QvAjz/+OJ577rno1atXRET07NkzzjnnnHj44YfjzTffjGnTpsWUKVPijjvuiKOOOiqKi4sjlUrF5ptvHg8++GA8+OCDMWrUqPjlL38ZvXr1inQ6HW+88UYMGTIkVqxY0dhxAZq9hQsXxsMPP1zv+fHjx8eyZcuymAjyz6xZs+Kpp56q9/xf//rXjGfsAgBAU2r062q7du0a+++/f3z++edx4IEHxtixY6N9+/YrzfTp0yd22mmnGDZsWEybNi2OOOKIeOedd+Kiiy6K559/Plq3bh0REZdddln85Cc/ib/+9a8xderU+Pvf/x5HHXVUY0cGaNY+++yzBv0FSGVlZcyfPz969uyZxVSQX/7zn/80qNCbP39+VFRURLt27bKYCgAA6qfRzwAcNWpU/O///m+sv/768be//W2V8u+7Nttss3j00UejtLQ0Xn311bj66qtrjrVt2zZuu+22WH/99SMiYty4cY0dF6DZa9WqVZM8Bqjdmvw35f7FAAA0F41eAN51112RSqXi6KOPjrZt29brMeuss04cddRRkU6n45577lnpWKtWreLwww+PdDod77zzTmPHBWj2evfuHV27dq33/IYbbhidO3fOYiLIP5tuummDzubr379/tGnTJouJAACg/hq9APzwww8jImLddddt0OP69u0bEV/fQ/C7vvkUvc8//3wt0wG0PK1atYqhQ4fWe3748OGN9mnswNdKSkoadBuSESNGZC8MAAA0UKMXgN/8n85PPvmkQY9bsmRJRMRqb1y/fPnylZ4bIN+cfPLJNR+ulMkmm2wSw4cPb4JEkH9OO+206NatW51z/fr1iyFDhjRBIgAAqJ9GLwAHDBgQ6XQ6/vrXv8ZXX31Vr8ek0+m4//77IyJi4403XuX4lClTIuLry9oA8lG3bt3i3nvvjd69e9c6s9lmm8X48ePrvPcqsGbWXXfduOeee2KdddapdWbAgAFx9913R0lJSRMmAwCAzBq9APzmkpdZs2bFIYccEvPnz884X11dHWeeeWa8+uqrkUql4uCDD17p+AMPPBATJkyIVCoVe++9d2PHBWgxNt1003j22Wfjv/7rv2LgwIHRtm3bKCkpie9973vx3//93/HEE0/UfGgSkB0DBgyIF154IS677LKa+/yVlJTEjjvuGDfccENMmjTJJ3ADANDspNLpdLoxnzCdTsdee+0Vzz33XKRSqWjfvn0MGTIkdt9999hggw2iU6dOkUql4osvvoiXX3457rjjjnj//fcjnU5Hly5d4v3334/OnTvHl19+GYMGDYp//vOfkU6no6ioKN58883YYostGjNuzs2dOzfXEdZaYWFhlJWVRXl5eVRVVeU6Ds1MWVlZFBYWRlVVVZSXl+c6Ds2M/UEm9geZ2B9kYn+Qif1BXewQMmkOO6QhHxL5jaLGDpFKpeLBBx+MwYMHx/PPPx8LFy6MW2+9NW699dZaH5NOp6Nt27Zxzz331HxyZUVFRUydOrVm5g9/+EPiyj8AAAAAyLZGLwAjItq3bx/PPvts/Pd//3dcffXV8emnn2ac32uvveKaa66JLbfccpVj22+/fZx99tlx6KGHZiNqzqVSqSgoaPQrsZtUYWHhSv+E2niP8F32B/XlPcJ32R/Ul/cI32V/0BDeJ3xXS90hjX4J8Hel0+l46aWX4qWXXopPP/00Fi5cGK1atYpOnTrF5ptvHt///vdX+8Ef1dXVsWzZsmjTpk024+VcZWWlG4UDAAAAkDVZLwDJbN68eYk4A7BDhw6xcOFC99BgFR06dKi5f8bChQtzHYdmxv4gE/uDTOwPMrE/yMT+oC52CJk0hx1SVlbW4Mdk5RLg71q8eHG8/vrrMXfu3Pjqq6+iU6dO0blz5xgwYEDen/2WTqcT85tOVVVVYr4XssP7g9rYH9TF+4Pa2B/UxfuD2tgf1If3CLVpaTskqwXgvffeG9dee21MnTo1qqurVzleWFgY2267bZx44olxwgknRFFRk/SRAAAAAJA3snLt6dKlS+Pwww+Po446KqZMmRJVVVWRTqdX+d+KFSvi5ZdfjlNOOSX69u0b77//fjbiAAAAAEDeysopd0OGDIkHH3yw5ucbb7xx7L333rHBBhtEp06dYsmSJTFz5sx4+eWX48UXX4x0Oh0fffRR7LrrrjFlypTYdNNNsxELAAAAAPJOoxeAd999dzz44IORSqVinXXWiRtuuCEOPPDAWuc//PDD+NnPfhZPPvlkzJs3L0466aR45plnGjsWAAAAAOSlRr8E+JZbbomIiNatW8fTTz+dsfyLiOjTp09MmjQpfvSjH0VExOTJk+Ott95q7FgAAAAAkJcavQB87bXXIpVKxVFHHVXvS3kLCwvj6quvrvn5Cy+80NixAAAAACAvNXoBuHTp0oiI2HLLLRv0uL59+0aHDh0iImLBggWNHQsAAAAA8lKjF4AbbbRRREQsWrSoQY9Lp9OxZMmSiIhYZ511GjsWAAAAAOSlRi8ADzvssEin0zFp0qQGPe7555+P5cuXR0FBQey6666NHQsAAAAA8lKjF4C//OUvo1u3bvHSSy/FFVdcUa/HLF68OEaOHBkREUOGDImNN964sWMBAAAAQF5q9AKwc+fO8Y9//CM6deoU5557buy3334xceLEqKioWGV28eLF8be//S222267eP3112OvvfaKUaNGNXYkAAAAAMhbRY39hDvssENERJSUlER5eXk8/vjj8fjjj0dhYWGst9560alTpyguLo558+bFp59+GitWrIh0Oh2pVCqmTZsWAwYMqPW5U6lUfPTRR40dGQAAAAASq9ELwFdeeSVSqVTNz9PpdERErFixIqZPn17r49LpdMycOTPjc3/7eQEAAACAujV6Abj77rsr6gAAAACgmWj0AvCZZ55p7KcEAAAAANZQo38ICAAAAADQfCgAAQAAACDBGv0S4G977bXX4o033og5c+bEkiVL6v24Cy+8MIupAAAAACB/ZKUAnDx5cvzkJz+JDz/8cI0erwAEAAAAgMbR6AXgW2+9Ffvtt1989dVXkU6nG/x4nyAMAAAAAI2n0QvAyy67LJYsWRKpVCr222+/OPbYY6Nr166KPQAAAADIgUYvAJ977rlIpVKx7bbbxiOPPNLYTw8AAAAANECjF4Bz586NiIhDDz20sZ8agBYgnU7HZ599FgsXLozOnTtHjx49ch0JAAAgrxU09hN269YtIiLatGnT2E8NQDO2fPnyuP3222PPPfeMrbfeOnbfffcYMGBADBo0KO6///41ui8sAAAAa6/RC8A99tgj0ul0PPnkk4391AA0U5WVlXHsscfGr371q3j33XdXOvbyyy/HT3/60/jFL34RVVVVOUoIAACQvxq9ADzjjDOiqKgoJk2aFOPHj2/spwegGfrVr34VzzzzTMaZe+65J6644oqmCZRQ6XQ6qqurcx2DLPDrCgBANjV6AbjddtvF1VdfHRERxxxzTJx44onx8MMPx//+7//Gp59+Wq//AdBy/Pvf/673X/jcdNNNsXDhwiwnSpbly5fH/fffHwcddFCst9560bNnz9h2223jiiuuiFmzZuU6Hmvhf//3f+M3v/lNbLHFFtGjR4/YYIMNYsSI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jRnvY3fiiSfGhRde2ISpcqukpCTuvvvu2GqrrWqd2WijjeLee++Nrl27NmEyAACgsRTlOgAANKVDDz00dtppp7jzzjvj/vvvjzlz5kRpaWnsueeeccIJJ8TWW2+d64hNrkePHjFx4sSYOHFi3HHHHfHOO+9EdXV19OnTJ4477rg4+OCDo23btrmOCQAArKFUOp1O5zpEPps7d26uI6y1wsLCKCsri/Ly8qiqqsp1HJqZsrKyKCwsjKqqqigvL891HJoZ+4NM7A8ysT/IxP4gE/uDutghZNIcdsiaXJnjEmAAAAAASDAFIAAAAAAkmAIQAAAAABJMAQgAAAAACaYABAAAAIAEUwACAAAAQIIpAAEAAAAgwRSAAAAAAJBgCkAAAAAASDAFIAAAAAAkmAIQAAAAABJMAQgAAAAACaYABAAAAIAEK8p1gKY0Z86ceOCBB+LVV1+NefPmRTqdjq5du8Y222wThx56aHTr1m2Vx7z99ttx3333xccffxyLFi2Kzp07x3bbbReHHHJI9OjRIwffBQAAAADUX94UgO+++25ccsklUVFREalUKjp37hxLly6NmTNnxsyZM+PZZ5+Niy++ODbZZJOaxzz00ENx8803R0RE69ato1OnTjF37tx4+OGH45lnnokLLrgg+vXrl6tvCQAAAADqlBcF4LJly+JPf/pTVFRUxMCBA+O0006rOXvvww8/jKuvvjpmzJgRV1xxRVx//fVRVFQU77//fowaNSoiIo488sg46qijori4OBYuXBjXX399TJkyJf70pz/FX/7yl2jXrl0uvz0AAAAAqFVe3APwxRdfjPnz50f79u3jnHPOWenS3T59+sTZZ58dBQUFMWvWrJg6dWpERIwbNy7S6XR873vfi+OOOy6Ki4sjIqJDhw4xcuTI6NixY8yfPz8mTpyYk+8JAAAAAOojLwrAd955JyIivve970Vpaekqx9dff/1YZ511IiLivffei8WLF8cbb7wRERGDBw9eZb5Nmzax8847R0TElClTshUbAAAAANZaXhSA8+fPj4iI7t271zpTUPD1v4rly5fH22+/HdXV1VFQUBADBgxY7Xzfvn0jIuLjjz+O5cuXN3JiAAAAAGgceXEPwN/85jdRVVUVrVq1Wu3xTz/9NGbOnBkREb17944ZM2ZERETXrl2jdevWq31Mz549IyKiuro6vvjii1hvvfWykBwAAAAA1k5enAFYXFwcbdu2jaKiVfvOuXPnxp/+9Keorq6O0tLS2H333WPRokUREdGxY8dan7N9+/Y1P66oqGj80AAAAADQCPLiDMDVSafT8eSTT8aYMWNi0aJFUVRUFCNHjowOHTpEZWVlREStZwxGxEplYlVVVdbzAgAAAMCayMsC8IMPPoibb7453n///YiI6NatW5xxxhk19/srLCyMiIhly5bV+hzfPlbbZcIAAAAAkGt5VQAuXrw4brvttnj88ccjnU5HUVFRHHjggXHUUUdFSUlJzdw3l/dmurR38eLFNT/u3LlzrXNjx46NcePG1Xr8iCOOiOHDhzfk22h2UqlURHx9yXQ6nc5xGpqbbz5gp6CgIMrKynKchubG/iAT+4NM7A8ysT/IxP6gLnYImbTUHZI3BeBnn30WF110UcyaNSsiInbdddc4/vjjaz7M49vWXXfdiIiYM2dOLFu2LIqLi1eZ+eKLLyIiorS0NONCqKioiNmzZ9d6vLKysuaMw5bumyUJq5NKpRLzXqfx2R9kYn+Qif1BJvYHmdgf1MUOIZOWtkPyogD86quvasq/Dh06xBlnnBHbbbddrfN9+/aNiIgVK1bEtGnTai4N/rb33nsvImK1x76ttLQ0unfvXuvxkpKSFn8PwVQqFQUFBVFdXd2i2m+aRkFBQaRSqUin01FdXZ3rODQz9geZ2B9kYn+Qif1BJvYHdbFDyKQ57JA1KabzogB89NFHY9asWdGmTZu46KKLok+fPhnne/bsGZtttllMmzYtJk6cuErJt3Dhwpg8eXJEROy1114Zn2vYsGExbNiwWo/PnTs3ysvL6/mdNE+FhYVRVlYWCxYsaPFlJo2vrKwsCgsLo7q6usW/12l89geZ2B9kYn+Qif1BJvYHdbFDyKQ57JCuXbs2+DEt63zFNfT8889HRMSBBx5YZ/n3jaFDh0YqlYrJkyfH+PHja35RZ82aFZdccklUVFTEFltsETvvvHPWcgOQ39LpdHz00Ufx6quvxr///W9nKQAAAGsk8WcAfvN/niIinn766ZgyZUrG+cGDB8cBBxwQ22yzTQwdOjTGjh0bd955Z9x7773Rrl27mDt3bqTT6ejZs2eceeaZNTd/BIDGsmzZsrjtttti9OjRNb+HRXx9i4qf/OQnMXToUPejAQAA6i3xBeCiRYtixYoVEfH15bZ1WbhwYc2PhwwZEn369IkJEybEhx9+GAsWLIhevXrFLrvsEgcffHB06NAha7kByE+VlZVx3HHHxXPPPbfKsffeey/OOuusePzxx+PWW29d7YdUAQAAfFfiC8AOHTrEhAkT1vjx2267bWy77baNmAgAavfrX/96teXft02aNCkuvPDCuPzyy5soFQAA0JLlxT0AAaAl+OSTT2L8+PH1mr3zzjtjzpw5WU4EAAAkgQIQAJqJcePG1fuDPpYtW1bvshAAAMhvCkAAaCa+/YEf9fHhhx9mKQkAAJAkCkAAaCYa+sm+PgkYAACoDwUgADQT/fv3b9D8gAEDspQEAABIEgUgADQTRx99dLRq1apes6WlpXH44YdnOREAAJAECkAAaCa6d+8eJ598cr1mTz/99GjXrl2WEwEAAEmgAASAZuT888+PY445JuPMSSedFCNHjmyaQAAAQIunAASAZqSwsDCuvfbaGDduXPzgBz+IgoKvf6suKiqKwYMHx3333Rd//OMfI5VK5TgpAADQUhTlOgAAsLJUKhU//OEP44c//GEsW7YsKioqol27dvW+PyAAAMC3KQABoBkrLi6O4uLiXMcAAABaMJcAAwAAAECCOQMQAIAmU11dHVOnTo3p06dHUVFRbL311rHZZpvlOhb18P7778cbb7wRK1asiI022ih23HHHmvuUAgDNmwIQAICsS6fTMXbs2Pjv//7vmD59+krHdtlllzj33HNjxx13zE04MpoyZUpcdtllMXXq1JW+vvHGG8cvf/nLOPbYY30wEQA0c/7KDgCArEqn03HBBRfEmWeeuUr5F/F1wXTooYfGxIkTmz4cGU2YMCEOP/zwVcq/iIh///vfMXLkyLj44otzkAwAaAgFIAAAWXXffffFTTfdlHFm+fLlcfLJJ8d//vOfJkpFXaZPnx6nnnpqrFixIuPcX/7yl5gwYUITpQIA1oQCEACArEmn03HdddfVa3bJkiVx2223ZTcQ9TZmzJhYunRpvWZvuOGGLKcBANaGAhAAgKyZNm1avPXWW/Wev+eee7KYhoYYP358vWdfeeWV+Oijj7KYBgBYGwpAAACyZubMmQ2a//zzz6O6ujpLaaivZcuWxZw5cxr0mM8//zxLaQCAtaUABAAga1q3bt3geZ8om3tFRUVRWFjYoMc09NcaAGg6CkAAALJm4MCBUVJSUu/5nXbaSQHYDBQUFMSOO+5Y7/n27dtHv379spgIAFgbCkAAALKmffv2ccQRR9R7fsSIEdkLQ4M05NdiyJAhUVpamr0wAMBaUQACAJBVZ511VnTv3r3OuT322CP233//JkhEfRx44IHx/e9/v865ddZZJ0aOHJn9QADAGlMAAgCQVb169Yr77rsvevfuXevMPvvsE7fddluD7ztH9hQVFcWdd94Ze+65Z60zG264Ydx3333Rs2fPpgsGADRYUa4DAACQfJtvvnk8//zzMWHChBg3blxMnz49ioqKYuutt44TTjghvv/977v3XzPUvn37uOeee2Ly5Mlx2223xRtvvBErVqyIjTbaKIYOHRoHHnhgtGnTJtcxAYA6KAABAGgSbdu2jaOOOiqOOuqoXEehAVKpVOy+++6x++675zoKALCGXAIMAAAAAAmmAAQAAACABHMJMAAATWb+/Plx3333rXQPwEGDBkVxcXGuowEAJJYCEACArFu6dGlcdNFFceedd8bSpUtXOtatW7c477zzYujQoTlKBwCQbApAAACyavny5TF8+PB48sknV3t8zpw5MXLkyPjyyy/j5z//eROnAwBIPvcABAAgq0aNGlVr+fdtF110UbzzzjtNkAgAIL8oAAEAyJrq6uoYPXp0vecbMgsAQP0oAAEAyJq33norPvnkk3rPP/jgg1lMAwCQnxSAAABkzbx58xo0X15eHtXV1VlKAwCQnxSAAABkTfv27Rs0X1paGgUF/ogKANCY/OkKAICsGThwYHTt2rXe8/vss08W0wAA5CcFIAAAWdO6desYNmxYvedPPPHELKYBAMhPCkAAALLq9NNPj/79+9c5N2LEiNhll12aIBEAQH5RAAIAkFXt2rWLv//977Hnnnuu9nhRUVGcdtppcfnllzdtMACAPFGU6wAAACRfly5dYvz48fHmm2/GuHHj4pNPPomioqLYeuutY+jQodGzZ89cRwQASCwFIAAATWbgwIExcODAXMcAAMgrLgEGAAAAgARTAAIAAABAgikAAQAAACDBFIAAAAAAkGAKQAAAAABIMJ8CDABATlVXV8dTTz0VL7zwQlRWVkbPnj3j0EMPjQ033DDX0QAAEkEBCABAzjz55JNx9tlnx/Tp01f6+mWXXRb77bdfXHXVVdG1a9fchAMASAiXAAMAkBOPPPJIDB06dJXyLyIinU7HxIkT46CDDor58+c3fTgAgARRAAIA0OQWLFgQP//5z6Oqqirj3AcffBAXXnhhE6UCAEgmBSAAAE3ub3/7WyxevLhes/fff3/Mmzcvy4kAAJJLAQgAQJN76KGH6j27bNmyeOyxx7KYBgAg2RSAAAA0uYbe16+8vDxLSQAAkk8BCABAk+vQoUOD5tu3b5+lJAAAyacABACgyf3gBz+o92xBQUHsvffeWUwDAJBsCkAAAJpUVVVVDB48OFq1alWv+f322y/WXXfdLKcCAEiuolwHAAAgP0yfPj1GjRoVd999dyxYsKBej+nevXtceumlWU4GAJBsCkAAALLusccei5/85CexZMmSej9mwIABceutt8b666+fxWQAAMmnAAQAIKvefPPN+PGPfxxLly7NONeuXbvYYYcdYt11143DDz88dtlll0ilUk2UEgAguRSAAABk1VVXXVVn+RcRsXjx4hg8eHAcf/zxTZAKACB/+BAQAACy5osvvohJkybVe/7222/PYhoAgPykAAQAIGumTZsWVVVV9Z5/5513Ip1OZzERAED+UQACAJA11dXVDZpX/gEAND4FIAAAWbPJJps0aL5Pnz4++AMAoJEpAAEAyJr11lsv9tprr3rPH3fccVlMAwCQnxSAAABk1emnnx4FBXX/sbNHjx5xzDHHNEEiAID8ogAEACCrvv/978dVV12VsQTs1q1b/O1vf4uOHTs2YTIAgPygAAQAIOuGDh0aDz/8cBx44IFRWFhY8/WOHTvGKaecEk8++WQMGDAghwkBAJKrKNcBAADID9/73vdi9OjRUV5eHv/5z3+iqKgoNtpoo2jTpk2uowEAJJoCEACAJlVWVhZlZWW5jgEAkDdcAgwAAAAACeYMwBxLpVL1+lS85uyb+/h8+34+sDreI3yX/UF9eY/wXfm6Pz7++OOYMWNGFBcXR79+/aJDhw65jtTs5dt7hLrl6/5gzXif8F0tdYek0ul0Otch8lllZWWUlJTkOgYAAM3YhAkT4sorr4znn3++5mslJSUxdOjQOPfcc2PDDTfMXTgAoNlTAObYvHnzEnEGYIcOHWLhwoVRVVWV6zg0Mx06dIjCwsKoqqqKhQsX5joOzYz9QSb2B5nk0/648sor47LLLqv1eJcuXeLvf/97DBw4sAlTNW/2B5nk0/5gzdghZNIcdsia3EvZJcA5lk6nE/ObTlVVVWK+F7LD+4Pa2B/UxfuD2iR9f0yYMCFj+Rfx9V8oH3300TFlypRo3759EyVrOZL8/mDtJH1/0Di8R6hNS9shLfvUMwAASKh0Oh3XXHNNvWZnzZoV99xzT3YDAQAtlgIQAACaoXfeeSfeeuutes/fddddWUwDALRkCkAAAGiGpk+fntV5ACB/KAABAKAZKiwsbNB8UZHbewMAq6cABACAZmjLLbeMVCpV7/mtttoqi2kAgJZMAQgAAM3QeuutFz/84Q/rPT9ixIjshQEAWjQFIAAANFO/+c1vok2bNnXO7bDDDrHvvvs2QSIAoCVSAAIAQDO11VZbxe233x4lJSW1zmy//fZx5513ugcgAFArBSAAADRje++9d7z44otx5plnxjrrrBMRX39AyA477BA33HBD/OMf/4jOnTvnOCUA0Jz5a0IAAGjmevXqFeecc06cc845sWLFiigoKIiCAn+XDwDUjwIQAABaEJf6AgAN5a8NAQAAACDBFIAAAAAAkGAKQAAAAABIMAUgAAAAACSYAhAAAAAAEkwBCAAAAAAJpgAEAAAAgARTAAIAAABAgikAAQAAACDBFIAAAAAAkGAKQAAAAABIMAUgAAAAACSYAhAAAAAAEkwBCAAAAAAJVpTrAAAAAM3N3LlzY9y4cfHMM89EZWVldO3aNQ455JA48MADo3Xr1rmOBwANogAEAAD4lltvvTV+97vfxdKlS1f6+qOPPhq///3v49Zbb40ddtghR+kAoOFcAgwAAPD/3XrrrXH22WevUv59Y9asWXHkkUfGG2+80cTJAGDNKQABAAAiYt68efG73/2uzrnKyso4++yzmyARADQOBSAAAEBEjBs3rtYz/77rlVdecRYgAC2GAhAAACAinnvuuazOA0CuKAABAAAioqKiIqvzAJArCkAAAICI6NatW1bnASBXFIAAAAARccghh9R7tqioKA444IDshQGARqQABAAAiIjBgwdHr1696jV78MEHR48ePbKcCAAahwIQAAAgIoqLi2P06NFRWlqacW6LLbaIyy+/vIlSAcDaUwACAAD8f9ttt108+OCDseOOO65yrFWrVnHkkUfGgw8+GJ06dWr6cACwhopyHQAAAKA52XLLLeOhhx6Kd955J5599tmoqKiIrl27xqBBg1z2C0CLpAAEAABYjf79+0f//v1zHQMA1ppLgAEAAAAgwRSAAAAAAJBgCkAAAAAASDAFIAAAAAAkmAIQAAAAABLMpwADADSCL774Iu6666549tlno6KiIrp16xaHHHJIHHzwwdGmTZtcxwMAII8pAAEA1tKNN94YF198cSxfvnylrz/xxBPx+9//PkaPHh077bRTjtIBAJDvXAIMALAWbrrpprjgggtWKf++MWfOnDjqqKPi9ddfb9pgAADw/ykAAQDW0Jw5c+Liiy+uc66ysjLOOeecJkgEAACrUgACAKyhcePGxbJly+o1+8orr8Qbb7yR5UQAALAqBSAAwBp67rnnGjQ/efLkLCUBAIDaKQABANZQZWVlVucBAKAxKAABANZQt27dsjoPAACNQQEIALCGDj300HrPtmrVKgYPHpzFNAAAsHpFuQ4AANBSDR48ONZdd92YOXNmnbOHHnpodO/evQlS5afq6up47bXXYu7cuVFSUhLbbLNNtGvXLtexAACaBQUgAMAaKi4ujtGjR8fhhx8eixcvrnWuf//+8cc//rEJk+WPqqqquPHGG+OWW26JTz75pObr7dq1i6OPPjrOOuus6Nq1aw4TAgDknkuAAQDWwrbbbhsPPfRQ7LzzzqscKy4ujqOPPjr+8Y9/RMeOHXOQLtlWrFgRJ5xwQlxwwQUrlX8REYsXL45bbrkl9t9///jPf/6To4QAAM2DMwABANZS//79Y8KECfHee+/Fs88+GxUVFdG9e/fYf//9nX2WRRdeeGE89NBDGWemT58ew4cPj8cffzwKCvzdNwCQnxSAAACNpG/fvtG3b99cx8gLixcvjuuuu65es2+++WZMnjw59thjjyynAgBonvw1KAAALc7DDz8cCxcurPf8X//61yymAQBo3hSAAAC0ON+9519jzwMAJIkCEACAFqdVq1ZZnQcASBIFIAAALc62227boPntttsuS0kAAJo/BSAAAC3ObrvtFptttlm9548//vgspgEAaN58CjAAAFm3YMGC+Nvf/hYTJ06ML7/8Mjp16hT77bdfHH300dGpU6cGP19BQUFceeWVccghh0Q6nc44e8IJJ8RGG220hslbtjlz5sS4cePiiSeeiEWLFkWXLl3ioIMOisMPPzzatWuX63gAQBNJpev6ExNZNXfu3FxHWGuFhYVRVlYW5eXlUVVVles4NDNlZWVRWFgYVVVVUV5enus4NDP2B5nYH8nx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S5e48MILmyARAOSvf/3rX/Hzn/88Nt100+jevXtsscUWcdZZZ8U777yT62iJ4wzA1ejWrVucccYZcdVVV8U///nPeOmll6JLly4R8XUBmE6no6ioKM4444wm+8Q6AAAax+9+97soKiqK//mf/1ntpTsbbrhh3HHHHbHRRhvlIB0AJF86nY7f//73cd1116309Xnz5sUdd9wRd9xxR5x33nkxcuTI3ARMIAVgLXbZZZfYeOON44EHHohXX3015s6dG0VFRbHuuuvGwIED46CDDopevXrlOiYAAA1UUFAQF1xwQQwfPjxuv/32mDp1aixdujR69eoVQ4YMiX333TdatWqV65gAkFhXXXXVKuXfd/3hD3+ITp06xYgRI5omVMKl0u56mlNz587NdYS19s317+Xl5e6hwSq+uX9GVVWV+2ewCvuDTOwPMrE/yMT+IBP7g7rYIdk1f/78GDhwYCxdurTO2bKysnjjjTeibdu2TZCsfprDDnEPQAAAAACarXvuuade5V9ERHl5eTz44INZTpQfFIAAAAAANIl//etfDZp/9dVXs5QkvygAAQAAAGgSy5cvb9C8S/UbhwIQAAAAgCax4YYbNmi+d+/e2QmSZxSAAAAAADSJo48+ut6zRUVFceSRR2YxTf5QAAIAAADQJLbYYov40Y9+VK/ZI488Mnr27JnlRPlBAQgAAABAk7nuuutiyy23zDizyy67xOWXX95EiZJPAQgAAABAk+nUqVNMmDAhzjjjjOjatetKx3r16hXnnntu3H333VFSUpKjhMlTlOsAAACQK3Pnzo1XX301vvrqq+jVq1dsu+22UVDg78gBINvatWsX5557bpx11lnx2muvxcKFC6OsrCy22WabKCpSVzU2/0YBAMg7H3/8cVxxxRUxYcKEWL58ec3XN9lkkzjllFNi+PDhkUqlcpgQAPJD69atY6eddsp1jMRTAAIAkFfefPPNOOKII6K8vHyVYx999FH8+te/jtdeey2uueYaJSAAkAiubwAAIG9UVlbGsGHDVlv+fdu4cePi5ptvbqJUAADZpQAEACBv3HffffH555/Xa/aGG26IqqqqLCcCAMg+BSAAAHnj7rvvrvfszJkz4/nnn89iGgCApqEABAAgb8yYMaNB859++mmWkgAANB0FIAAAeaNVq1YNmm/dunWWkgAANB0FIAAAeWP77bdv0Px2222XpSQAAE1HAQgAQN4YPnx4vWd333332GSTTbKYBgCgaSgAAQDIGzvssEMceOCBdc61adMmzj///CZIBACQfQpAAADyRiqViuuuuy4GDx5c60y7du3ijjvuiG222aYJkwEAZE9RrgMAAEBTatu2bYwZMyaee+65GDNmTPzzn/+MJUuWxLrrrhtDhgyJY489Nrp165brmAAAjUYBCABA3kmlUrHHHnvEHnvskesoAABZ5xJgAAAAAEgwBSAAAAAAJJgCEAAAAAASTAEIAAAAAAmmAAQAAACABFMAAgAAAECCKQABAAAAIMEUgAAAAACQYApAAAAAAEgwBSAAAAAAJJgCEAAAAAASTAEIAAAAAAmmAAQAAACABFMAAgAAAECCKQABAAAAIMEUgAAAAACQYApAAAAAAEgwBSAAAAAAJFhRrgMAAADN12uvvRb33HNPfPbZZ9G6devYaaed4sgjj4z27dvnOhoAUE8KQAAAYBWff/55/PSnP42pU6eu9PX7778/Lr744rjgggvixBNPzFE6AKAhFIAAAMBK5syZEwcddFBMnz59tccrKiri7LPPjiVLlsQvfvGLpg0HADSYewACAAArufTSS2st/77tkksuqdccAJBbCkAAAKBGeXl53HffffWara6ujjvuuCPLiQCAtaUABAAAakyePDm++uqres8/+uijWUwDADQGBSAAAFBj4cKFWZ0HAJqeAhAAAKjRuXPnBs2XlZVlKQkA0FgUgAAAQI3dd9892rVrV+/5Aw44IItpAIDGoAAEAABqtGvXLo455ph6zRYXF8dxxx2X5UQAwNpSAAIAACs555xzYsCAAXXOXXnllbHOOus0QSIAYG0oAAEAgJW0b98+7r///jjwwAMjlUqtcrxnz54xatSoOPbYY3OQDgBoqKJcBwAAAJqfTp06xejRo+PTTz+Ne++9Nz7//PMoLi6OnXfeOfbdd99o1apVriMCAPWkAAQAAGrVu3fvOPPMM3MdAwBYCy4BBgAAAIAEUwACAAAAQIIpAAEAAAAgwRSAAAAAAJBgCkAAAAAASDAFIAAAAAAkmAIQAAAAABJMAQgAAAAACaYABAAAAIAEUwACAAAAQIIpAAEAAAAgwRSAAAAAAJBgCkAAAAAASDAFIAAAAAAkmAIQAAAAABJMAQgAAAAACaYABAAAAIAEK8p1gHyXSqWioKBl97CFhYUr/RNq4z3Cd9kf1Jf3CN9lf1Bf3iN8l/1BQ3if8F0tdYek0ul0Otch8lllZWWUlJTkOgYAAAAACeUMwBxbsmRJLF26NNcx1kphYWF06NAhFi5cGFVVVbmOQzPToUOHKCwsjKqqqli4cGGu49DM2B9kYn+Qif1BJvYHmdgf1MUOIZPmsEPKysoa/BgFYI6l0+nE/KZTVVWVmO+F7PD+oDb2B3Xx/qA29gd18f6gNvYH9eE9Qm1a2g5p2TefAwAAAAAyUgACAAAAQIIpAAEAAAAgwRSAAAAAAJBgCkAAAAAASDAFIAAAAAAkmAIQAAAAABJMAQgAAAAACaYABAAAAIAEUwACAAAAQIIpAAEAAAAgwRSAAAAAAJBgCkAAAAAASDAFIAAAAAAkmAIQAAAAABJMAQgAAAAACaYABAAAAIAEUwACAAAAQIIpAAEAAAAgwRSAAAAAAJBgCkAAAAAASDAFIAAAAAAkmAIQAAAAABJMAQgAAAAACaYABAAAAIAEUwACAAAAQIIpAAEAAAAgwRSAAAAAAJBgCkAAAAAASDAFIAAAAAAkmAIQAAAAABJMAQgAAAAACaYABAAAAIAEUwACAAAAQIIpAAEAAAAgwRSAAAAAAJBgCkAAAAAASDAFIAAAAAAkmAIQAAAAABJMAQgAAAAACaYABAAAAIAEUwACAAAAQIIpAAEAAAAgwRSAAAAAAJBgCkAAAAAASDAFIAAAAAAkmAIQAAAAABJMAQgAAAAACaYABAAAAIAEUwACAAAAQIIpAAEAAAAgwRSAAAAAAJBgCkAAAAAASDAFIAAAAAAkmAIQAAAAABJMAQgAAAAACaYABAAAAIAEK8p1AAAAAACaj88//zzuuOOOmDBhQsybNy/atWsXe++9d5xwwgnRt2/fXMfLaNmyZfHggw/GnXfeGdOmTYtUKhX9+vWL448/Pvbff/8oKsrPKiw/v2sAAAAAVjF+/Pg444wzYunSpTVfmzdvXowZMybGjBkTp59+epx33nmRSqVymHL1Pv300zjmmGNi2rRpK3199uzZ8cwzz8TWW28dY8eOjR49euQoYe64BBgAAACAmDhxYvz85z9fqfz7rmuvvTb+/Oc/N2Gq+ikvL4/DDz98lfLv215//fUYMmRIVFRUNGGy5kEBCAAAAJDnqqur44ILLoh0Ol3n7FVXXRWzZ89uglT1N2rUqJg+fXqdc++++26MHTs2+4GaGQUgAAAAQJ57+umn45NPPqnX7PLly2PcuHFZTlR/K1asiDvuuKPe87fffnu9is4kUQACAAAA5LmXXnopq/PZ9Mknn8QXX3xR7/kPPvggvvzyy+wFaoYUgAAAAAB5btmyZQ2az3SfwKbW0OwRzSt/U1AAAgAAAOS5ddddN6vz2dSzZ88oKKh/xdW2bdvo3LlzFhM1P3lbAP773/+Ogw46KK6//vqMc1OnTo3zzjsvjjvuuDjyyCPj1FNPjdtvvz0WLFjQREkBAAAAsuvggw+O4uLies8fddRRWUzTMGVlZbHvvvvWe/7QQw9t0PeaBHlbAD722GN1zowZMyb++Mc/xltvvRXLli2L9u3bx2effRZ///vfY+TIkfGf//ynCZICAAAAZFe3bt1iyJAh9ZrdaqutYpdddslyooY55ZRT6jVXWFgYJ510UpbTND95VwCWl5fH+PHjY9KkSRnnnn/++bj//vujoKAgfvrTn8a4ceNi9OjRceutt0a/fv1i3rx5ccUVV0RVVVUTJQcAAADInj/84Q+x4447ZpxZb731YsyYMZFKpZooVf3ssssucckll2ScKSgoiKuvvjoGDBjQRKmaj7wpAO+555748Y9/HMOHD48777wzqqura51Np9M1H2e93377xQEHHBCFhYUREdGlS5f49a9/HUVFRfHJJ5/E888/3yT5AQAAALKppKQkxo8fH6effvoq98hr06ZNHHvssTFp0qRYf/31c5Qws1NOOSXuuOOO2GqrrVY5tsMOO8Tdd98dxxxzTA6S5V5RrgM0lQULFsSKFSuiU6dOERFRWVlZ66fETJ8+veby3gMOOGCV4126dImBAwfGq6++GlOmTIk99tgja7kBAAAAmkrbtm3j/PPPj1/96lfxwgsvxLx586J9+/ax0047RVlZWa7j1Wn//feP/fffP95666344IMPIpVKRd++fWOLLbbIdbScypsC8KSTTlrpGu9rrrkmnnrqqdXOvvXWWxHx9U0k11tvvdXObLHFFvHqq6/G+++/3/hhAQAAAHKoTZs2sc8+++Q6xhrbcsstY8stt8x1jGYjby4BbogZM2ZEROaPtF5nnXUiImL+/PmxdOnSJskFAAAAAA2lAFyNRYsWRUREx44da51p165dzY8rKyuzngkAAAAA1oQCcDUq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rVmzZk3a29uTxDmiQJcZM2ZkxowZR71+5ZVXJkm+9a1vZfz48X0VC6gSgwYNyurVq/PWW29l/PjxmTlz5mFrVqxYkfb29pRKpZx77rkVSAnvn6cAAz3qkUceSZJcccUVyj/gv9bc3JyPfvSjSZLbb789Tz31VMrlcpKDDwF58MEHc8sttyRJzjvvvJxyyikVywoAFEd9fX0uvvjiJMmyZcvy8MMPdz3p98CBA3n00Udz++23J0mmT59+yENCoJq4AxDoMeVyOc8//3ySZOXKlXnssce6XX/55Zdn9uzZfRENqALz5s3L5s2b89JLL2XhwoVpampKU1NTduzY0fWL+IQJE3LddddVOCkAUCRXXXVVNm/enPXr12fp0qVpbGzsOnf4zTffTHJw98FXvvKVCieFY6cABHrM66+/3nU+1/bt299z/d69e3s7ElBFTjjhhCxdujR/+tOf8vjjj6etrS07duzIoEGDctppp2XatGmZPn16amtrKx0VACiQxsbGLF68OCtXrsxDDz2UF154Idu2bcugQYNyxhlnpKWlJTNmzPA7CFWtVO7cXwMAAAAAFI4zAAEAAACgwBSAAAAAAFBgCkAAAAAAKDAFIAAAAAAUmAIQAAAAAApMAQgAAAAABaYABAAAAIACUwACAAAAQIEpAAEAAACgwBSAAAAAAFBgCkAAAAAAKDAFIAAAAAAUmAIQAAAAAApMAQgAAAAABaYABAAAAIACUwACAAAAQIEpAAEAAACgwOoqHQAAAI7FunXrsnz58iTJ7NmzM2XKlMoGAgDopxSAAABUpXXr1mXRokVJklGjRikAAQCOwhZgAAAAACgwBSAAAAAAFJgCEAAAAAAKTAEIAECvmTdvXkqlUkqlUn7/+98fcc2sWbO61nz3u9894po//OEPXWtOP/30lEqlfOELX+i6/tWvfjWlUimnnnpqb3wbAABVTQEIAECvmTlzZtfHjz322GHXOzo60tra2vX5I488csTXWbVqVZKkVCod8poAALw3TwEGAKDXXHTRRampqUlHR0ceffTRw64//fTT2b17d9fnTz75ZPbv358BAwYcsq6zADzrrLNy9dVX5+yzz05ra2vuuuuuJMmcOXPS0tKSwYMH9943AwBQpdwBCABArxk6dGimTJmSJFm7dm327dt3yPXOUrBUKiVJ9u3blyeffPKQNXv27Mm6deuSJJdcckmmTJmSa665JtOnT+9a09LSkmuuuSaf//zne+tbAQCoWgpAAAB6VeeW3f3792fNmjWHXOvc8nv55Zenrq7ukH9795qOjo4kBwtAAAD+NwpAAAB61btLu//cBtxZ9n384x/vulPwPwvA1atXJ0kaGxvT0tLSm1EBAApJAQgAQK86//zzM2jQoCSHFoAvv/xyNm/enOTgFt4LLriga025XO5a13n+X0tLSxoaGvoqNgBAYSgAAQDoVfX19V3l3pGe+Dt06NBMnDixa82uXbvyzDPPJEneeOONrF27NontvwAAx0oBCABAr+ss77Zv356NGzcm+XcB+LGPfSylUilTp05NbW1tkuThhx9Okjz22GN55513DnkNAAD+NwpAAAB6XeeDQJJ/bwPuLACnTZuWJBk8eHA+/OEPH3Ktc/vvqFGjctZZZ/VZXgCAIlEAAgDQ6yZMmJCTTz45ycECcO/evVm/fn2SHPJgj85twJ0FYOcDQN5dIAIA8L9RAAIA0Cc6S7xHH300ra2t6ejoSGNjY84555yuNZ0F4ObNm7Nx48Y88cQTSWz/BQB4PxSAAAD0ic4CcOPGjVm+fHmS5Lzzzkt9fX3XmpaWltTUHPwVdenSpdm/f39KpZI7AAEA3gcFIAAAfeLiiy9OqVRKktx5551JDt3+myTHH398zj777CTJXXfdlSSZNGlSRo4cedjrDRgwoOvj119/vRcSAwAUgwIQAIA+0dzc3FXu7du3L8nhBWDy723Ab7/9dpKjb//tPFMwSX7605/m5ptvzh133NGTkQEACkEBCABAn3l3mVdXV5fzzz//sDWdBeCRvubdzj///Jx00klJkldeeSU33nhjFi1a1INpAQCKQQEIAECfefdZfpMnT05TU9Nha1paWrq2Cjc2Nh7xLsEkqa+vz29+85ucc845GTBgQBobG3PGGWf0TnAAgCpWKpfL5UqHAAAAAAB6hzsAAQAAAKDAFIAAAAAAUGAKQAAAAAAoMAUgAAAAABSYAhAAAAAACkwBCAAAAAAFpgAEAAAAgAJTAAIAAABAgSkAAQAAAKDAFIAAAAAAUGAKQAAAAAAoMAUgAAAAABSYAhAAAAAACkwBCAAAAAAFpgAEAAAAgAJTAAIAAABAgSkAAQAAAKDAFIAAAAAAUGAKQAAAAAAoMAUgAAAAABSYAhAAAAAACkwBCAAAAAAFpgAEAAAAgAJTAAIAAABAgSkAAQAAAKDAFIAAAAAAUGAKQAAAAAAoMAUgAAAAABSYAhAAAAAACkwBCAAAAAAFpgAEAAAAgAJTAAIAAABAgf0frPNrfCZThFwAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": { "image/png": { "height": 480, "width": 640 } }, "output_type": "display_data" }, { "data": { "text/plain": [ "
" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(\n", " ggplot(mtcars, aes(\"wt\", \"mpg\"))\n", " + geom_point()\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "[plotnine.mapping.aes](https://plotnine.readthedocs.io/en/stable/generated/plotnine.mapping.aes.html) erstellt ästhetische Zuordnungen mit *Meilen je Gallone* `mpg` auf der y-Achse und *Gewicht der Autos* `wt` auf der x-Achse. [plotnine.geoms.geom_point](https://plotnine.readthedocs.io/en/stable/generated/plotnine.geoms.geom_point.html) erstellt dann ein Streudiagramm." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "3. Farbliche Unterscheidung der Variablen" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "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9frzCNTONE2dccYZWrJkidavX6+TTjop0i1FxPr169W9e3cNHz7cf9m5YLJ8AJiamtroH1xGRoauvfZaXXvttcFtCgAAAAAAWEZlZaUGDx6s7du3R7qVGk2bNk1bt26VJD344INyOJpOHPTKK69o0aJFuuKKK2I2/JMO32NizJgxeuuttzR79mwNHTo0qMdvOmccAAAAAAAgCi1YsMAf/rVv314333yzkpKSItzVL6ZNm6Z58+ZJkv7whz80mQCwtLRU9913nyTp3nvvjXA3kXf//ffrrbfe0l133aVzzz1XTqczaMeOiZuAAAAAAAAAhMquXbv8j++77z79/ve/1y233BLBjqLD448/rl27duncc89V7969I91OxJ188sk6//zztX79ej399NNBPTYBIAAAAAAAwHGorKz0Pz7xxBMj2En0OHDggP7xj39Iku68884Id9N03HHHHZKkyZMnq6CgIGjHJQAEAAAAAAAIkvj4+Ei3EBX++c9/qrCwUK1atdKwYcMi3U6TMWzYMLVu3VoFBQX617/+FbTjEgACAAAAAAA0wrXXXivDMPTrX//a/9w555wjwzBkGEaVWp/Pp9dff10jRoxQixYt5HQ6lZycrC5duujaa6/VF198EdBrLliwQOPHj1fr1q0VFxen9PR0DRgwQH/5y1+qzRhr27atDMPwX/9PkhISEmQYhiZNmlTj8d99912NGjVKrVq1UlxcnLKysjR48GA9+eSTKisrq7Wvs88+W4Zh6Oyzz5YkrVu3TqNHj1ZGRka1n0V5ebmeffZZSdKvfvUr2e32Wo/r8/n04osv6swzz1RGRobS09PVv39/TZkyRcXFxdq6dav/5z1t2rRaj5Ofn69JkyapX79+ysjIUHJysnr06KHf//732rhxY637Hd1HY8/fpEmTqvxOFBQU6I477tCJJ54om82mr776yl9rs9l01VVXSZKee+45eb3eensLRNO46iMAAAAAAIBF5eXlacSIEVq+fHmV5z0ejzZs2KANGzbof//7n8aOHatXX31VLper2jF8Pp/uuOMO/fvf/67yvNvt1pIlS7RkyRI9/fTTmjVrlk455ZQG91hQUKAxY8boyy+/rPL8/v37NX/+fM2fP19PPPGE3n33XfXv37/OY3366acaNWqUSktLa9z+ySefKD8/X5I0cuTIWo9TWFioSy65pEqAKUnffvutvv32W/33v//V888/X+97+/DDDzVhwgQdOHCgyvNr167V2rVr9dRTT+nhhx/WAw88UOP+wTh/R2zdulXnnXeeNm/eXGvNsGHD9Oijj2rnzp364osvdMEFF9T7HutDAAgAAOQ2K/Wt+zstci9Vnm+vbDJ0ov0EneE6TSc7e8pu1P6tLAAAQKyaMGGCBgwYoEWLFunll1+WJN11113q1KlTtboj4VHbtm01duxYtWzZUocOHdLq1av1/vvvy+126+2331b37t31xz/+sdpr/fa3v9Vzzz0nSUpKStJVV12lrl27qrCwUB988IGWL1+uvLw8XXzxxdqwYYPS09P1l7/8RUVFRXriiSf0448/SpL+9a9/yeFwVAnxysvLde655+q7776TJLVu3Vpjx45Vq1attH//fn3yySdavny5tm/frrPOOkvffPNNrTft2LFjh0aPHq3S0lINHTpUZ599thISEqrUzJgxQ5KUnJysU089tcbj+Hw+XXzxxZo/f74kKTc3V7/61a/Upk0b7dy5U2+88YY2bNigK664ovYTpMNh46hRo1RZWSmHw6FRo0bptNNOk8fj0apVqzRjxgyVlZXpwQcflNvt1p/+9KdqxwjG+Tvikksu0ebNm9WrVy9deumlysnJUYcOHarUDBgwQMnJySouLtaMGTOCEgAapmmax30UNNqRxLupstvtysjIUEFBQdCmnSL8MjIyZLfb5fV6g3oRUYQPYzH6NeVxuMe7T8+WvKB83/4at7eyn6ibk65Tmi01zJ01LYzD6NeUxyECwzi0BsZi9Av3WMzKygr5axyvadOm+ZcBz507178MVpK2bNmi9u3bS5LOOOMMzZkzp9p1AletWqVBgwapuLhYHTp00KZNm6ps//DDDzVixAhJhwOouXPnqm3btv7tpmlqwoQJeuWVVyRJf/nLX3T//ff7t5999tn+WXRlZWXVXv/ee+/VY489JunwjLzp06crMTGxSs0zzzyjW2+9VZLUqVMnrVu3rsrS3aNfw263680339To0aNr/Hm1adNG27dv16BBg/wB37GefPJJTZw4UZJ03nnn6f3336/SU0lJia644gp9+OGH/udeeuklXXvttf4/79+/X927d9eePXvUokULffzxx9WCyx9//FHnnXeetm/fLsMwtHr1anXv3t2/PRjnb9KkSVWCxbvvvlt/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0tLoAI3y5JNPZu7cuTnnnHPysY99bIdz999/f773ve9l2bJl2bRpU7q6unLyySfn13/91zNhwoRhTAwAAMC+pO3Ek7L1l4/t0mwxdlxajjx6iBO9ovWY45L29mTTpl2ab5t58hAnAhppxJ4BePvtt7/hzPXXX58vfOELWbx4cXp7ezNu3Lg8/fTT+fd///fMnTs3Tz311DAkBQAAYF/UevwJKSbst0uzo047PUXL8J2DU4walVGzundptjKp6+XCECitEVcAPv/887npppty66237nTunnvuyXe/+91UKpVccsklufHGG/PP//zPue6663LMMcdkzZo1ufrqq9PX1zdMyQEAANiXFK1t6fjwpSlGj9npXOv0GRl1xtnDlOoV7e96T1qOOmanM8XYcen40KUpqtVhSgU0woi5BPg73/lObr311qxevfoNZ+v1em688cYkyTnnnJPzzjuv/9jEiRPzyU9+MhdffHF+9atf5Z577snpp58+ZLkBAADYd7VMe1PG/sEfZdN/fS9bfvqTpFbrP1ZM2C+jTntHRp1+RorK8J9/U7S0pONDl2bzXXdk8713p/7i+lcOVqtpnT4j7e9+b6r7Txz2bMDwGjEF4Lp167J169bst99+SZINGzakt7d3wNmlS5f2X9776vJvm4kTJ2b69Ol5+OGHc9999ykAAQAARrBq1+R0XPSR1Navy9alTyZbtqSYsF9aDj284WfWFdVq2s88J6PmnJWtTzz+cgnY1paWQw5PZdy4hmYDhs+IKQAvvvjiXHzxxf2//+pXv5o777xzwNnFixcnSTo7O3PQQQcNOHPUUUfl4YcfzpIlSwY/LAAAAE2nMn5C2qbPaHSMARXValp/7ahGxwAaZMTdA3BXLF++PEkybdq0Hc4ccMABSZK1a9dm8+bNw5ILAAAAAHaXAnAAL774YpJkwoQJO5wZO3Zs/683bNgw5JkAAAAAYE8oAAfQ09OTJGlra9vhTMurHt/uScAAAAAA7KsUgAPYVu7t7NLeLVu29P+6vb19yDMBAAAAwJ4YMQ8B2R3j/u+TkLadCTiQl156KcnLZwl2dHTscO6GG27IjTfeuMPj73//+/PBD35wD5MOvaIokrx8OXS9Xm9wGvZUpVLp/2dnZ2eD07An7GLzs4fNzx42P3vY/OxhOdjF5mcXofkoAAdw4IEHJkmefvrpHc6sWrUqycsPCtn2P7+B9PT05Nlnn93h8Q0bNqTa4MfC74ptn6RpbkVRNMXHGztmF5ufPWx+9rD52cPmZw/LwS42P7sIzUMBOIBjjjkmSfLcc8/lueeeS1dX1+tmHn300STJscceu9O31dHRkcmTJ+/w+JgxY/bpewgWRZFKpZJareYnO02sUqmkKIrU6/XUarVGx2EP2MXmZw+bnz1sfvaw+dnDcrCLzW+4d1FRDHtPATiAt771rZk0aVJWr16dW2655XWX6D711FN55JFHkiRz5szZ6du68MILc+GFF+7w+OrVq/P888/vdeahUq1W09nZmXXr1u3TRSU719nZmWq1mlqttk9/vLFjdrH52cPmZw+bnz1sfvawHOxi8xvuXZw0adKQvwaUnfN1B1CtVvOBD3wgSTJv3rzMnz+//6caTz75ZP7yL/8ytVot3d3dOeKIIxoZFQAAAAB2yhmAO3D22Wfnsccey+23356//du/zXXXXZf29vasWbMmSfKWt7wll156aYNTAgAAAMDOKQB34vLLL8/06dPzX//1X1m6dGl6enpy8MEH5x3veEfOO++8jBo1qtERAQAAAGCnRmwBOHfu3MydO/cN52bPnp3Zs2cPfSAAAAAAGALuAQgAAAAAJaYABAAAAIASUwACAAAAQIkpAAEAAACgxBSAAAAAAFBiCkAAAAAAKDEFIAAAAACUmAIQAAAAAEpMAQgAAAAAJaYABAAAAIASUwACAAAAQIkpAAEAAACgxBSAAAAAAFBiCkAAAAAAKDEFIAAAAACUmAIQAAAAAEpMAQgAAAAAJVbU6/V6o0MAQ+uGG25IT09POjo6cuGFFzY6DoxI9hAazx7CvsEuAgw/BSCMAOeee26effbZTJ48Obfcckuj48CIZA+h8ewh7BvsIsDwcwkwAAAAAJSYAhAAAAAASkwBCAAAAAAlpgAEAAAAgBJTAAIAAABAiSkAAQAAAKDEWhodABh6F1xwQXp6etLR0dHoKDBi2UNoPHsI+wa7CDD8inq9Xm90CAAAAABgaLgEGAAAAABKTAEIAAAAACWmAAQAAACAElMAAgAAAECJeQowlNhzzz2XefPm5eGHH86aNWtSr9czadKkzJgxI+973/vS1dXV6IhQegsWLMj8+fOzdOnSvPTSSxkzZkwOOeSQdHd356yzzkq1Wm10RBhx1q5dmz/4gz/I+vXr88UvfjFHHXVUoyNB6S1YsCB/8zd/s9OZ008/PZ/4xCeGKRHAyKIAhJL6+c9/ns9//vPp6elJURTZf//9s3nz5qxYsSIrVqzIggUL8rnPfS6HH354o6NCaf393/99br/99iTJqFGjMnHixLzwwgtZvHhxFi9enLvvvjtXXXVV2traGpwURo56vZ6vfOUrWb9+faOjwIjyzDPPJEkmTpyY9vb2AWf233//4YwEMKIoAKGEent788UvfjE9PT2ZPn16rrjiikyZMiVJ8stf/jJf+cpXsnz58lx99dX5h3/4h7S0+F8BDLZFixbl9ttvT7VazaWXXpp3vvOdaW1tTV9fX2677bZcc801+elPf5rvfe97+c3f/M1Gx4UR4z/+4z/yk5/8pNExYMTZVgB+8pOfzDHHHNPgNAAjj3sAQgktWrQoa9euzbhx4/KZz3ymv/xLkiOOOCKf/vSnU6lUsnLlytx///0NTArldeuttyZJzj333JxzzjlpbW1NklSr1Zx77rl517velSR58MEHG5YRRprHH3883/zmN/PmN7+50VFgxNlWAB5wwAENTgIwMikAoYR+9rOfJUlmzpyZjo6O1x1/05ve1P/F16OPPjqs2WCkWLp0aZLk+OOPH/D4wQcfnCTZtGnTMCWCkW3jxo3567/+6xRF4R5j0AArV65Me3t7Ojs7Gx0FYERy3R+U0Nq1a5MkkydP3uFMpfJy/79ly5ZhyQQjzcUXX5xarZYjjzxywOOPPfZYkuSggw4azlgwYn3ta1/LM888k4985CM59NBDGx0HRpSNGzfmhRde6P/hFwDDTwEIJfSpT30qfX19/ZccvtayZcuyYsWKJHEZFAyR0047bbvf9/X1JXn56dzz58/PXXfdlba2trz//e9vRDwYURYsWJA777wzM2bMyPnnn9/oODDirFy5MkkyadKk3HzzzVmwYEGeeeaZVCqVTJs2LaeddlrOO++8jBo1qsFJAcpLAQgltLMniq5evTpf/OIXU6vV0tHRkdmzZw9jMhi5Pve5z+XHP/5x/+87Ojry53/+586GgCG2cuXK/OM//mPGjx+fj3/84ymKotGRYMTZdv+/hx56KA899FBGjRqV/fbbL2vWrMkTTzyRJ554IvPnz89nP/vZnV7BAsCecw9AGCHq9Xrmz5+fj3/841m2bFlaWloyd+7cjB8/vtHRYETo6upKV1dX/1O3e3p68ld/9Vf9lwIDg6+vry9f/vKXs2HDhlx++eXZf//9Gx0JRqRtBeDYsWPzh3/4h/nWt76Va6+9NjfddFM+9rGPpaOjIytWrMjnP//5/jPmARhczgCEEeDxxx/PNddckyVLliR5uYi48sorc+yxxzY4GYwcl19+eZKXC4mHHnoo119/ff83O9dee63LnmAIfOtb38ovfvGLvOtd78opp5zS6DgwYs2YMSNdXV057LDDtrv3bUtLS84555xMmTIlf/EXf5Ff/epXWbRo0etuowHA3lMAQom99NJL+frXv5477rgj9Xo9LS0tee9735vf/u3fzpgxYxodD0akarWak046KVOmTMkVV1yRdevW5YEHHkh3d3ejo0GpPProo7n55pszbdq0fPSjH210HBjRDjvssBx22GE7PD5jxoxMmTIlq1atyi9+8QsFIMAQUABCST399NO56qqr+m+6fNppp+Wiiy7K1KlTG5wMyu/RRx/NokWL0t7engsuuGDAmYMPPjgTJkzIunXr8uyzzw5zQii/xx57LLVaLStWrMhv/dZv7XDuU5/6VJLk5JNPzp/+6Z8OVzzgNSZMmJBVq1alt7e30VEASkkBCCW0adOm/vJv/PjxufLKK3PiiSc2OhaMGM8991zmzZuXoijyG7/xG2lvb3/dTL1ez9atW5Mko0ePHu6IUHrjxo3LtGnTdnh8xYoVSZLJkyentbU1EydOHK5oMKI8//zzueGGG5IkH/7wh9PR0fG6mW1lfRI/rAYYIgpAKKHbbrstK1euTHt7e6666qocccQRjY4EI8rRRx+doihSr9dz//335x3veMfrZh588MH09PQkiftxwhA444wzcsYZZ+zw+Pnnn58k+aM/+qMcddRRwxULRpyxY8fm7rvvzubNm3PUUUflrLPOet3M/Pnz09PTk6IoctJJJzUgJUD5eQowlNA999yTJHnve9+r/IMG6Orqyqmnnpokue666/Lwww+nXq8nefkhIHfccUe+/OUvJ0lOOeWUvPnNb25YVgAYSq2trTnzzDOTJNdee20WLlzY/6Tfvr6+3HvvvbnuuuuSJHPmzNnuISEADB5nAELJ1Ov1PPHEE0mSu+66K/fdd99O59/znvfkvPPOG45oMKJceumlWbZsWZYvX56rrroqHR0d6ejoyJo1a/q/8Tn66KPz8Y9/vMFJAWBoXXTRRVm2bFkWL16cL33pSxk9enT/fXA3btyY5OWz4S+55JIGJwUoLwUglMyLL77Yf1+x1atXv+H8+vXrhzoSjEj77bdfvvSlL+X73/9+7r///qxYsSJr1qzJ2LFjc+ihh2b27NmZM2dOqtVqo6MCwJAaPXp0Pv/5z+euu+7KnXfemSeffDLPPfdcxo4dmyOPPDLd3d0544wzfE4EGEJFfds1SQAAAABA6bgHIAAAAACUmAIQAAAAAEpMAQgAAAAAJaYABAAAAIASUwACAAAAQIkpAAEAAACgxBSAAAAAAFBiCkAAAAAAKDEFIAAAAACUmAIQAAAAAEpMAQgAAAAAJaYABAAAAIASUwACAAAAQIkpAAEAAACgxBSAAAAAAFBiCkAAAAAAKDEFIAAAAACUWEujAwAANJNHHnkk8+bNS5Kcd955mTlzZmMDAQDAG1AAAgDshkceeSSf/exnkyRTp05VAAIAsM9zCTAAAAAAlJgCEAAAAABKTAEIAAAAACWmAAQASufSSy9NURQpiiLf/e53B5w599xz+2f+5E/+ZMCZ//zP/+yfOfzww1MURT70oQ/1H/+93/u9FEWRQw45ZCj+NQAAYFAoAAGA0jnrrLP6f33fffe97nitVsuiRYv6f3/PPfcM+HYWLFiQJCmKYru3CQAAzcRTgAGA0nnnO9+ZSqWSWq2We++993XHf/rTn+aFF17o//2PfvSj9Pb2pq2tbbu5bQXgcccdl49+9KM5/vjjs2jRonzjG99IklxwwQXp7u7OuHHjhu5fBgAA9pIzAAGA0uns7MzMmTOTJA899FA2bdq03fFtpWBRFEmSTZs25Uc/+tF2M+vWrcsjjzySJDn77LMzc+bMXHbZZZkzZ07/THd3dy677LL8zu/8zlD9qwAAwF5TAAIApbTtkt3e3t48+OCD2x3bdsnve97znrS0tGz3Z6+eqdVqSV4uAAEAoFkpAAGAUnp1affay4C3lX3vfve7+88UfG0BePfddydJRo8ene7u7qGMCgAAQ0oBCACU0qxZszJ27Ngk2xeATz31VJYtW5bk5Ut4Tz/99P6Zer3eP7ft/n/d3d1pb28frtgAADDoFIAAQCm1trb2l3sDPfG3s7Mzxx57bP/M888/n5/97GdJkpdeeikPPfRQEpf/AgDQ/BSAAEBpbSvvVq9enSVLliR5pQB8+9vfnqIoctppp6VarSZJFi5cmCS57777snXr1u3eBgAANCsFIABQWtseBJK8chnwtgJw9uzZSZJx48blhBNO2O7Ytst/p06dmuOOO27Y8gIAwFBQAAIApXX00UfnoIMOSvJyAbh+/fosXrw4SbZ7sMe2y4C3FYDbHgDy6gIRAACalQIQACi1bSXevffem0WLFqVWq2X06NE58cQT+2e2FYDLli3LkiVL8sADDyRx+S8AAOWgAAQASm1bAbhkyZLMmzcvSXLKKaektbW1f6a7uzuVystfFn3pS19Kb29viqJwBiAAAKWgAAQASu3MM89MURRJkq9//etJtr/8N0kmTJiQ448/PknyjW98I0kyffr0TJky5XVvr62trf/XL7744hAkBgCAwaUABABKraurq7/c27RpU5LXF4DJK5cBb9myJcmOL//ddk/BJPnqV7+aq6++Otdff/1gRgYAgEGlAAQASu/VZV5LS0tmzZr1upltBeBAf+fVZs2alQMOOCBJ8vTTT+fTn/50PvvZzw5iWgAAGFwKQACg9F59L78ZM2ako6PjdTPd3d39lwqPHj16wLMEk6S1tTX/9m//lhNPPDFtbW0ZPXp0jjzyyKEJDgAAg6Co1+v1RocAAAAAAIaGMwABAAAAoMQUgAAAAABQYgpAAAAAACgxBSAAAAAAlJgCEAAAAABKTAEIAAAAACWmAAQAAACAElMAAgAAAECJKQABAAAAoMQUgAAAAABQYgpAAAAAACgxBSAAAAAAlJgCEAAAAABKTAEIAAAAACWmAAQAAACAElMAAgAAAECJKQABAAAAoMQUgAAAAABQYgpAAAAAACgxBSAAAAAAlJgCEAAAAABKTAEIAAAAACWmAAQAAACAElMAAgAAAECJKQABAAAAoMQUgAAAAABQYgpAAAAAACgxBSAAAAAAlJgCEAAAAABKTAEIAAAAACWmAAQAAACAElMAAgAAAECJ/f9wC+/zXrPP5AAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": { "image/png": { "height": 480, "width": 640 } }, "output_type": "display_data" }, { "data": { "text/plain": [ "
" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(\n", " ggplot(mtcars, aes(\"wt\", \"mpg\", color=\"factor(gear)\"))\n", " + geom_point()\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "4. Geglättetes lineares Modell mit Konfidenzintervallen\n", "\n", " Mit [plotnine.stats.stat_smooth](https://plotnine.readthedocs.io/en/stable/generated/plotnine.stats.stat_smooth.html?highlight=stat_smooth) lassen sich geglättete bedingte Mittelwerte berechnen, wobei `lm` ein lineares Modell zugrunde liegt: " ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "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wMZKKsfg4KD++Z//WZL05S9/2eZqyseXvvQlSdI3v/lNDQ0Nley8BIBAGTMMQ83NzWptbZ2RWWXl5LAjs7r06uIh4J6dtdr44mIZRvlPWs5ms4pGo7aGgIfkFunm6Bo15IuEx4b0bO2LerL2GeVF4DUqkUho7969isfjdpcCAACAClcuy2vL3Q9+8ANFIhEtWrRIV1xxhd3llI0rrrhCixcv1tDQkH784x+X7LwEgEAFCAQCam9vL6uNWmfCYUdkddk1xUPAXTtq9MpzC1RTU1v2YWgmk1EsFrO1hmazUTdH12hBtr3o+Jaad3Rv4GGljPLaE9JOpmmqt7dXvb29zAYEAADApHzmM5+RYRj6r//1v46974ILLpBhGAW/t5imqbvuuktXX3212tvb5Xa7FQgEdPTRR+szn/mMnnrqqUld84UXXtAf/dEfafHixaqpqVFDQ4NOP/10ffvb3y6YMbZkyRIZhjG2/580she2YRi67bbbip5/3bp1uuGGG7Ro0SLV1NSopaVF5557rn74wx8qmUxOWNeqVatkGIZWrVolSXrnnXe0evVqNTY2FjwXqVRK//7v/y5Juvnmm/fbUNE0Tf30pz/VOeeco8bGRjU0NOjkk0/W97//fcViMe3cuXPs+f75z38+4Xn6+/t12223aeXKlWpsbFQgENCKFSv0V3/1V9q+ffuEj9u3joN9/W677bZxnxNDQ0P60pe+pAULFsjhcOiZZ54ZO9bhcOiWW26RJP3nf/5nyX43IQAEKkRNTY06OjpUU1Njdykz6tDDs7r8mrgczsIQcOdHHj37ZKuCgYaSboY6E9LptO2zyWotn9bErtUx6aOLju9279WdwXUacgzPbmFlLh6Pq7Oz0/bXDwAAANWjp6dHp512mj71qU/p4YcfHmv6GI/HtW3bNv2///f/dNFFF+mmm25SJpMpeg7TNPXFL35R55xzju644w7t2bNHmUxG4XBYr776qr7+9a9r+fLl2rhx40HVODQ0pAsvvFBr1qzRfffdp7179yqTyWhgYEDPP/+8vvKVr+joo4/Wpk2bDniu3/72tzrllFN07733anh4uGD8scceU39/vyTp2muvnfA8kUhEF1xwgT772c/qhRde0PDwsMLhsF577TV97Wtf08knn6w9e/YcsJ6HH35YRx11lP7+7/9emzdv1vDwsOLxuN5++2398z//s4499lh9+9vfnvDxpXj9Ru3cuVOnnHKKfvzjH6urq6vo6rHRGZGdnZ2TDoYPpLqnEwFVxul0qr29XQMDA4pGo3aXM2OWHJ7V5dfE9PiDAeXz4/9StOsjj377SL0uv8apfH4kZCu3xiajksmkDMNQbW2tbTW45NSliQvUaDboBd8rBeNDzmHdGVyra+NXaGGuw4YKy1M+n1dvb6/8fr+am5v3+xdJAAAAzF2f/vSndfrpp+vll1/WL37xC0nSV7/6VS1durTguNHgbMmSJbrxxhu1cOFChcNhbd26VQ888IAymYzuueceHXPMMfq7v/u7gmv92Z/9mf7zP/9TkuT3+3XLLbdo2bJlikQieuihh7Rp0yb19PToqquu0rZt29TQ0KBvf/vbikaj+t73vqf3339fkvTjH/9YLpdLJ5988ti5U6mULrzwQr3++uuSpMWLF+vGG2/UokWLNDAwoMcee0ybNm3S7t27dd555+nFF1+csGnHnj17tHr1aiUSCV122WVatWqVfD7fuGPuu+8+SSOr3U499dSi5zFNU1dddZWef/55SdL8+fN1880365BDDlFnZ6d+/etfa9u2bfrkJz858QukkbDxhhtuUDablcvl0g033KDTTjtNuVxOb775pu677z4lk0l9/etfVyaT0d///d8XnKMUr9+oa665Rh9++KGOO+44XXfddZo3b54OP/zwccecfvrpCgQCisViuu+++3TJJZfs92OcDMOyc6MqjCXe5crpdKqxsVFDQ0MsiSszkUhEAwMDkzq2trZWDodDpmkqkUjMcGWls2uHS489UBgCStLiJVldfm1MTqeleDxe8m7JpeT3+wu+4U2Vw+FQbW2tEonEQQee290f6jH/k8oZucLzWw5dnFilFZll06qzGjmdTjU3N8vv90/rPI2NjXI6ncrn8yXdzBezh++JlY/7sPJxH1YH7sXKN9v3YktLy4xfY7p+/vOfjy0DXr9+/dgyWEnasWOHDjvsMEnSWWedpSeffLJgn8A333xTZ599tmKxmA4//HB98MEH48YffvhhXX311ZJGAqj169dryZIlY+OWZenTn/60fvnLX0qSvv3tb+t//s//OTa+atWqsWXAyWSy4Pp//dd/re985zuSRmbk3XnnnQUTGf7t3/5Nf/7nfy5JWrp0qd55551xfyjf9xpOp1O/+c1vtHr1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Fi1aJEn693//dx1yyCGqr69XIBDQscceq/vvv1/SyHN+9913j/uDd6lev6nadz/G884776DPsy8CQGCOMQxDra2t46YyV4u2+XlduyammmIhYMilB+8JKJWcePZSOcwGzGazikQiZRUCtuVb9anIGs3LtRYd3+h9XQ/6H1NW2VmurPIkk0nt3LmzrJqEtDlb9Xn/f91vCFhnBHVr4HMKOqrvjwcAAAAz7cYbb9Ttt9+uYDA49r5wOCxJamtr0/e//3098sgjuv7663X44YdLGvm58eP7Sd96661at26dFixYIGkkJNr358qVK1fq+eef12WXXVZQw1VXXaW/+7u/U0dHh5xOp5qamsbOI438nvizn/1M3//+98fCQ9M0NTQ0NNb0o729Xbfffru+//3vT/s5Gd0/MJVK6YUXXpjwuAsvvFDbtm3T3/zN32j58uXyer2qq6vT8ccfr29961t68cUXxwV2ozMG93XUUUfplVde0U033TR2bCQSGZvN6PV69dnPflabNm0a95yMKtXrNxVvvPHG2J6F119//UGfZ1+GVU6/Zc5B/f39dpewX06nU42NjeNuelSexsZGOZ1O5fP5senK0sgmsX19fWUTRJRKX8ipB9YGlE4V/o2jpTWna2+Myevb/5e+TCajWCxm23Pj8XgUDAbHvkE5HA7V1tYqkUjYVlNWWT3qf1IfeD4qOj4v16LrYlcqaBESFVNbWyuHwyHTNJVIJORyudTc3Kza2lq7S5MkDZqDeib9ol7JbFDCGlnuUWcEdZbndJ1bc6aCjuABzlD9+J5Y+Sb6fojKwX1YHbgXK99s34stLS0zfo3ZMDw8rMcff1w7duxQXV2dli5dqvPPP3/cXu39/f266667FIvFtHLlSl1yySUF58nlcnr22Wf19ttvKxaLqbW1VaeddpqOO+64ktSZTqe1fv16bd++XfF4XM3NzVqxYoVOP/30kq2YMk1TS5Ys0Z49e/TVr35V3/ve9w76XD/5yU/GljyvX79+XNOUj9u7d6+efvppdXV1yel06tBDD9VFF11UMGOymFK9fpPxjW98Q9/61rfU2NiovXv3luR3BgJAmxEAYjbs74esTCaj3t5eZbPVNXtrfyFgc2tO166JyVe7/y9/pmkqHo/btmRz3xCwHAJASbJk6XnfK9ro3Vx0PGD6dV3sCrXl581yZeXv4wHgKL/fr6amprJp0pO38opZcRmSAkZADoPFAqP4nlj5CB0qH/dhdeBerHwEgCiFb37zm/rbv/1btbe3a8+ePWN7HEoje6SPdsH1+/37XcH25S9/eWx59N69e4vO4qskpmnq8MMP186dO/VXf/VX+s53vlOS8/JTPTDHeTwetbe3F50qXcla2/K67saYvN7CsGygz6UH1gaUTOy/mYHD4VAwGBw3E282jc5CLCeGDJ2bPEOXxi+Qwyr8FhJzxPXr4H163118liAKxeNx7d27V+FwuCyWfjsNp+oddapz1BH+AQAAYMbceuutCgaD6u7u1gMPPDBuLJPJaPHixVq0aNHYfoHFJBIJrV27VpJ02GGHVXz4J0mPP/64du7cqdraWv3lX/5lyc7LT/YA5HQ61dbWprq6OrtLKamWeXlde1NMXl/xEPD+e4JKHCAElKSamho1NjYedJer6Uin02UXAkrSiswyrYldI69ZuG9czsjpwcBj2lCzmeYgk2RZlgYHB9XV1aVUKmV3OQAAAMCMa25u1v/3//1/kjQ2g2+Uz+fTySefLEl69dVXde+99xY8PpPJ6HOf+5y6urokSZ/97GdnuOLZMdrN+Stf+YrmzSvdyiqWANuMJcCYDVNZZhGNRsv+83KqBvodeuDuoJLJwr95NDXnde1NUdUeYDnwqFQqpXg8PusztWprazVv3jzblwB/3JBjWPcFHtGQc7jo+DHpo3VxYpWcchYdn0smWgJczGjHtX2XQcB+fE+sfCw7rHzch9WBe7HysQQYpZLJZLRixQq9//77evXVV3XqqaeOjd17771avXq1pJHVWddcc43OPPNMud1u7dq1S+vWrRvrTHzcccdp48aNtkzaKKWtW7fquOOOU2trqz744IOSTtJhBiCAcYLBoObPn1+yzV3LQXOLqWtvispXWxicDQ44df/dQSXik1vi6/V61dDQILfbXeoy9yuZTCoajc7qNSej0WzQzdHVWpQtPtX+7Zr3tDbwoJIGs9qmIhaLae/evWXXERoAAAAoJY/HMzb773/9r/81buyGG27QP/7jP8rpdMo0Td1///367//9v+urX/2qfvCDH4yFf6eddpoefvjhig//JOkf//EfJUnf/va3S75Cr3p+wwdQMj6fTx0dHVXxBXRUc4up6yYIAYd+HwLGJxkCOp1O1dXVye/3l7rM/YrFYtNq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wBNPPKGLFy+qvb1d3/ve97yOA6xIPIeA93gOgeWBZxEAqo8twAAAAAAAAEAdowAEAAAAAAAA6hgFIAAAAAAAAFDHKAABAAAAAACAOkYBCAAAAAAAANQxCkAAAAAAAACgjvm8DgBg6X34wx/W1NSUIpGI11GAFYvnEPAezyGwPPAsAkD1Ga7rul6HAAAAAAAAALA02AIMAAAAAAAA1DEKQAAAAAAAAKCOUQACAAAAAAAAdYwCEAAAAAAAAKhjTAEG6tjIyIieeuopHTx4UKOjo3JdV21tbdqxY4d+5Vd+RfF43OuIQN3bu3evnnnmGZ08eVLpdFrhcFi333679uzZo8cee0yWZXkdEVhxxsbG9M//+T9XKpXS5z73OW3dutXrSEDd27t3r/7zf/7PFa956KGH9C//5b+sUiIAWFkoAIE6NTAwoM985jOampqSYRhqaWlRPp/XuXPndO7cOe3du1d/8id/og0bNngdFahb/+2//Tc9/fTTkqRAIKDW1lZNTEyor69PfX19eu655/TpT39atm17nBRYOVzX1Z/92Z8plUp5HQVYUYaHhyVJra2tCgaD17ympaWlmpEAYEWhAATqkOM4+tznPqepqSndcccd+r3f+z0lEglJ0htvvKE/+7M/05kzZ/TZz35W//2//3f5fHwoABbbiy++qKefflqWZenjH/+43va2t8nv96tUKukHP/iB/uIv/kL9/f36zne+ow9+8INexwVWjL/927/V66+/7nUMYMWZKQD/4A/+QD09PR6nAYCVhzMAgTr04osvamxsTA0NDfrX//pfz5Z/krRx40b90R/9kUzT1Pnz5/XSSy95mBSoX9///vclSU888YTe+c53yu/3S5Isy9ITTzyhxx9/XJL005/+1LOMwEpz7Ngx/Z//83902223eR0FWHFmCsBVq1Z5nAQAViYKQKAOHTp0SJJ09913KxKJXPX6mjVrZr/4GhwcrGo2YKU4efKkJOnOO++85utr166VJOVyuSolAla2bDar//Sf/pMMw+CMMcAD58+fVzAYVHNzs9dRAGBFYt8fUIfGxsYkSe3t7de9xjSn+/9CoVCVTMBK87GPfUzlcllbtmy55utHjx6VJHV1dVUzFrBi/Y//8T80PDysf/JP/onWrVvndRxgRclms5qYmJj94RcAoPooAIE69Id/+IcqlUqzWw6vdPr0aZ07d06S2AYFLJEHHnhgzr+XSiVJ09O5n3nmGf34xz+Wbdv61V/9VS/iASvK3r179eyzz2rHjh1673vf63UcYMU5f/68JKmtrU3f+MY3tHfvXg0PD8s0TXV2duqBBx7Qk08+qUAg4HFSAKhfFIBAHao0UfTSpUv63Oc+p3K5rEgkogcffLCKyYCV60/+5E/0s5/9bPbfI5GI/t2/+3eshgCW2Pnz5/Xnf/7namxs1Cc/+UkZhuF1JGDFmTn/79VXX9Wrr76qQCCgpqYmjY6O6vjx4zp+/LieeeYZ/fEf/3HFHSwAgJvHGYDACuG6rp555hl98pOf1OnTp+Xz+fSpT31KjY2NXkcDVoR4PK54PD47dXtqakr/8T/+x9mtwAAWX6lU0p/+6Z8qk8noE5/4hFpaWryOBKxIMwVgNBrVv/gX/0J/9Vd/pS984Qv6+te/rt/93d9VJBLRuXPn9JnPfGZ2xTwAYHGxAhBYAY4dO6a/+Iu/0JEjRyRNFxG///u/r+3bt3ucDFg5PvGJT0iaLiReffVVfelLX5r9ZucLX/gC256AJfBXf/VXOnz4sB5//HHde++9XscBVqwdO3YoHo9r/fr1c86+9fl8euc736lEIqF//+//vU6dOqUXX3zxqmM0AAC3jgIQqGPpdFp/+Zd/qR/+8IdyXVc+n0/vec979Gu/9msKh8NexwNWJMuydM899yiRSOj3fu/3lEwmdeDAAe3Zs8fraEBdGRwc1De+8Q11dnbqt37rt7yOA6xo69ev1/r166/7+o4dO5RIJHThwgUdPnyYAhAAlgAFIFCnhoaG9OlPf3r20OUHHnhAH/3oR9XR0eFxMqD+DQ4O6sUXX1QwGNSHP/zha16zdu1axWIxJZNJXbx4scoJgfp39OhRlctlnTt3Th/60Ieue90f/uEfSpJ27dqlf/tv/2214gG4QiwW04ULF+Q4jtdRAKAuUQACdSiXy82Wf42Njfr93/997dy50+tYwIoxMjKip556SoZh6AMf+ICCweBV17iuq2KxKEkKhULVjgjUvYaGBnV2dl739XPnzkmS2tvb5ff71draWq1owIoyPj6ur3zlK5Kk3/zN31QkErnqmpmyXhI/rAaAJUIBCNShH/zgBzp//ryCwaA+/elPa+PGjV5HAlaU7u5uGYYh13X10ksv6eGHH77qmp/+9KeampqSJM7jBJbAo48+qkcfffS6r7/3ve+VJP2rf/WvtHXr1mrFAlacaDSq5557Tvl8Xlu3btVjjz121TXPPPOMpqamZBiG7rnnHg9SAkD9YwowUIf27dsnSXrPe95D+Qd4IB6P6/7775ckffGLX9TBgwfluq6k6SEgP/zhD/Wnf/qnkqR7771Xt912m2dZAQBYSn6/X29/+9slSV/4whf0/PPPz076LZVK2r9/v774xS9Kkh555JE5Q0IAAIuHFYBAnXFdV8ePH5ck/fjHP9YLL7xQ8fp3v/vdevLJJ6sRDVhRPv7xj+v06dM6c+aMPv3pTysSiSgSiWh0dHT2G5/u7m598pOf9DgpAABL66Mf/ahOnz6tvr4+ff7zn1coFJo9BzebzUqaXg3/27/92x4nBYD6RQEI1JnJycnZc8UuXbo07/WpVGqpIwErUlNTkz7/+c/ru9/9rl566SWdO3dOo6OjikajWrdunR588EE98sgjsizL66gAACypUCikz3zmM/rxj3+sZ599VidOnNDIyIii0ai2bNmiPXv26NFHH+VzIgAsIcOd2ZMEAAAAAAAAoO5wBiAAAAAAAABQxygAAQAAAAAAgDpGAQgAAAAAAADUMQpAAAAAAAAAoI5RAAIAAAAAAAB1jAIQAAAAAAAAqGMUgAAAAAAAAEAdowAEAAAAAAAA6hgFIAAAAAAAAFDHKAABAAAAAACAOkYBCAAAAAAAANQxCkAAAAAAAACgjlEAAgAAAAAAAHWMAhAAAAAAAACoYxSAAAAAAAAAQB2jAAQAAAAAAADqGAUgAAAAAAAAUMd8XgcAAACoJa+99pqeeuopSdKTTz6pu+++29tAAAAAwDwoAAEAAG7Aa6+9pj/+4z+WJHV0dFAAAgAAYNljCzAAAAAAAABQxygAAQAAAAAAgDpGAQgAAAAAAADUMQpAAABQdz7+8Y/LMAwZhqFvfvOb17zmiSeemL3m3/ybf3PNa771rW/NXrNhwwYZhqF//I//8ezr//Sf/lMZhqHbb799Kf4zAAAAgEVBAQgAAOrOY489NvvPL7zwwlWvl8tlvfjii7P/vm/fvmu+nb1790qSDMOY8zYBAACAWsIUYAAAUHfe9ra3yTRNlctl7d+//6rX+/v7NTExMfvvr7zyihzHkW3bc66bKQB7e3v1W7/1W7rzzjv14osv6stf/rIk6cMf/rD27NmjhoaGpfuPAQAAAG4RKwABAEDdaW5u1t133y1JevXVV5XL5ea8PlMKGoYhScrlcnrllVfmXJNMJvXaa69Jkt7xjnfo7rvv1u/8zu/okUcemb1mz549+p3f+R39o3/0j5bqPwUAAAC4ZRSAAACgLs1s2XUcRz/96U/nvDaz5ffd7363fD7fnF+7/JpyuSxpugAEAAAAahUFIAAAqEuXl3ZXbgOeKfve9a53za4UvLIAfO655yRJoVBIe/bsWcqoAAAAwJKiAAQAAHXpvvvuUzQalTS3ADx79qxOnz4taXoL70MPPTR7jeu6s9fNnP+3Z88eBYPBasUGAAAAFh0FIAAAqEt+v3+23LvWxN/m5mZt37599prx8XEdOnRIkpROp/Xqq69KYvsvAAAAah8FIAAAqFsz5d2lS5d05MgRSb8sAHfv3i3DMPTAAw/IsixJ0vPPPy9JeuGFF1QsFue8DQAAAKBWUQACAIC6NTMIRPrlNuCZAvDBBx+UJDU0NOiuu+6a89rM9t+Ojg719vZWLS8AAACwFCgAAQBA3eru7lZXV5ek6QIwlUqpr69PkuYM9pjZBjxTAM4MALm8QAQAAABqFQUgAACoazMl3v79+/Xiiy+qXC4rFApp586ds9fMFICnT5/WkSNHdODAAUls/wUAAEB9oAAEAAB1baYAPHLkiJ566ilJ0r333iu/3z97zZ49e2Sa018Wff7zn5fjODIMgxWAAAAAqAsUgAAAoK69/e1vl2EYkqS//Mu/lDR3+68kxWIx3XnnnZKkL3/5y5KkO+64Q4lE4qq3Z9v27D9PTk4uQWIAAABgcVEAAgCAuhaPx2fLvVwuJ+nqAlD65TbgQqEg6frbf2fOFJSk//Jf/os++9nP6ktf+tJiRgYAAAAWFQUgAACoe5eXeT6fT/fdd99V18wUgNe653L33XefVq1aJUkaGhrSH/3RH+mP//iPFzEtAAAAsLgoAAEAQN27/Cy/HTt2KBKJXHXNnj17ZrcKh0Kha64SlCS/36+//uu/1s6dO2XbtkKhkLZs2bI0wQEAAIBFYLiu63odAgAAAAAAAMDSYAUgAAAAAAAAUMcoAAEAAAAAAIA6RgEIAAAAAAAA1DEKQAAAAAAAAKCOUQACAAAAAAAAdYwCEAAAAAAAAKhjFIAAAAAAAABAHaMABAAAAAAAAOoYBSAAAAAAAABQxygAAQAAAAAAgDpGAQgAAAAAAADUMQpAAAAAAAAAoI5RAAIAAAAAAAB1jAIQAAAAAAAAqGMUgAAAAAAAAEAdowAEAAAAAAAA6hgFIAAAAAAAAFDHKAABAAAAAACAOkYBCAAAAAAAANQxCkAAAAAAAACgjlEAAgAAAAAAAHWMAhAAAAAAAACoYxSAAAAAAAAAQB2jAAQAAAAAAADqGAUgAAAAAAAAUMcoAAEAAAAAAIA6RgEIAAAAAAAA1DEKQAAAAAAAAKCOUQACAAAAAAAAdYwCEAAAAAAAAKhjFIAAAAAAAABAHaMABAAAAAAAAOrY/w/H5hDJmF6TOQAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": { "image/png": { "height": 480, "width": 640 } }, "output_type": "display_data" }, { "data": { "text/plain": [ "
" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(\n", " ggplot(mtcars, aes(\"wt\", \"mpg\", color=\"factor(gear)\"))\n", " + geom_point()\n", " + stat_smooth(method=\"lm\")\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "5. Darstellung in separierten Feldern\n", "\n", " Mit [plotnine.facets.facet_wrap](https://plotnine.readthedocs.io/en/stable/generated/plotnine.facets.facet_wrap.html) lassen sich die Felder trennen." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/png": "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CgaDGW2TU2qfl1R6v9eco8xwnoY2ks9RqQUsgZGo7AOA8+bN67/ILV++XOeee27KMStWrOhf7rtw4UKNHz9es2fP1qZNm/Twww+nBPm6u7u1bNkySdLSpUsHHf9f/uVf9C//8i8Dvt7W1qaOjo6M/z1Op1P19fXq6uoqmeIj9fX1cjqdMk0zq39LIXGehsY5ygznaWiZnqOmpqas+87235fJXPpuTLMxTVNUUVuhsCPc3xY2wloZX6P50TmDvreysrL/71A24waDQR04cCBtFnq++L0eGucoM5ynoZXiNTIYDGrazIieezq5Wu+ObYba2kKqrMw/ULF3717V1dUNeVypfV5S6f1ec44yw3ka2kg+R7lcIwEkK/s82zFjxujMM8+UJN1222167bXX+p8sJBIJPfbYY/r+978vSTrjjDM0depUSdK1114rwzC0bNky/eUvf+m/GO3fv19f//rXFQgENHfuXL3pTW8qwr8KADCcXHJqQZpiICspBgJghKqrNzVmXDypzbIMbd1kTzVgCoEAAFBayj4DUJL+9V//VTt37tSuXbt0yy23yO/3y+/3q729vT+wN2/ePH3yk5/sf8+JJ56oa6+9Vn/84x/1hz/8Qffcc4+qqqrU1tYmy7I0fvx4ffrTn85qPycAwMi1OLJAr1a8kdS217VPbY52NZmFWaobCAQyyqABgFy0zInq0IHk24HNGz1aeEI0777D4bBM02RfLwAASsSoCADW1dXpO9/5jh544AEtX75ce/bsUXt7u6qqqjRjxgydc845Wrp0acq+AldffbWam5v1j3/8Q62trerq6tLEiRN15pln6h3veIdqamqK9C8CAAy3BrNOU2OTtNO9J6l9lXetzgudU5Axo9Go4vG4XK5R8ecawDBrnhPVC88mVyffu9ul3h5DVdX2FAPx+/159wMAAPI3au4oKisrdfXVV+vqq6/O6n0nnXSSTjrppALNCgAwkiyOLEgJAK7zbNSbQ28ashhIroLBIA+cABREdY2lCRPj2rf32FsCQ60bPTrhlEje/RMABACgdJCTDwBAhppjM1Vp+pLaIo6oNnpaCzZmX5EqACiE5rmpy303b7Sn+BD7mAIAUDoIAAIAkCGnnFoQnZfSvqqAxUDC4XBJVA4EUJ5mzY7KMJKX+x7c71JXZ/63CYlEQpFI/pmEAAAgfwQAAQDIwuLI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XuflkksukSStXr16wIfBixcv1v33399fzOO1117TV77yFX32s5/Vbbfdpt7eXp144olJ5/f4Zc8+n09//etfNWXKFEnSz3/+c02bNk21tbWqqqrSokWL9Le//U3SkXP+5z//OenBlF2fX7aO3Y/xLW95S879HIsAIAAAI5RhGAXJAmyOzVSl6Utqizii2uDZbPtY0pEKZ0Nl35zqOSmrPk/z5LYpNYDhd+zyqlxMmRaXtyI52hcKOrRnV3YPSMgCBFAo7373u3Xbbbepurq6v62rq0uSNG7cON1666168MEH9a53vUuzZs2SdCTId/z2BDfeeKPuvfdeTZp0ZLWGaZo6fPhwf6bZySefrGXLluniiy9OmcPb3/523XzzzZo4caKcTqcaGhr6+5GOfK/87W9/q1tvvbX/+6Vpmuro6Ogv+jFhwgTddtttuvXWW/M+J337B4bDYT333HMDHnf++edr48aN+sIXvqD58+eroqJCNTU1WrJkib7xjW/o+eefTwrY9WUMHmvOnDlavny5rr766v5ju7u7+6/7FRUVuu6667RixYqkc9LHrs8vG2+88Ub/Q/J3vetdOfdzLMOyu04xstLW1pbV8U6nU/X19Un/T1hs9fX1cjqdSiQSGe/lVGicp6FxjjLDeRpapueoqakp6765Rg7Nsizt3r07q8wVh8OhyspKBYPBAZcmLKt4US/7kqvAjY+P1bU9785rvgOpr69Xc3PzoOfp5723aW18/ZB9zXLO0E3VH8trPqPxdykXnKehcY0cXN/ntXnz5qwqgx/vqUcrtW61N6lt/qKIll6U+c1XRUWFJkyYUHLnqdR+p6XS/l3iPA1sJJ+jXK6Rpaizs1OPPPKItm3bppqaGs2ePVtLly5NWtHR1tamu+66S729vTr55JN10UUXpfQTj8f1zDPPaO3atert7dWYMWN0+umna/HixbbMMxKJ6KmnntKmTZsUCATU2NiohQsX6owzzsi4sMhQTNPU9OnTtWvXLt100036/ve/n3Nfv/71r/uXPD/11FNJRVOOt3v3bj355JPau3evnE6nZsyYoQsuuCCjh+p2fX6Z+MpXvqJvfOMbqq+v1+7du1VZWZlTP8eyf90QAAAYNoZhqL6+XocOHbK130XR+SkBwP2ugzroPKSxiTG2jiUd+aLZ1dU16FLAf6m8Rj/o/ZkOmAcHPKbR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", "text/plain": [ "
" ] }, "metadata": { "image/png": { "height": 480, "width": 640 } }, "output_type": "display_data" }, { "data": { "text/plain": [ "
" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(\n", " ggplot(mtcars, aes(\"wt\", \"mpg\", color=\"factor(gear)\"))\n", " + geom_point()\n", " + stat_smooth(method=\"lm\")\n", " + facet_wrap(\"~gear\")\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Interaktive Diagramme\n", "\n", "Zusammen mit [ipywidgets](https://jupyter-tutorial.readthedocs.io/de/latest/ipywidgets/index.html) lassen sich auch interaktive Diagramme erstellen." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "1. Importe" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "import itertools\n", "\n", "from copy import copy\n", "\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "import pandas as pd\n", "import plotnine as p9\n", "\n", "from IPython.display import display\n", "from ipywidgets import widgets\n", "from plotnine.data import mtcars" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "2. Interaktives Streudiagramm erstellen\n", "\n", " Im folgenden betrachten wir PS auf der x-Achse, Meilen je Gallone auf der y-Achse und unterscheiden farblich das Gewicht der Autos:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "application/javascript": [ "/* Put everything inside the global mpl namespace */\n", "/* global mpl */\n", "window.mpl = {};\n", "\n", "mpl.get_websocket_type = function () {\n", " if (typeof WebSocket !== 'undefined') {\n", " return WebSocket;\n", " } else if (typeof MozWebSocket !== 'undefined') {\n", " return MozWebSocket;\n", " } else {\n", " alert(\n", " 'Your browser does not have WebSocket support. ' +\n", " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", " 'Firefox 4 and 5 are also supported but you ' +\n", " 'have to enable WebSockets in about:config.'\n", " );\n", " }\n", "};\n", "\n", "mpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n", " this.id = figure_id;\n", "\n", " this.ws = websocket;\n", "\n", " this.supports_binary = this.ws.binaryType !== undefined;\n", "\n", " if (!this.supports_binary) {\n", " var warnings = document.getElementById('mpl-warnings');\n", " if (warnings) {\n", " warnings.style.display = 'block';\n", " warnings.textContent =\n", " 'This browser does not support binary websocket messages. ' +\n", " 'Performance may be slow.';\n", " }\n", " }\n", "\n", " this.imageObj = new Image();\n", "\n", " this.context = undefined;\n", " this.message = undefined;\n", " this.canvas = undefined;\n", " this.rubberband_canvas = undefined;\n", " this.rubberband_context = undefined;\n", " this.format_dropdown = undefined;\n", "\n", " this.image_mode = 'full';\n", "\n", " this.root = document.createElement('div');\n", " this.root.setAttribute('style', 'display: inline-block');\n", " this._root_extra_style(this.root);\n", "\n", " parent_element.appendChild(this.root);\n", "\n", " this._init_header(this);\n", " this._init_canvas(this);\n", " this._init_toolbar(this);\n", "\n", " var fig = this;\n", "\n", " this.waiting = false;\n", "\n", " this.ws.onopen = function () {\n", " fig.send_message('supports_binary', { value: fig.supports_binary });\n", " fig.send_message('send_image_mode', {});\n", " if (fig.ratio !== 1) {\n", " fig.send_message('set_device_pixel_ratio', {\n", " device_pixel_ratio: fig.ratio,\n", " });\n", " }\n", " fig.send_message('refresh', {});\n", " };\n", "\n", " this.imageObj.onload = function () {\n", " if (fig.image_mode === 'full') {\n", " // Full images could contain transparency (where diff images\n", " // almost always do), so we need to clear the canvas so that\n", " // there is no ghosting.\n", " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", " }\n", " fig.context.drawImage(fig.imageObj, 0, 0);\n", " };\n", "\n", " this.imageObj.onunload = function () {\n", " fig.ws.close();\n", " };\n", "\n", " this.ws.onmessage = this._make_on_message_function(this);\n", "\n", " this.ondownload = ondownload;\n", "};\n", "\n", "mpl.figure.prototype._init_header = function () {\n", " var titlebar = document.createElement('div');\n", " titlebar.classList =\n", " 'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n", " var titletext = document.createElement('div');\n", " titletext.classList = 'ui-dialog-title';\n", " titletext.setAttribute(\n", " 'style',\n", " 'width: 100%; text-align: center; padding: 3px;'\n", " );\n", " titlebar.appendChild(titletext);\n", " this.root.appendChild(titlebar);\n", " this.header = titletext;\n", "};\n", "\n", "mpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n", "\n", "mpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n", "\n", "mpl.figure.prototype._init_canvas = function () {\n", " var fig = this;\n", "\n", " var canvas_div = (this.canvas_div = document.createElement('div'));\n", " canvas_div.setAttribute('tabindex', '0');\n", " canvas_div.setAttribute(\n", " 'style',\n", " 'border: 1px solid #ddd;' +\n", " 'box-sizing: content-box;' +\n", " 'clear: both;' +\n", " 'min-height: 1px;' +\n", " 'min-width: 1px;' +\n", " 'outline: 0;' +\n", " 'overflow: hidden;' +\n", " 'position: relative;' +\n", " 'resize: both;' +\n", " 'z-index: 2;'\n", " );\n", "\n", " function on_keyboard_event_closure(name) {\n", " return function (event) {\n", " return fig.key_event(event, name);\n", " };\n", " }\n", "\n", " canvas_div.addEventListener(\n", " 'keydown',\n", " on_keyboard_event_closure('key_press')\n", " );\n", " canvas_div.addEventListener(\n", " 'keyup',\n", " on_keyboard_event_closure('key_release')\n", " );\n", "\n", " this._canvas_extra_style(canvas_div);\n", " this.root.appendChild(canvas_div);\n", "\n", " var canvas = (this.canvas = document.createElement('canvas'));\n", " canvas.classList.add('mpl-canvas');\n", " canvas.setAttribute(\n", " 'style',\n", " 'box-sizing: content-box;' +\n", " 'pointer-events: none;' +\n", " 'position: relative;' +\n", " 'z-index: 0;'\n", " );\n", "\n", " this.context = canvas.getContext('2d');\n", "\n", " var backingStore =\n", " this.context.backingStorePixelRatio ||\n", " this.context.webkitBackingStorePixelRatio ||\n", " this.context.mozBackingStorePixelRatio ||\n", " this.context.msBackingStorePixelRatio ||\n", " this.context.oBackingStorePixelRatio ||\n", " this.context.backingStorePixelRatio ||\n", " 1;\n", "\n", " this.ratio = (window.devicePixelRatio || 1) / backingStore;\n", "\n", " var rubberband_canvas = (this.rubberband_canvas = document.createElement(\n", " 'canvas'\n", " ));\n", " rubberband_canvas.setAttribute(\n", " 'style',\n", " 'box-sizing: content-box;' +\n", " 'left: 0;' +\n", " 'pointer-events: none;' +\n", " 'position: absolute;' +\n", " 'top: 0;' +\n", " 'z-index: 1;'\n", " );\n", "\n", " // Apply a ponyfill if ResizeObserver is not implemented by browser.\n", " if (this.ResizeObserver === undefined) {\n", " if (window.ResizeObserver !== undefined) {\n", " this.ResizeObserver = window.ResizeObserver;\n", " } else {\n", " var obs = _JSXTOOLS_RESIZE_OBSERVER({});\n", " this.ResizeObserver = obs.ResizeObserver;\n", " }\n", " }\n", "\n", " this.resizeObserverInstance = new this.ResizeObserver(function (entries) {\n", " var nentries = entries.length;\n", " for (var i = 0; i < nentries; i++) {\n", " var entry = entries[i];\n", " var width, height;\n", " if (entry.contentBoxSize) {\n", " if (entry.contentBoxSize instanceof Array) {\n", " // Chrome 84 implements new version of spec.\n", " width = entry.contentBoxSize[0].inlineSize;\n", " height = entry.contentBoxSize[0].blockSize;\n", " } else {\n", " // Firefox implements old version of spec.\n", " width = entry.contentBoxSize.inlineSize;\n", " height = entry.contentBoxSize.blockSize;\n", " }\n", " } else {\n", " // Chrome <84 implements even older version of spec.\n", " width = entry.contentRect.width;\n", " height = entry.contentRect.height;\n", " }\n", "\n", " // Keep the size of the canvas and rubber band canvas in sync with\n", " // the canvas container.\n", " if (entry.devicePixelContentBoxSize) {\n", " // Chrome 84 implements new version of spec.\n", " canvas.setAttribute(\n", " 'width',\n", " entry.devicePixelContentBoxSize[0].inlineSize\n", " );\n", " canvas.setAttribute(\n", " 'height',\n", " entry.devicePixelContentBoxSize[0].blockSize\n", " );\n", " } else {\n", " canvas.setAttribute('width', width * fig.ratio);\n", " canvas.setAttribute('height', height * fig.ratio);\n", " }\n", " /* This rescales the canvas back to display pixels, so that it\n", " * appears correct on HiDPI screens. */\n", " canvas.style.width = width + 'px';\n", " canvas.style.height = height + 'px';\n", "\n", " rubberband_canvas.setAttribute('width', width);\n", " rubberband_canvas.setAttribute('height', height);\n", "\n", " // And update the size in Python. We ignore the initial 0/0 size\n", " // that occurs as the element is placed into the DOM, which should\n", " // otherwise not happen due to the minimum size styling.\n", " if (fig.ws.readyState == 1 && width != 0 && height != 0) {\n", " fig.request_resize(width, height);\n", " }\n", " }\n", " });\n", " this.resizeObserverInstance.observe(canvas_div);\n", "\n", " function on_mouse_event_closure(name) {\n", " /* User Agent sniffing is bad, but WebKit is busted:\n", " * https://bugs.webkit.org/show_bug.cgi?id=144526\n", " * https://bugs.webkit.org/show_bug.cgi?id=181818\n", " * The worst that happens here is that they get an extra browser\n", " * selection when dragging, if this check fails to catch them.\n", " */\n", " var UA = navigator.userAgent;\n", " var isWebKit = /AppleWebKit/.test(UA) && !/Chrome/.test(UA);\n", " if(isWebKit) {\n", " return function (event) {\n", " /* This prevents the web browser from automatically changing to\n", " * the text insertion cursor when the button is pressed. We\n", " * want to control all of the cursor setting manually through\n", " * the 'cursor' event from matplotlib */\n", " event.preventDefault()\n", " return fig.mouse_event(event, name);\n", " };\n", " } else {\n", " return function (event) {\n", " return fig.mouse_event(event, name);\n", " };\n", " }\n", " }\n", "\n", " canvas_div.addEventListener(\n", " 'mousedown',\n", " on_mouse_event_closure('button_press')\n", " );\n", " canvas_div.addEventListener(\n", " 'mouseup',\n", " on_mouse_event_closure('button_release')\n", " );\n", " canvas_div.addEventListener(\n", " 'dblclick',\n", " on_mouse_event_closure('dblclick')\n", " );\n", " // Throttle sequential mouse events to 1 every 20ms.\n", " canvas_div.addEventListener(\n", " 'mousemove',\n", " on_mouse_event_closure('motion_notify')\n", " );\n", "\n", " canvas_div.addEventListener(\n", " 'mouseenter',\n", " on_mouse_event_closure('figure_enter')\n", " );\n", " canvas_div.addEventListener(\n", " 'mouseleave',\n", " on_mouse_event_closure('figure_leave')\n", " );\n", "\n", " canvas_div.addEventListener('wheel', function (event) {\n", " if (event.deltaY < 0) {\n", " event.step = 1;\n", " } else {\n", " event.step = -1;\n", " }\n", " on_mouse_event_closure('scroll')(event);\n", " });\n", "\n", " canvas_div.appendChild(canvas);\n", " canvas_div.appendChild(rubberband_canvas);\n", "\n", " this.rubberband_context = rubberband_canvas.getContext('2d');\n", " this.rubberband_context.strokeStyle = '#000000';\n", "\n", " this._resize_canvas = function (width, height, forward) {\n", " if (forward) {\n", " canvas_div.style.width = width + 'px';\n", " canvas_div.style.height = height + 'px';\n", " }\n", " };\n", "\n", " // Disable right mouse context menu.\n", " canvas_div.addEventListener('contextmenu', function (_e) {\n", " event.preventDefault();\n", " return false;\n", " });\n", "\n", " function set_focus() {\n", " canvas.focus();\n", " canvas_div.focus();\n", " }\n", "\n", " window.setTimeout(set_focus, 100);\n", "};\n", "\n", "mpl.figure.prototype._init_toolbar = function () {\n", " var fig = this;\n", "\n", " var toolbar = document.createElement('div');\n", " toolbar.classList = 'mpl-toolbar';\n", " this.root.appendChild(toolbar);\n", "\n", " function on_click_closure(name) {\n", " return function (_event) {\n", " return fig.toolbar_button_onclick(name);\n", " };\n", " }\n", "\n", " function on_mouseover_closure(tooltip) {\n", " return function (event) {\n", " if (!event.currentTarget.disabled) {\n", " return fig.toolbar_button_onmouseover(tooltip);\n", " }\n", " };\n", " }\n", "\n", " fig.buttons = {};\n", " var buttonGroup = document.createElement('div');\n", " buttonGroup.classList = 'mpl-button-group';\n", " for (var toolbar_ind in mpl.toolbar_items) {\n", " var name = mpl.toolbar_items[toolbar_ind][0];\n", " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", " var image = mpl.toolbar_items[toolbar_ind][2];\n", " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", "\n", " if (!name) {\n", " /* Instead of a spacer, we start a new button group. */\n", " if (buttonGroup.hasChildNodes()) {\n", " toolbar.appendChild(buttonGroup);\n", " }\n", " buttonGroup = document.createElement('div');\n", " buttonGroup.classList = 'mpl-button-group';\n", " continue;\n", " }\n", "\n", " var button = (fig.buttons[name] = document.createElement('button'));\n", " button.classList = 'mpl-widget';\n", " button.setAttribute('role', 'button');\n", " button.setAttribute('aria-disabled', 'false');\n", " button.addEventListener('click', on_click_closure(method_name));\n", " button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n", "\n", " var icon_img = document.createElement('img');\n", " icon_img.src = '_images/' + image + '.png';\n", " icon_img.srcset = '_images/' + image + '_large.png 2x';\n", " icon_img.alt = tooltip;\n", " button.appendChild(icon_img);\n", "\n", " buttonGroup.appendChild(button);\n", " }\n", "\n", " if (buttonGroup.hasChildNodes()) {\n", " toolbar.appendChild(buttonGroup);\n", " }\n", "\n", " var fmt_picker = document.createElement('select');\n", " fmt_picker.classList = 'mpl-widget';\n", " toolbar.appendChild(fmt_picker);\n", " this.format_dropdown = fmt_picker;\n", "\n", " for (var ind in mpl.extensions) {\n", " var fmt = mpl.extensions[ind];\n", " var option = document.createElement('option');\n", " option.selected = fmt === mpl.default_extension;\n", " option.innerHTML = fmt;\n", " fmt_picker.appendChild(option);\n", " }\n", "\n", " var status_bar = document.createElement('span');\n", " status_bar.classList = 'mpl-message';\n", " toolbar.appendChild(status_bar);\n", " this.message = status_bar;\n", "};\n", "\n", "mpl.figure.prototype.request_resize = function (x_pixels, y_pixels) {\n", " // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n", " // which will in turn request a refresh of the image.\n", " this.send_message('resize', { width: x_pixels, height: y_pixels });\n", "};\n", "\n", "mpl.figure.prototype.send_message = function (type, properties) {\n", " properties['type'] = type;\n", " properties['figure_id'] = this.id;\n", " this.ws.send(JSON.stringify(properties));\n", "};\n", "\n", "mpl.figure.prototype.send_draw_message = function () {\n", " if (!this.waiting) {\n", " this.waiting = true;\n", " this.ws.send(JSON.stringify({ type: 'draw', figure_id: this.id }));\n", " }\n", "};\n", "\n", "mpl.figure.prototype.handle_save = function (fig, _msg) {\n", " var format_dropdown = fig.format_dropdown;\n", " var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n", " fig.ondownload(fig, format);\n", "};\n", "\n", "mpl.figure.prototype.handle_resize = function (fig, msg) {\n", " var size = msg['size'];\n", " if (size[0] !== fig.canvas.width || size[1] !== fig.canvas.height) {\n", " fig._resize_canvas(size[0], size[1], msg['forward']);\n", " fig.send_message('refresh', {});\n", " }\n", "};\n", "\n", "mpl.figure.prototype.handle_rubberband = function (fig, msg) {\n", " var x0 = msg['x0'] / fig.ratio;\n", " var y0 = (fig.canvas.height - msg['y0']) / fig.ratio;\n", " var x1 = msg['x1'] / fig.ratio;\n", " var y1 = (fig.canvas.height - msg['y1']) / fig.ratio;\n", " x0 = Math.floor(x0) + 0.5;\n", " y0 = Math.floor(y0) + 0.5;\n", " x1 = Math.floor(x1) + 0.5;\n", " y1 = Math.floor(y1) + 0.5;\n", " var min_x = Math.min(x0, x1);\n", " var min_y = Math.min(y0, y1);\n", " var width = Math.abs(x1 - x0);\n", " var height = Math.abs(y1 - y0);\n", "\n", " fig.rubberband_context.clearRect(\n", " 0,\n", " 0,\n", " fig.canvas.width / fig.ratio,\n", " fig.canvas.height / fig.ratio\n", " );\n", "\n", " fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n", "};\n", "\n", "mpl.figure.prototype.handle_figure_label = function (fig, msg) {\n", " // Updates the figure title.\n", " fig.header.textContent = msg['label'];\n", "};\n", "\n", "mpl.figure.prototype.handle_cursor = function (fig, msg) {\n", " fig.canvas_div.style.cursor = msg['cursor'];\n", "};\n", "\n", "mpl.figure.prototype.handle_message = function (fig, msg) {\n", " fig.message.textContent = msg['message'];\n", "};\n", "\n", "mpl.figure.prototype.handle_draw = function (fig, _msg) {\n", " // Request the server to send over a new figure.\n", " fig.send_draw_message();\n", "};\n", "\n", "mpl.figure.prototype.handle_image_mode = function (fig, msg) {\n", " fig.image_mode = msg['mode'];\n", "};\n", "\n", "mpl.figure.prototype.handle_history_buttons = function (fig, msg) {\n", " for (var key in msg) {\n", " if (!(key in fig.buttons)) {\n", " continue;\n", " }\n", " fig.buttons[key].disabled = !msg[key];\n", " fig.buttons[key].setAttribute('aria-disabled', !msg[key]);\n", " }\n", "};\n", "\n", "mpl.figure.prototype.handle_navigate_mode = function (fig, msg) {\n", " if (msg['mode'] === 'PAN') {\n", " fig.buttons['Pan'].classList.add('active');\n", " fig.buttons['Zoom'].classList.remove('active');\n", " } else if (msg['mode'] === 'ZOOM') {\n", " fig.buttons['Pan'].classList.remove('active');\n", " fig.buttons['Zoom'].classList.add('active');\n", " } else {\n", " fig.buttons['Pan'].classList.remove('active');\n", " fig.buttons['Zoom'].classList.remove('active');\n", " }\n", "};\n", "\n", "mpl.figure.prototype.updated_canvas_event = function () {\n", " // Called whenever the canvas gets updated.\n", " this.send_message('ack', {});\n", "};\n", "\n", "// A function to construct a web socket function for onmessage handling.\n", "// Called in the figure constructor.\n", "mpl.figure.prototype._make_on_message_function = function (fig) {\n", " return function socket_on_message(evt) {\n", " if (evt.data instanceof Blob) {\n", " var img = evt.data;\n", " if (img.type !== 'image/png') {\n", " /* FIXME: We get \"Resource interpreted as Image but\n", " * transferred with MIME type text/plain:\" errors on\n", " * Chrome. But how to set the MIME type? It doesn't seem\n", " * to be part of the websocket stream */\n", " img.type = 'image/png';\n", " }\n", "\n", " /* Free the memory for the previous frames */\n", " if (fig.imageObj.src) {\n", " (window.URL || window.webkitURL).revokeObjectURL(\n", " fig.imageObj.src\n", " );\n", " }\n", "\n", " fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n", " img\n", " );\n", " fig.updated_canvas_event();\n", " fig.waiting = false;\n", " return;\n", " } else if (\n", " typeof evt.data === 'string' &&\n", " evt.data.slice(0, 21) === 'data:image/png;base64'\n", " ) {\n", " fig.imageObj.src = evt.data;\n", " fig.updated_canvas_event();\n", " fig.waiting = false;\n", " return;\n", " }\n", "\n", " var msg = JSON.parse(evt.data);\n", " var msg_type = msg['type'];\n", "\n", " // Call the \"handle_{type}\" callback, which takes\n", " // the figure and JSON message as its only arguments.\n", " try {\n", " var callback = fig['handle_' + msg_type];\n", " } catch (e) {\n", " console.log(\n", " \"No handler for the '\" + msg_type + \"' message type: \",\n", " msg\n", " );\n", " return;\n", " }\n", "\n", " if (callback) {\n", " try {\n", " // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n", " callback(fig, msg);\n", " } catch (e) {\n", " console.log(\n", " \"Exception inside the 'handler_\" + msg_type + \"' callback:\",\n", " e,\n", " e.stack,\n", " msg\n", " );\n", " }\n", " }\n", " };\n", "};\n", "\n", "function getModifiers(event) {\n", " var mods = [];\n", " if (event.ctrlKey) {\n", " mods.push('ctrl');\n", " }\n", " if (event.altKey) {\n", " mods.push('alt');\n", " }\n", " if (event.shiftKey) {\n", " mods.push('shift');\n", " }\n", " if (event.metaKey) {\n", " mods.push('meta');\n", " }\n", " return mods;\n", "}\n", "\n", "/*\n", " * return a copy of an object with only non-object keys\n", " * we need this to avoid circular references\n", " * https://stackoverflow.com/a/24161582/3208463\n", " */\n", "function simpleKeys(original) {\n", " return Object.keys(original).reduce(function (obj, key) {\n", " if (typeof original[key] !== 'object') {\n", " obj[key] = original[key];\n", " }\n", " return obj;\n", " }, {});\n", "}\n", "\n", "mpl.figure.prototype.mouse_event = function (event, name) {\n", " if (name === 'button_press') {\n", " this.canvas.focus();\n", " this.canvas_div.focus();\n", " }\n", "\n", " // from https://stackoverflow.com/q/1114465\n", " var boundingRect = this.canvas.getBoundingClientRect();\n", " var x = (event.clientX - boundingRect.left) * this.ratio;\n", " var y = (event.clientY - boundingRect.top) * this.ratio;\n", "\n", " this.send_message(name, {\n", " x: x,\n", " y: y,\n", " button: event.button,\n", " step: event.step,\n", " modifiers: getModifiers(event),\n", " guiEvent: simpleKeys(event),\n", " });\n", "\n", " return false;\n", "};\n", "\n", "mpl.figure.prototype._key_event_extra = function (_event, _name) {\n", " // Handle any extra behaviour associated with a key event\n", "};\n", "\n", "mpl.figure.prototype.key_event = function (event, name) {\n", " // Prevent repeat events\n", " if (name === 'key_press') {\n", " if (event.key === this._key) {\n", " return;\n", " } else {\n", " this._key = event.key;\n", " }\n", " }\n", " if (name === 'key_release') {\n", " this._key = null;\n", " }\n", "\n", " var value = '';\n", " if (event.ctrlKey && event.key !== 'Control') {\n", " value += 'ctrl+';\n", " }\n", " else if (event.altKey && event.key !== 'Alt') {\n", " value += 'alt+';\n", " }\n", " else if (event.shiftKey && event.key !== 'Shift') {\n", " value += 'shift+';\n", " }\n", "\n", " value += 'k' + event.key;\n", "\n", " this._key_event_extra(event, name);\n", "\n", " this.send_message(name, { key: value, guiEvent: simpleKeys(event) });\n", " return false;\n", "};\n", "\n", "mpl.figure.prototype.toolbar_button_onclick = function (name) {\n", " if (name === 'download') {\n", " this.handle_save(this, null);\n", " } else {\n", " this.send_message('toolbar_button', { name: name });\n", " }\n", "};\n", "\n", "mpl.figure.prototype.toolbar_button_onmouseover = function (tooltip) {\n", " this.message.textContent = tooltip;\n", "};\n", "\n", "///////////////// REMAINING CONTENT GENERATED BY embed_js.py /////////////////\n", "// prettier-ignore\n", "var _JSXTOOLS_RESIZE_OBSERVER=function(A){var t,i=new WeakMap,n=new WeakMap,a=new WeakMap,r=new WeakMap,o=new Set;function s(e){if(!(this instanceof s))throw new TypeError(\"Constructor requires 'new' operator\");i.set(this,e)}function h(){throw new TypeError(\"Function is not a constructor\")}function c(e,t,i,n){e=0 in arguments?Number(arguments[0]):0,t=1 in arguments?Number(arguments[1]):0,i=2 in arguments?Number(arguments[2]):0,n=3 in arguments?Number(arguments[3]):0,this.right=(this.x=this.left=e)+(this.width=i),this.bottom=(this.y=this.top=t)+(this.height=n),Object.freeze(this)}function d(){t=requestAnimationFrame(d);var s=new WeakMap,p=new Set;o.forEach((function(t){r.get(t).forEach((function(i){var r=t instanceof window.SVGElement,o=a.get(t),d=r?0:parseFloat(o.paddingTop),f=r?0:parseFloat(o.paddingRight),l=r?0:parseFloat(o.paddingBottom),u=r?0:parseFloat(o.paddingLeft),g=r?0:parseFloat(o.borderTopWidth),m=r?0:parseFloat(o.borderRightWidth),w=r?0:parseFloat(o.borderBottomWidth),b=u+f,F=d+l,v=(r?0:parseFloat(o.borderLeftWidth))+m,W=g+w,y=r?0:t.offsetHeight-W-t.clientHeight,E=r?0:t.offsetWidth-v-t.clientWidth,R=b+v,z=F+W,M=r?t.width:parseFloat(o.width)-R-E,O=r?t.height:parseFloat(o.height)-z-y;if(n.has(t)){var k=n.get(t);if(k[0]===M&&k[1]===O)return}n.set(t,[M,O]);var S=Object.create(h.prototype);S.target=t,S.contentRect=new c(u,d,M,O),s.has(i)||(s.set(i,[]),p.add(i)),s.get(i).push(S)}))})),p.forEach((function(e){i.get(e).call(e,s.get(e),e)}))}return s.prototype.observe=function(i){if(i instanceof window.Element){r.has(i)||(r.set(i,new Set),o.add(i),a.set(i,window.getComputedStyle(i)));var n=r.get(i);n.has(this)||n.add(this),cancelAnimationFrame(t),t=requestAnimationFrame(d)}},s.prototype.unobserve=function(i){if(i instanceof window.Element&&r.has(i)){var n=r.get(i);n.has(this)&&(n.delete(this),n.size||(r.delete(i),o.delete(i))),n.size||r.delete(i),o.size||cancelAnimationFrame(t)}},A.DOMRectReadOnly=c,A.ResizeObserver=s,A.ResizeObserverEntry=h,A}; // eslint-disable-line\n", "mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Left button pans, Right button zooms\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-arrows\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\\nx/y fixes axis\", \"fa fa-square-o\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o\", \"download\"]];\n", "\n", "mpl.extensions = [\"eps\", \"jpeg\", \"pgf\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\", \"webp\"];\n", "\n", "mpl.default_extension = \"png\";/* global mpl */\n", "\n", "var comm_websocket_adapter = function (comm) {\n", " // Create a \"websocket\"-like object which calls the given IPython comm\n", " // object with the appropriate methods. Currently this is a non binary\n", " // socket, so there is still some room for performance tuning.\n", " var ws = {};\n", "\n", " ws.binaryType = comm.kernel.ws.binaryType;\n", " ws.readyState = comm.kernel.ws.readyState;\n", " function updateReadyState(_event) {\n", " if (comm.kernel.ws) {\n", " ws.readyState = comm.kernel.ws.readyState;\n", " } else {\n", " ws.readyState = 3; // Closed state.\n", " }\n", " }\n", " comm.kernel.ws.addEventListener('open', updateReadyState);\n", " comm.kernel.ws.addEventListener('close', updateReadyState);\n", " comm.kernel.ws.addEventListener('error', updateReadyState);\n", "\n", " ws.close = function () {\n", " comm.close();\n", " };\n", " ws.send = function (m) {\n", " //console.log('sending', m);\n", " comm.send(m);\n", " };\n", " // Register the callback with on_msg.\n", " comm.on_msg(function (msg) {\n", " //console.log('receiving', msg['content']['data'], msg);\n", " var data = msg['content']['data'];\n", " if (data['blob'] !== undefined) {\n", " data = {\n", " data: new Blob(msg['buffers'], { type: data['blob'] }),\n", " };\n", " }\n", " // Pass the mpl event to the overridden (by mpl) onmessage function.\n", " ws.onmessage(data);\n", " });\n", " return ws;\n", "};\n", "\n", "mpl.mpl_figure_comm = function (comm, msg) {\n", " // This is the function which gets called when the mpl process\n", " // starts-up an IPython Comm through the \"matplotlib\" channel.\n", "\n", " var id = msg.content.data.id;\n", " // Get hold of the div created by the display call when the Comm\n", " // socket was opened in Python.\n", " var element = document.getElementById(id);\n", " var ws_proxy = comm_websocket_adapter(comm);\n", "\n", " function ondownload(figure, _format) {\n", " window.open(figure.canvas.toDataURL());\n", " }\n", "\n", " var fig = new mpl.figure(id, ws_proxy, ondownload, element);\n", "\n", " // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n", " // web socket which is closed, not our websocket->open comm proxy.\n", " ws_proxy.onopen();\n", "\n", " fig.parent_element = element;\n", " fig.cell_info = mpl.find_output_cell(\"
\");\n", " if (!fig.cell_info) {\n", " console.error('Failed to find cell for figure', id, fig);\n", " return;\n", " }\n", " fig.cell_info[0].output_area.element.on(\n", " 'cleared',\n", " { fig: fig },\n", " fig._remove_fig_handler\n", " );\n", "};\n", "\n", "mpl.figure.prototype.handle_close = function (fig, msg) {\n", " var width = fig.canvas.width / fig.ratio;\n", " fig.cell_info[0].output_area.element.off(\n", " 'cleared',\n", " fig._remove_fig_handler\n", " );\n", " fig.resizeObserverInstance.unobserve(fig.canvas_div);\n", "\n", " // Update the output cell to use the data from the current canvas.\n", " fig.push_to_output();\n", " var dataURL = fig.canvas.toDataURL();\n", " // Re-enable the keyboard manager in IPython - without this line, in FF,\n", " // the notebook keyboard shortcuts fail.\n", " IPython.keyboard_manager.enable();\n", " fig.parent_element.innerHTML =\n", " '';\n", " fig.close_ws(fig, msg);\n", "};\n", "\n", "mpl.figure.prototype.close_ws = function (fig, msg) {\n", " fig.send_message('closing', msg);\n", " // fig.ws.close()\n", "};\n", "\n", "mpl.figure.prototype.push_to_output = function (_remove_interactive) {\n", " // Turn the data on the canvas into data in the output cell.\n", " var width = this.canvas.width / this.ratio;\n", " var dataURL = this.canvas.toDataURL();\n", " this.cell_info[1]['text/html'] =\n", " '';\n", "};\n", "\n", "mpl.figure.prototype.updated_canvas_event = function () {\n", " // Tell IPython that the notebook contents must change.\n", " IPython.notebook.set_dirty(true);\n", " this.send_message('ack', {});\n", " var fig = this;\n", " // Wait a second, then push the new image to the DOM so\n", " // that it is saved nicely (might be nice to debounce this).\n", " setTimeout(function () {\n", " fig.push_to_output();\n", " }, 1000);\n", "};\n", "\n", "mpl.figure.prototype._init_toolbar = function () {\n", " var fig = this;\n", "\n", " var toolbar = document.createElement('div');\n", " toolbar.classList = 'btn-toolbar';\n", " this.root.appendChild(toolbar);\n", "\n", " function on_click_closure(name) {\n", " return function (_event) {\n", " return fig.toolbar_button_onclick(name);\n", " };\n", " }\n", "\n", " function on_mouseover_closure(tooltip) {\n", " return function (event) {\n", " if (!event.currentTarget.disabled) {\n", " return fig.toolbar_button_onmouseover(tooltip);\n", " }\n", " };\n", " }\n", "\n", " fig.buttons = {};\n", " var buttonGroup = document.createElement('div');\n", " buttonGroup.classList = 'btn-group';\n", " var button;\n", " for (var toolbar_ind in mpl.toolbar_items) {\n", " var name = mpl.toolbar_items[toolbar_ind][0];\n", " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", " var image = mpl.toolbar_items[toolbar_ind][2];\n", " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", "\n", " if (!name) {\n", " /* Instead of a spacer, we start a new button group. */\n", " if (buttonGroup.hasChildNodes()) {\n", " toolbar.appendChild(buttonGroup);\n", " }\n", " buttonGroup = document.createElement('div');\n", " buttonGroup.classList = 'btn-group';\n", " continue;\n", " }\n", "\n", " button = fig.buttons[name] = document.createElement('button');\n", " button.classList = 'btn btn-default';\n", " button.href = '#';\n", " button.title = name;\n", " button.innerHTML = '';\n", " button.addEventListener('click', on_click_closure(method_name));\n", " button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n", " buttonGroup.appendChild(button);\n", " }\n", "\n", " if (buttonGroup.hasChildNodes()) {\n", " toolbar.appendChild(buttonGroup);\n", " }\n", "\n", " // Add the status bar.\n", " var status_bar = document.createElement('span');\n", " status_bar.classList = 'mpl-message pull-right';\n", " toolbar.appendChild(status_bar);\n", " this.message = status_bar;\n", "\n", " // Add the close button to the window.\n", " var buttongrp = document.createElement('div');\n", " buttongrp.classList = 'btn-group inline pull-right';\n", " button = document.createElement('button');\n", " button.classList = 'btn btn-mini btn-primary';\n", " button.href = '#';\n", " button.title = 'Stop Interaction';\n", " button.innerHTML = '';\n", " button.addEventListener('click', function (_evt) {\n", " fig.handle_close(fig, {});\n", " });\n", " button.addEventListener(\n", " 'mouseover',\n", " on_mouseover_closure('Stop Interaction')\n", " );\n", " buttongrp.appendChild(button);\n", " var titlebar = this.root.querySelector('.ui-dialog-titlebar');\n", " titlebar.insertBefore(buttongrp, titlebar.firstChild);\n", "};\n", "\n", "mpl.figure.prototype._remove_fig_handler = function (event) {\n", " var fig = event.data.fig;\n", " if (event.target !== this) {\n", " // Ignore bubbled events from children.\n", " return;\n", " }\n", " fig.close_ws(fig, {});\n", "};\n", "\n", "mpl.figure.prototype._root_extra_style = function (el) {\n", " el.style.boxSizing = 'content-box'; // override notebook setting of border-box.\n", "};\n", "\n", "mpl.figure.prototype._canvas_extra_style = function (el) {\n", " // this is important to make the div 'focusable\n", " el.setAttribute('tabindex', 0);\n", " // reach out to IPython and tell the keyboard manager to turn it's self\n", " // off when our div gets focus\n", "\n", " // location in version 3\n", " if (IPython.notebook.keyboard_manager) {\n", " IPython.notebook.keyboard_manager.register_events(el);\n", " } else {\n", " // location in version 2\n", " IPython.keyboard_manager.register_events(el);\n", " }\n", "};\n", "\n", "mpl.figure.prototype._key_event_extra = function (event, _name) {\n", " // Check for shift+enter\n", " if (event.shiftKey && event.which === 13) {\n", " this.canvas_div.blur();\n", " // select the cell after this one\n", " var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n", " IPython.notebook.select(index + 1);\n", " }\n", "};\n", "\n", "mpl.figure.prototype.handle_save = function (fig, _msg) {\n", " fig.ondownload(fig, null);\n", "};\n", "\n", "mpl.find_output_cell = function (html_output) {\n", " // Return the cell and output element which can be found *uniquely* in the notebook.\n", " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", " // IPython event is triggered only after the cells have been serialised, which for\n", " // our purposes (turning an active figure into a static one), is too late.\n", " var cells = IPython.notebook.get_cells();\n", " var ncells = cells.length;\n", " for (var i = 0; i < ncells; i++) {\n", " var cell = cells[i];\n", " if (cell.cell_type === 'code') {\n", " for (var j = 0; j < cell.output_area.outputs.length; j++) {\n", " var data = cell.output_area.outputs[j];\n", " if (data.data) {\n", " // IPython >= 3 moved mimebundle to data attribute of output\n", " data = data.data;\n", " }\n", " if (data['text/html'] === html_output) {\n", " return [cell, data, j];\n", " }\n", " }\n", " }\n", " }\n", "};\n", "\n", "// Register the function which deals with the matplotlib target/channel.\n", "// The kernel may be null if the page has been refreshed.\n", "if (IPython.notebook.kernel !== null) {\n", " IPython.notebook.kernel.comm_manager.register_target(\n", " 'matplotlib',\n", " mpl.mpl_figure_comm\n", " );\n", "}\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "
" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%matplotlib notebook\n", "\n", "p = (ggplot(mtcars, aes(x=\"hp\", y=\"mpg\", color=\"wt\"))\n", " + p9.geom_point()\n", " + p9.theme_linedraw()\n", " )\n", "p" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "3. Nun wählen wir die Autos anhand der Zylinderanzahl aus." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "3. 1. Zunächst bereiten wir die Liste vor, die wir verwenden werden, um Teilmengen von Daten auf der Grundlage der Anzahl von Zylindern auszuwählen:" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "cylList = np.unique(mtcars[\"cyl\"])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "3. 2. Diese Liste verwenden wir nun für ein Dropdown-Menü mit der Anzahl der Zylinder:" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "cylSelect = widgets.Dropdown(\n", " options=list(cylList),\n", " value=cylList[1],\n", " description=\"Cylinders:\",\n", " disabled=False,\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "4. Die Widgets sollen dieselbe Darstellung aktualisieren können und nicht bei jeder Änderung einen neuen Plot erstellen." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "4. 1. Zunächst ermitteln wir die maximalen Bereiche der relevanten Variablen, um die Achsen bei Aktualisierungen konstant zu halten.\n", "\n", " Mit `minWt` und `maxWt` erhalten wir die Spanne der Gewichte.\n", " \n", " Mit `wtOptions` wandeln wir das NumPy-Array in eine sortierte Python-Liste von eindeutigen Werte um.\n", " \n", " In `cylSelect` wird die erste Auswahl für das Dropdown-Menü der Zylinder-Anzahl festgelegt." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "minWt = min(mtcars[\"wt\"])\n", "maxWt = max(mtcars[\"wt\"])\n", "wtOptions = list(\n", " np.sort(np.unique(mtcars.loc[mtcars[\"cyl\"] == cylList[0], \"wt\"]))\n", ")\n", "\n", "minHP = min(mtcars[\"hp\"])\n", "maxHP = max(mtcars[\"hp\"])\n", "\n", "minMPG = min(mtcars[\"mpg\"])\n", "maxMPG = max(mtcars[\"mpg\"])\n", "\n", "cylSelect = widgets.Dropdown(\n", " options=list(cylList),\n", " value=cylList[1],\n", " description=\"Cylinders:\",\n", " disabled=False,\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "4. 2. Mit `get_current_artists` ermitteln wir dann alle Objekte, die gerendert werden sollen:" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "def get_current_artists():\n", " # Return artists attached to all the matplotlib axes\n", " axes = plt.gca()\n", " return itertools.chain(\n", " axes.lines, axes.collections, axes.artists, axes.patches, axes.texts\n", " )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "4. 3. Nun erstellen wir die Funktion `plotUpdate`, die aufgerufen wird, um die Darstellung jedes Mal zu aktualisieren, wenn wir eine Auswahl ändern." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "fig = None\n", "axs = None\n", "\n", "\n", "def plotUpdate(*args):\n", " # Use global variables for matplotlib’s figure and axis.\n", " global fig, axs\n", "\n", " # Get current values of the selection widget\n", " cylValue = cylSelect.value\n", "\n", " # Create a temporary dataset that is constrained by the user's selections.\n", " tmpDat = mtcars.loc[(mtcars[\"cyl\"] == cylValue), :]\n", "\n", " # Create plotnine's plot\n", "\n", " # Using the maximum and minimum values we gatehred before, we can keep the plot axis from\n", " # changing with the cyinder selection\n", " p = (\n", " ggplot(tmpDat, aes(x=\"hp\", y=\"mpg\", color=\"wt\"))\n", " + p9.geom_point()\n", " + p9.theme_linedraw()\n", " )\n", " if fig is None:\n", " # If this is the first time a plot is made in the notebook, we let plotnine create a new\n", " # matplotlib figure and axis.\n", " fig = p.draw()\n", " axs = fig.axes\n", " else:\n", " # p = copy(p)\n", " # This helps keeping old selected data from being visualized after a new selection is made.\n", " # We delete all previously reated artists from the matplotlib axis.\n", " for artist in get_current_artists():\n", " artist.remove()\n", "\n", " # If a plot is being updated, we re-use the figure an axis created before.\n", " p._draw_using_figure(fig, axs)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "4. 4. Nun beobachten wir, ob sich der Wert in unserem Dropdown-Menü der Zylinder-Anzahl ändert:" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "cylSelect.observe(plotUpdate, \"value\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "4. 5. Mit `display` wird das Widget dargestellt:" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "95d635f429484e89bbb470ff29681ed0", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Dropdown(description='Cylinders:', index=1, options=(4, 6, 8), value=6)" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "display(cylSelect)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "4. 6. Nun plotten wir das erste Bild mit Anfangswerten." ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "application/javascript": [ "/* Put everything inside the global mpl namespace */\n", "/* global mpl */\n", "window.mpl = {};\n", "\n", "mpl.get_websocket_type = function () {\n", " if (typeof WebSocket !== 'undefined') {\n", " return WebSocket;\n", " } else if (typeof MozWebSocket !== 'undefined') {\n", " return MozWebSocket;\n", " } else {\n", " alert(\n", " 'Your browser does not have WebSocket support. ' +\n", " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", " 'Firefox 4 and 5 are also supported but you ' +\n", " 'have to enable WebSockets in about:config.'\n", " );\n", " }\n", "};\n", "\n", "mpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n", " this.id = figure_id;\n", "\n", " this.ws = websocket;\n", "\n", " this.supports_binary = this.ws.binaryType !== undefined;\n", "\n", " if (!this.supports_binary) {\n", " var warnings = document.getElementById('mpl-warnings');\n", " if (warnings) {\n", " warnings.style.display = 'block';\n", " warnings.textContent =\n", " 'This browser does not support binary websocket messages. ' +\n", " 'Performance may be slow.';\n", " }\n", " }\n", "\n", " this.imageObj = new Image();\n", "\n", " this.context = undefined;\n", " this.message = undefined;\n", " this.canvas = undefined;\n", " this.rubberband_canvas = undefined;\n", " this.rubberband_context = undefined;\n", " this.format_dropdown = undefined;\n", "\n", " this.image_mode = 'full';\n", "\n", " this.root = document.createElement('div');\n", " this.root.setAttribute('style', 'display: inline-block');\n", " this._root_extra_style(this.root);\n", "\n", " parent_element.appendChild(this.root);\n", "\n", " this._init_header(this);\n", " this._init_canvas(this);\n", " this._init_toolbar(this);\n", "\n", " var fig = this;\n", "\n", " this.waiting = false;\n", "\n", " this.ws.onopen = function () {\n", " fig.send_message('supports_binary', { value: fig.supports_binary });\n", " fig.send_message('send_image_mode', {});\n", " if (fig.ratio !== 1) {\n", " fig.send_message('set_device_pixel_ratio', {\n", " device_pixel_ratio: fig.ratio,\n", " });\n", " }\n", " fig.send_message('refresh', {});\n", " };\n", "\n", " this.imageObj.onload = function () {\n", " if (fig.image_mode === 'full') {\n", " // Full images could contain transparency (where diff images\n", " // almost always do), so we need to clear the canvas so that\n", " // there is no ghosting.\n", " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", " }\n", " fig.context.drawImage(fig.imageObj, 0, 0);\n", " };\n", "\n", " this.imageObj.onunload = function () {\n", " fig.ws.close();\n", " };\n", "\n", " this.ws.onmessage = this._make_on_message_function(this);\n", "\n", " this.ondownload = ondownload;\n", "};\n", "\n", "mpl.figure.prototype._init_header = function () {\n", " var titlebar = document.createElement('div');\n", " titlebar.classList =\n", " 'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n", " var titletext = document.createElement('div');\n", " titletext.classList = 'ui-dialog-title';\n", " titletext.setAttribute(\n", " 'style',\n", " 'width: 100%; text-align: center; padding: 3px;'\n", " );\n", " titlebar.appendChild(titletext);\n", " this.root.appendChild(titlebar);\n", " this.header = titletext;\n", "};\n", "\n", "mpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n", "\n", "mpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n", "\n", "mpl.figure.prototype._init_canvas = function () {\n", " var fig = this;\n", "\n", " var canvas_div = (this.canvas_div = document.createElement('div'));\n", " canvas_div.setAttribute('tabindex', '0');\n", " canvas_div.setAttribute(\n", " 'style',\n", " 'border: 1px solid #ddd;' +\n", " 'box-sizing: content-box;' +\n", " 'clear: both;' +\n", " 'min-height: 1px;' +\n", " 'min-width: 1px;' +\n", " 'outline: 0;' +\n", " 'overflow: hidden;' +\n", " 'position: relative;' +\n", " 'resize: both;' +\n", " 'z-index: 2;'\n", " );\n", "\n", " function on_keyboard_event_closure(name) {\n", " return function (event) {\n", " return fig.key_event(event, name);\n", " };\n", " }\n", "\n", " canvas_div.addEventListener(\n", " 'keydown',\n", " on_keyboard_event_closure('key_press')\n", " );\n", " canvas_div.addEventListener(\n", " 'keyup',\n", " on_keyboard_event_closure('key_release')\n", " );\n", "\n", " this._canvas_extra_style(canvas_div);\n", " this.root.appendChild(canvas_div);\n", "\n", " var canvas = (this.canvas = document.createElement('canvas'));\n", " canvas.classList.add('mpl-canvas');\n", " canvas.setAttribute(\n", " 'style',\n", " 'box-sizing: content-box;' +\n", " 'pointer-events: none;' +\n", " 'position: relative;' +\n", " 'z-index: 0;'\n", " );\n", "\n", " this.context = canvas.getContext('2d');\n", "\n", " var backingStore =\n", " this.context.backingStorePixelRatio ||\n", " this.context.webkitBackingStorePixelRatio ||\n", " this.context.mozBackingStorePixelRatio ||\n", " this.context.msBackingStorePixelRatio ||\n", " this.context.oBackingStorePixelRatio ||\n", " this.context.backingStorePixelRatio ||\n", " 1;\n", "\n", " this.ratio = (window.devicePixelRatio || 1) / backingStore;\n", "\n", " var rubberband_canvas = (this.rubberband_canvas = document.createElement(\n", " 'canvas'\n", " ));\n", " rubberband_canvas.setAttribute(\n", " 'style',\n", " 'box-sizing: content-box;' +\n", " 'left: 0;' +\n", " 'pointer-events: none;' +\n", " 'position: absolute;' +\n", " 'top: 0;' +\n", " 'z-index: 1;'\n", " );\n", "\n", " // Apply a ponyfill if ResizeObserver is not implemented by browser.\n", " if (this.ResizeObserver === undefined) {\n", " if (window.ResizeObserver !== undefined) {\n", " this.ResizeObserver = window.ResizeObserver;\n", " } else {\n", " var obs = _JSXTOOLS_RESIZE_OBSERVER({});\n", " this.ResizeObserver = obs.ResizeObserver;\n", " }\n", " }\n", "\n", " this.resizeObserverInstance = new this.ResizeObserver(function (entries) {\n", " var nentries = entries.length;\n", " for (var i = 0; i < nentries; i++) {\n", " var entry = entries[i];\n", " var width, height;\n", " if (entry.contentBoxSize) {\n", " if (entry.contentBoxSize instanceof Array) {\n", " // Chrome 84 implements new version of spec.\n", " width = entry.contentBoxSize[0].inlineSize;\n", " height = entry.contentBoxSize[0].blockSize;\n", " } else {\n", " // Firefox implements old version of spec.\n", " width = entry.contentBoxSize.inlineSize;\n", " height = entry.contentBoxSize.blockSize;\n", " }\n", " } else {\n", " // Chrome <84 implements even older version of spec.\n", " width = entry.contentRect.width;\n", " height = entry.contentRect.height;\n", " }\n", "\n", " // Keep the size of the canvas and rubber band canvas in sync with\n", " // the canvas container.\n", " if (entry.devicePixelContentBoxSize) {\n", " // Chrome 84 implements new version of spec.\n", " canvas.setAttribute(\n", " 'width',\n", " entry.devicePixelContentBoxSize[0].inlineSize\n", " );\n", " canvas.setAttribute(\n", " 'height',\n", " entry.devicePixelContentBoxSize[0].blockSize\n", " );\n", " } else {\n", " canvas.setAttribute('width', width * fig.ratio);\n", " canvas.setAttribute('height', height * fig.ratio);\n", " }\n", " /* This rescales the canvas back to display pixels, so that it\n", " * appears correct on HiDPI screens. */\n", " canvas.style.width = width + 'px';\n", " canvas.style.height = height + 'px';\n", "\n", " rubberband_canvas.setAttribute('width', width);\n", " rubberband_canvas.setAttribute('height', height);\n", "\n", " // And update the size in Python. We ignore the initial 0/0 size\n", " // that occurs as the element is placed into the DOM, which should\n", " // otherwise not happen due to the minimum size styling.\n", " if (fig.ws.readyState == 1 && width != 0 && height != 0) {\n", " fig.request_resize(width, height);\n", " }\n", " }\n", " });\n", " this.resizeObserverInstance.observe(canvas_div);\n", "\n", " function on_mouse_event_closure(name) {\n", " /* User Agent sniffing is bad, but WebKit is busted:\n", " * https://bugs.webkit.org/show_bug.cgi?id=144526\n", " * https://bugs.webkit.org/show_bug.cgi?id=181818\n", " * The worst that happens here is that they get an extra browser\n", " * selection when dragging, if this check fails to catch them.\n", " */\n", " var UA = navigator.userAgent;\n", " var isWebKit = /AppleWebKit/.test(UA) && !/Chrome/.test(UA);\n", " if(isWebKit) {\n", " return function (event) {\n", " /* This prevents the web browser from automatically changing to\n", " * the text insertion cursor when the button is pressed. We\n", " * want to control all of the cursor setting manually through\n", " * the 'cursor' event from matplotlib */\n", " event.preventDefault()\n", " return fig.mouse_event(event, name);\n", " };\n", " } else {\n", " return function (event) {\n", " return fig.mouse_event(event, name);\n", " };\n", " }\n", " }\n", "\n", " canvas_div.addEventListener(\n", " 'mousedown',\n", " on_mouse_event_closure('button_press')\n", " );\n", " canvas_div.addEventListener(\n", " 'mouseup',\n", " on_mouse_event_closure('button_release')\n", " );\n", " canvas_div.addEventListener(\n", " 'dblclick',\n", " on_mouse_event_closure('dblclick')\n", " );\n", " // Throttle sequential mouse events to 1 every 20ms.\n", " canvas_div.addEventListener(\n", " 'mousemove',\n", " on_mouse_event_closure('motion_notify')\n", " );\n", "\n", " canvas_div.addEventListener(\n", " 'mouseenter',\n", " on_mouse_event_closure('figure_enter')\n", " );\n", " canvas_div.addEventListener(\n", " 'mouseleave',\n", " on_mouse_event_closure('figure_leave')\n", " );\n", "\n", " canvas_div.addEventListener('wheel', function (event) {\n", " if (event.deltaY < 0) {\n", " event.step = 1;\n", " } else {\n", " event.step = -1;\n", " }\n", " on_mouse_event_closure('scroll')(event);\n", " });\n", "\n", " canvas_div.appendChild(canvas);\n", " canvas_div.appendChild(rubberband_canvas);\n", "\n", " this.rubberband_context = rubberband_canvas.getContext('2d');\n", " this.rubberband_context.strokeStyle = '#000000';\n", "\n", " this._resize_canvas = function (width, height, forward) {\n", " if (forward) {\n", " canvas_div.style.width = width + 'px';\n", " canvas_div.style.height = height + 'px';\n", " }\n", " };\n", "\n", " // Disable right mouse context menu.\n", " canvas_div.addEventListener('contextmenu', function (_e) {\n", " event.preventDefault();\n", " return false;\n", " });\n", "\n", " function set_focus() {\n", " canvas.focus();\n", " canvas_div.focus();\n", " }\n", "\n", " window.setTimeout(set_focus, 100);\n", "};\n", "\n", "mpl.figure.prototype._init_toolbar = function () {\n", " var fig = this;\n", "\n", " var toolbar = document.createElement('div');\n", " toolbar.classList = 'mpl-toolbar';\n", " this.root.appendChild(toolbar);\n", "\n", " function on_click_closure(name) {\n", " return function (_event) {\n", " return fig.toolbar_button_onclick(name);\n", " };\n", " }\n", "\n", " function on_mouseover_closure(tooltip) {\n", " return function (event) {\n", " if (!event.currentTarget.disabled) {\n", " return fig.toolbar_button_onmouseover(tooltip);\n", " }\n", " };\n", " }\n", "\n", " fig.buttons = {};\n", " var buttonGroup = document.createElement('div');\n", " buttonGroup.classList = 'mpl-button-group';\n", " for (var toolbar_ind in mpl.toolbar_items) {\n", " var name = mpl.toolbar_items[toolbar_ind][0];\n", " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", " var image = mpl.toolbar_items[toolbar_ind][2];\n", " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", "\n", " if (!name) {\n", " /* Instead of a spacer, we start a new button group. */\n", " if (buttonGroup.hasChildNodes()) {\n", " toolbar.appendChild(buttonGroup);\n", " }\n", " buttonGroup = document.createElement('div');\n", " buttonGroup.classList = 'mpl-button-group';\n", " continue;\n", " }\n", "\n", " var button = (fig.buttons[name] = document.createElement('button'));\n", " button.classList = 'mpl-widget';\n", " button.setAttribute('role', 'button');\n", " button.setAttribute('aria-disabled', 'false');\n", " button.addEventListener('click', on_click_closure(method_name));\n", " button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n", "\n", " var icon_img = document.createElement('img');\n", " icon_img.src = '_images/' + image + '.png';\n", " icon_img.srcset = '_images/' + image + '_large.png 2x';\n", " icon_img.alt = tooltip;\n", " button.appendChild(icon_img);\n", "\n", " buttonGroup.appendChild(button);\n", " }\n", "\n", " if (buttonGroup.hasChildNodes()) {\n", " toolbar.appendChild(buttonGroup);\n", " }\n", "\n", " var fmt_picker = document.createElement('select');\n", " fmt_picker.classList = 'mpl-widget';\n", " toolbar.appendChild(fmt_picker);\n", " this.format_dropdown = fmt_picker;\n", "\n", " for (var ind in mpl.extensions) {\n", " var fmt = mpl.extensions[ind];\n", " var option = document.createElement('option');\n", " option.selected = fmt === mpl.default_extension;\n", " option.innerHTML = fmt;\n", " fmt_picker.appendChild(option);\n", " }\n", "\n", " var status_bar = document.createElement('span');\n", " status_bar.classList = 'mpl-message';\n", " toolbar.appendChild(status_bar);\n", " this.message = status_bar;\n", "};\n", "\n", "mpl.figure.prototype.request_resize = function (x_pixels, y_pixels) {\n", " // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n", " // which will in turn request a refresh of the image.\n", " this.send_message('resize', { width: x_pixels, height: y_pixels });\n", "};\n", "\n", "mpl.figure.prototype.send_message = function (type, properties) {\n", " properties['type'] = type;\n", " properties['figure_id'] = this.id;\n", " this.ws.send(JSON.stringify(properties));\n", "};\n", "\n", "mpl.figure.prototype.send_draw_message = function () {\n", " if (!this.waiting) {\n", " this.waiting = true;\n", " this.ws.send(JSON.stringify({ type: 'draw', figure_id: this.id }));\n", " }\n", "};\n", "\n", "mpl.figure.prototype.handle_save = function (fig, _msg) {\n", " var format_dropdown = fig.format_dropdown;\n", " var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n", " fig.ondownload(fig, format);\n", "};\n", "\n", "mpl.figure.prototype.handle_resize = function (fig, msg) {\n", " var size = msg['size'];\n", " if (size[0] !== fig.canvas.width || size[1] !== fig.canvas.height) {\n", " fig._resize_canvas(size[0], size[1], msg['forward']);\n", " fig.send_message('refresh', {});\n", " }\n", "};\n", "\n", "mpl.figure.prototype.handle_rubberband = function (fig, msg) {\n", " var x0 = msg['x0'] / fig.ratio;\n", " var y0 = (fig.canvas.height - msg['y0']) / fig.ratio;\n", " var x1 = msg['x1'] / fig.ratio;\n", " var y1 = (fig.canvas.height - msg['y1']) / fig.ratio;\n", " x0 = Math.floor(x0) + 0.5;\n", " y0 = Math.floor(y0) + 0.5;\n", " x1 = Math.floor(x1) + 0.5;\n", " y1 = Math.floor(y1) + 0.5;\n", " var min_x = Math.min(x0, x1);\n", " var min_y = Math.min(y0, y1);\n", " var width = Math.abs(x1 - x0);\n", " var height = Math.abs(y1 - y0);\n", "\n", " fig.rubberband_context.clearRect(\n", " 0,\n", " 0,\n", " fig.canvas.width / fig.ratio,\n", " fig.canvas.height / fig.ratio\n", " );\n", "\n", " fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n", "};\n", "\n", "mpl.figure.prototype.handle_figure_label = function (fig, msg) {\n", " // Updates the figure title.\n", " fig.header.textContent = msg['label'];\n", "};\n", "\n", "mpl.figure.prototype.handle_cursor = function (fig, msg) {\n", " fig.canvas_div.style.cursor = msg['cursor'];\n", "};\n", "\n", "mpl.figure.prototype.handle_message = function (fig, msg) {\n", " fig.message.textContent = msg['message'];\n", "};\n", "\n", "mpl.figure.prototype.handle_draw = function (fig, _msg) {\n", " // Request the server to send over a new figure.\n", " fig.send_draw_message();\n", "};\n", "\n", "mpl.figure.prototype.handle_image_mode = function (fig, msg) {\n", " fig.image_mode = msg['mode'];\n", "};\n", "\n", "mpl.figure.prototype.handle_history_buttons = function (fig, msg) {\n", " for (var key in msg) {\n", " if (!(key in fig.buttons)) {\n", " continue;\n", " }\n", " fig.buttons[key].disabled = !msg[key];\n", " fig.buttons[key].setAttribute('aria-disabled', !msg[key]);\n", " }\n", "};\n", "\n", "mpl.figure.prototype.handle_navigate_mode = function (fig, msg) {\n", " if (msg['mode'] === 'PAN') {\n", " fig.buttons['Pan'].classList.add('active');\n", " fig.buttons['Zoom'].classList.remove('active');\n", " } else if (msg['mode'] === 'ZOOM') {\n", " fig.buttons['Pan'].classList.remove('active');\n", " fig.buttons['Zoom'].classList.add('active');\n", " } else {\n", " fig.buttons['Pan'].classList.remove('active');\n", " fig.buttons['Zoom'].classList.remove('active');\n", " }\n", "};\n", "\n", "mpl.figure.prototype.updated_canvas_event = function () {\n", " // Called whenever the canvas gets updated.\n", " this.send_message('ack', {});\n", "};\n", "\n", "// A function to construct a web socket function for onmessage handling.\n", "// Called in the figure constructor.\n", "mpl.figure.prototype._make_on_message_function = function (fig) {\n", " return function socket_on_message(evt) {\n", " if (evt.data instanceof Blob) {\n", " var img = evt.data;\n", " if (img.type !== 'image/png') {\n", " /* FIXME: We get \"Resource interpreted as Image but\n", " * transferred with MIME type text/plain:\" errors on\n", " * Chrome. But how to set the MIME type? It doesn't seem\n", " * to be part of the websocket stream */\n", " img.type = 'image/png';\n", " }\n", "\n", " /* Free the memory for the previous frames */\n", " if (fig.imageObj.src) {\n", " (window.URL || window.webkitURL).revokeObjectURL(\n", " fig.imageObj.src\n", " );\n", " }\n", "\n", " fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n", " img\n", " );\n", " fig.updated_canvas_event();\n", " fig.waiting = false;\n", " return;\n", " } else if (\n", " typeof evt.data === 'string' &&\n", " evt.data.slice(0, 21) === 'data:image/png;base64'\n", " ) {\n", " fig.imageObj.src = evt.data;\n", " fig.updated_canvas_event();\n", " fig.waiting = false;\n", " return;\n", " }\n", "\n", " var msg = JSON.parse(evt.data);\n", " var msg_type = msg['type'];\n", "\n", " // Call the \"handle_{type}\" callback, which takes\n", " // the figure and JSON message as its only arguments.\n", " try {\n", " var callback = fig['handle_' + msg_type];\n", " } catch (e) {\n", " console.log(\n", " \"No handler for the '\" + msg_type + \"' message type: \",\n", " msg\n", " );\n", " return;\n", " }\n", "\n", " if (callback) {\n", " try {\n", " // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n", " callback(fig, msg);\n", " } catch (e) {\n", " console.log(\n", " \"Exception inside the 'handler_\" + msg_type + \"' callback:\",\n", " e,\n", " e.stack,\n", " msg\n", " );\n", " }\n", " }\n", " };\n", "};\n", "\n", "function getModifiers(event) {\n", " var mods = [];\n", " if (event.ctrlKey) {\n", " mods.push('ctrl');\n", " }\n", " if (event.altKey) {\n", " mods.push('alt');\n", " }\n", " if (event.shiftKey) {\n", " mods.push('shift');\n", " }\n", " if (event.metaKey) {\n", " mods.push('meta');\n", " }\n", " return mods;\n", "}\n", "\n", "/*\n", " * return a copy of an object with only non-object keys\n", " * we need this to avoid circular references\n", " * https://stackoverflow.com/a/24161582/3208463\n", " */\n", "function simpleKeys(original) {\n", " return Object.keys(original).reduce(function (obj, key) {\n", " if (typeof original[key] !== 'object') {\n", " obj[key] = original[key];\n", " }\n", " return obj;\n", " }, {});\n", "}\n", "\n", "mpl.figure.prototype.mouse_event = function (event, name) {\n", " if (name === 'button_press') {\n", " this.canvas.focus();\n", " this.canvas_div.focus();\n", " }\n", "\n", " // from https://stackoverflow.com/q/1114465\n", " var boundingRect = this.canvas.getBoundingClientRect();\n", " var x = (event.clientX - boundingRect.left) * this.ratio;\n", " var y = (event.clientY - boundingRect.top) * this.ratio;\n", "\n", " this.send_message(name, {\n", " x: x,\n", " y: y,\n", " button: event.button,\n", " step: event.step,\n", " modifiers: getModifiers(event),\n", " guiEvent: simpleKeys(event),\n", " });\n", "\n", " return false;\n", "};\n", "\n", "mpl.figure.prototype._key_event_extra = function (_event, _name) {\n", " // Handle any extra behaviour associated with a key event\n", "};\n", "\n", "mpl.figure.prototype.key_event = function (event, name) {\n", " // Prevent repeat events\n", " if (name === 'key_press') {\n", " if (event.key === this._key) {\n", " return;\n", " } else {\n", " this._key = event.key;\n", " }\n", " }\n", " if (name === 'key_release') {\n", " this._key = null;\n", " }\n", "\n", " var value = '';\n", " if (event.ctrlKey && event.key !== 'Control') {\n", " value += 'ctrl+';\n", " }\n", " else if (event.altKey && event.key !== 'Alt') {\n", " value += 'alt+';\n", " }\n", " else if (event.shiftKey && event.key !== 'Shift') {\n", " value += 'shift+';\n", " }\n", "\n", " value += 'k' + event.key;\n", "\n", " this._key_event_extra(event, name);\n", "\n", " this.send_message(name, { key: value, guiEvent: simpleKeys(event) });\n", " return false;\n", "};\n", "\n", "mpl.figure.prototype.toolbar_button_onclick = function (name) {\n", " if (name === 'download') {\n", " this.handle_save(this, null);\n", " } else {\n", " this.send_message('toolbar_button', { name: name });\n", " }\n", "};\n", "\n", "mpl.figure.prototype.toolbar_button_onmouseover = function (tooltip) {\n", " this.message.textContent = tooltip;\n", "};\n", "\n", "///////////////// REMAINING CONTENT GENERATED BY embed_js.py /////////////////\n", "// prettier-ignore\n", "var _JSXTOOLS_RESIZE_OBSERVER=function(A){var t,i=new WeakMap,n=new WeakMap,a=new WeakMap,r=new WeakMap,o=new Set;function s(e){if(!(this instanceof s))throw new TypeError(\"Constructor requires 'new' operator\");i.set(this,e)}function h(){throw new TypeError(\"Function is not a constructor\")}function c(e,t,i,n){e=0 in arguments?Number(arguments[0]):0,t=1 in arguments?Number(arguments[1]):0,i=2 in arguments?Number(arguments[2]):0,n=3 in arguments?Number(arguments[3]):0,this.right=(this.x=this.left=e)+(this.width=i),this.bottom=(this.y=this.top=t)+(this.height=n),Object.freeze(this)}function d(){t=requestAnimationFrame(d);var s=new WeakMap,p=new Set;o.forEach((function(t){r.get(t).forEach((function(i){var r=t instanceof window.SVGElement,o=a.get(t),d=r?0:parseFloat(o.paddingTop),f=r?0:parseFloat(o.paddingRight),l=r?0:parseFloat(o.paddingBottom),u=r?0:parseFloat(o.paddingLeft),g=r?0:parseFloat(o.borderTopWidth),m=r?0:parseFloat(o.borderRightWidth),w=r?0:parseFloat(o.borderBottomWidth),b=u+f,F=d+l,v=(r?0:parseFloat(o.borderLeftWidth))+m,W=g+w,y=r?0:t.offsetHeight-W-t.clientHeight,E=r?0:t.offsetWidth-v-t.clientWidth,R=b+v,z=F+W,M=r?t.width:parseFloat(o.width)-R-E,O=r?t.height:parseFloat(o.height)-z-y;if(n.has(t)){var k=n.get(t);if(k[0]===M&&k[1]===O)return}n.set(t,[M,O]);var S=Object.create(h.prototype);S.target=t,S.contentRect=new c(u,d,M,O),s.has(i)||(s.set(i,[]),p.add(i)),s.get(i).push(S)}))})),p.forEach((function(e){i.get(e).call(e,s.get(e),e)}))}return s.prototype.observe=function(i){if(i instanceof window.Element){r.has(i)||(r.set(i,new Set),o.add(i),a.set(i,window.getComputedStyle(i)));var n=r.get(i);n.has(this)||n.add(this),cancelAnimationFrame(t),t=requestAnimationFrame(d)}},s.prototype.unobserve=function(i){if(i instanceof window.Element&&r.has(i)){var n=r.get(i);n.has(this)&&(n.delete(this),n.size||(r.delete(i),o.delete(i))),n.size||r.delete(i),o.size||cancelAnimationFrame(t)}},A.DOMRectReadOnly=c,A.ResizeObserver=s,A.ResizeObserverEntry=h,A}; // eslint-disable-line\n", "mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Left button pans, Right button zooms\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-arrows\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\\nx/y fixes axis\", \"fa fa-square-o\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o\", \"download\"]];\n", "\n", "mpl.extensions = [\"eps\", \"jpeg\", \"pgf\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\", \"webp\"];\n", "\n", "mpl.default_extension = \"png\";/* global mpl */\n", "\n", "var comm_websocket_adapter = function (comm) {\n", " // Create a \"websocket\"-like object which calls the given IPython comm\n", " // object with the appropriate methods. Currently this is a non binary\n", " // socket, so there is still some room for performance tuning.\n", " var ws = {};\n", "\n", " ws.binaryType = comm.kernel.ws.binaryType;\n", " ws.readyState = comm.kernel.ws.readyState;\n", " function updateReadyState(_event) {\n", " if (comm.kernel.ws) {\n", " ws.readyState = comm.kernel.ws.readyState;\n", " } else {\n", " ws.readyState = 3; // Closed state.\n", " }\n", " }\n", " comm.kernel.ws.addEventListener('open', updateReadyState);\n", " comm.kernel.ws.addEventListener('close', updateReadyState);\n", " comm.kernel.ws.addEventListener('error', updateReadyState);\n", "\n", " ws.close = function () {\n", " comm.close();\n", " };\n", " ws.send = function (m) {\n", " //console.log('sending', m);\n", " comm.send(m);\n", " };\n", " // Register the callback with on_msg.\n", " comm.on_msg(function (msg) {\n", " //console.log('receiving', msg['content']['data'], msg);\n", " var data = msg['content']['data'];\n", " if (data['blob'] !== undefined) {\n", " data = {\n", " data: new Blob(msg['buffers'], { type: data['blob'] }),\n", " };\n", " }\n", " // Pass the mpl event to the overridden (by mpl) onmessage function.\n", " ws.onmessage(data);\n", " });\n", " return ws;\n", "};\n", "\n", "mpl.mpl_figure_comm = function (comm, msg) {\n", " // This is the function which gets called when the mpl process\n", " // starts-up an IPython Comm through the \"matplotlib\" channel.\n", "\n", " var id = msg.content.data.id;\n", " // Get hold of the div created by the display call when the Comm\n", " // socket was opened in Python.\n", " var element = document.getElementById(id);\n", " var ws_proxy = comm_websocket_adapter(comm);\n", "\n", " function ondownload(figure, _format) {\n", " window.open(figure.canvas.toDataURL());\n", " }\n", "\n", " var fig = new mpl.figure(id, ws_proxy, ondownload, element);\n", "\n", " // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n", " // web socket which is closed, not our websocket->open comm proxy.\n", " ws_proxy.onopen();\n", "\n", " fig.parent_element = element;\n", " fig.cell_info = mpl.find_output_cell(\"
\");\n", " if (!fig.cell_info) {\n", " console.error('Failed to find cell for figure', id, fig);\n", " return;\n", " }\n", " fig.cell_info[0].output_area.element.on(\n", " 'cleared',\n", " { fig: fig },\n", " fig._remove_fig_handler\n", " );\n", "};\n", "\n", "mpl.figure.prototype.handle_close = function (fig, msg) {\n", " var width = fig.canvas.width / fig.ratio;\n", " fig.cell_info[0].output_area.element.off(\n", " 'cleared',\n", " fig._remove_fig_handler\n", " );\n", " fig.resizeObserverInstance.unobserve(fig.canvas_div);\n", "\n", " // Update the output cell to use the data from the current canvas.\n", " fig.push_to_output();\n", " var dataURL = fig.canvas.toDataURL();\n", " // Re-enable the keyboard manager in IPython - without this line, in FF,\n", " // the notebook keyboard shortcuts fail.\n", " IPython.keyboard_manager.enable();\n", " fig.parent_element.innerHTML =\n", " '';\n", " fig.close_ws(fig, msg);\n", "};\n", "\n", "mpl.figure.prototype.close_ws = function (fig, msg) {\n", " fig.send_message('closing', msg);\n", " // fig.ws.close()\n", "};\n", "\n", "mpl.figure.prototype.push_to_output = function (_remove_interactive) {\n", " // Turn the data on the canvas into data in the output cell.\n", " var width = this.canvas.width / this.ratio;\n", " var dataURL = this.canvas.toDataURL();\n", " this.cell_info[1]['text/html'] =\n", " '';\n", "};\n", "\n", "mpl.figure.prototype.updated_canvas_event = function () {\n", " // Tell IPython that the notebook contents must change.\n", " IPython.notebook.set_dirty(true);\n", " this.send_message('ack', {});\n", " var fig = this;\n", " // Wait a second, then push the new image to the DOM so\n", " // that it is saved nicely (might be nice to debounce this).\n", " setTimeout(function () {\n", " fig.push_to_output();\n", " }, 1000);\n", "};\n", "\n", "mpl.figure.prototype._init_toolbar = function () {\n", " var fig = this;\n", "\n", " var toolbar = document.createElement('div');\n", " toolbar.classList = 'btn-toolbar';\n", " this.root.appendChild(toolbar);\n", "\n", " function on_click_closure(name) {\n", " return function (_event) {\n", " return fig.toolbar_button_onclick(name);\n", " };\n", " }\n", "\n", " function on_mouseover_closure(tooltip) {\n", " return function (event) {\n", " if (!event.currentTarget.disabled) {\n", " return fig.toolbar_button_onmouseover(tooltip);\n", " }\n", " };\n", " }\n", "\n", " fig.buttons = {};\n", " var buttonGroup = document.createElement('div');\n", " buttonGroup.classList = 'btn-group';\n", " var button;\n", " for (var toolbar_ind in mpl.toolbar_items) {\n", " var name = mpl.toolbar_items[toolbar_ind][0];\n", " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", " var image = mpl.toolbar_items[toolbar_ind][2];\n", " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", "\n", " if (!name) {\n", " /* Instead of a spacer, we start a new button group. */\n", " if (buttonGroup.hasChildNodes()) {\n", " toolbar.appendChild(buttonGroup);\n", " }\n", " buttonGroup = document.createElement('div');\n", " buttonGroup.classList = 'btn-group';\n", " continue;\n", " }\n", "\n", " button = fig.buttons[name] = document.createElement('button');\n", " button.classList = 'btn btn-default';\n", " button.href = '#';\n", " button.title = name;\n", " button.innerHTML = '';\n", " button.addEventListener('click', on_click_closure(method_name));\n", " button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n", " buttonGroup.appendChild(button);\n", " }\n", "\n", " if (buttonGroup.hasChildNodes()) {\n", " toolbar.appendChild(buttonGroup);\n", " }\n", "\n", " // Add the status bar.\n", " var status_bar = document.createElement('span');\n", " status_bar.classList = 'mpl-message pull-right';\n", " toolbar.appendChild(status_bar);\n", " this.message = status_bar;\n", "\n", " // Add the close button to the window.\n", " var buttongrp = document.createElement('div');\n", " buttongrp.classList = 'btn-group inline pull-right';\n", " button = document.createElement('button');\n", " button.classList = 'btn btn-mini btn-primary';\n", " button.href = '#';\n", " button.title = 'Stop Interaction';\n", " button.innerHTML = '';\n", " button.addEventListener('click', function (_evt) {\n", " fig.handle_close(fig, {});\n", " });\n", " button.addEventListener(\n", " 'mouseover',\n", " on_mouseover_closure('Stop Interaction')\n", " );\n", " buttongrp.appendChild(button);\n", " var titlebar = this.root.querySelector('.ui-dialog-titlebar');\n", " titlebar.insertBefore(buttongrp, titlebar.firstChild);\n", "};\n", "\n", "mpl.figure.prototype._remove_fig_handler = function (event) {\n", " var fig = event.data.fig;\n", " if (event.target !== this) {\n", " // Ignore bubbled events from children.\n", " return;\n", " }\n", " fig.close_ws(fig, {});\n", "};\n", "\n", "mpl.figure.prototype._root_extra_style = function (el) {\n", " el.style.boxSizing = 'content-box'; // override notebook setting of border-box.\n", "};\n", "\n", "mpl.figure.prototype._canvas_extra_style = function (el) {\n", " // this is important to make the div 'focusable\n", " el.setAttribute('tabindex', 0);\n", " // reach out to IPython and tell the keyboard manager to turn it's self\n", " // off when our div gets focus\n", "\n", " // location in version 3\n", " if (IPython.notebook.keyboard_manager) {\n", " IPython.notebook.keyboard_manager.register_events(el);\n", " } else {\n", " // location in version 2\n", " IPython.keyboard_manager.register_events(el);\n", " }\n", "};\n", "\n", "mpl.figure.prototype._key_event_extra = function (event, _name) {\n", " // Check for shift+enter\n", " if (event.shiftKey && event.which === 13) {\n", " this.canvas_div.blur();\n", " // select the cell after this one\n", " var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n", " IPython.notebook.select(index + 1);\n", " }\n", "};\n", "\n", "mpl.figure.prototype.handle_save = function (fig, _msg) {\n", " fig.ondownload(fig, null);\n", "};\n", "\n", "mpl.find_output_cell = function (html_output) {\n", " // Return the cell and output element which can be found *uniquely* in the notebook.\n", " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", " // IPython event is triggered only after the cells have been serialised, which for\n", " // our purposes (turning an active figure into a static one), is too late.\n", " var cells = IPython.notebook.get_cells();\n", " var ncells = cells.length;\n", " for (var i = 0; i < ncells; i++) {\n", " var cell = cells[i];\n", " if (cell.cell_type === 'code') {\n", " for (var j = 0; j < cell.output_area.outputs.length; j++) {\n", " var data = cell.output_area.outputs[j];\n", " if (data.data) {\n", " // IPython >= 3 moved mimebundle to data attribute of output\n", " data = data.data;\n", " }\n", " if (data['text/html'] === html_output) {\n", " return [cell, data, j];\n", " }\n", " }\n", " }\n", " }\n", "};\n", "\n", "// Register the function which deals with the matplotlib target/channel.\n", "// The kernel may be null if the page has been refreshed.\n", "if (IPython.notebook.kernel !== null) {\n", " IPython.notebook.kernel.comm_manager.register_target(\n", " 'matplotlib',\n", " mpl.mpl_figure_comm\n", " );\n", "}\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plotUpdate()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "4. 7. Mit der Matplotlib-Funktion `tight_layout()` passen wir die Figur an die Abmessungen des Plots an:" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/var/folders/hk/s8m0bblj0g10hw885gld52mc0000gn/T/ipykernel_23701/2925123646.py:2: UserWarning: The figure layout has changed to tight\n" ] } ], "source": [ "plt.tight_layout()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "4. 8. Trick, damit das erste gerenderte Bild dem `tight_layout` entspricht. Ohne diesen Befehl würde die Figur erst nach der ersten Aktualisierung in ihre Abmessungen passen." ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "cylSelect.value = cylList[0]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "5. Bereichsregler hinzufügen\n", "\n", " Nun schränken wir mit einem Bereichsregler die Daten basierend auf dem Fahrzeuggewicht ein:" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "918d1462a15d4162b22c8a01fba1a972", "version_major": 2, "version_minor": 0 }, "text/plain": [ "HBox(children=(Dropdown(description='Cylinders:', index=1, options=(4, 6, 8), value=6), SelectionRangeSlider(d…" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "/* Put everything inside the global mpl namespace */\n", "/* global mpl */\n", "window.mpl = {};\n", "\n", "mpl.get_websocket_type = function () {\n", " if (typeof WebSocket !== 'undefined') {\n", " return WebSocket;\n", " } else if (typeof MozWebSocket !== 'undefined') {\n", " return MozWebSocket;\n", " } else {\n", " alert(\n", " 'Your browser does not have WebSocket support. ' +\n", " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", " 'Firefox 4 and 5 are also supported but you ' +\n", " 'have to enable WebSockets in about:config.'\n", " );\n", " }\n", "};\n", "\n", "mpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n", " this.id = figure_id;\n", "\n", " this.ws = websocket;\n", "\n", " this.supports_binary = this.ws.binaryType !== undefined;\n", "\n", " if (!this.supports_binary) {\n", " var warnings = document.getElementById('mpl-warnings');\n", " if (warnings) {\n", " warnings.style.display = 'block';\n", " warnings.textContent =\n", " 'This browser does not support binary websocket messages. ' +\n", " 'Performance may be slow.';\n", " }\n", " }\n", "\n", " this.imageObj = new Image();\n", "\n", " this.context = undefined;\n", " this.message = undefined;\n", " this.canvas = undefined;\n", " this.rubberband_canvas = undefined;\n", " this.rubberband_context = undefined;\n", " this.format_dropdown = undefined;\n", "\n", " this.image_mode = 'full';\n", "\n", " this.root = document.createElement('div');\n", " this.root.setAttribute('style', 'display: inline-block');\n", " this._root_extra_style(this.root);\n", "\n", " parent_element.appendChild(this.root);\n", "\n", " this._init_header(this);\n", " this._init_canvas(this);\n", " this._init_toolbar(this);\n", "\n", " var fig = this;\n", "\n", " this.waiting = false;\n", "\n", " this.ws.onopen = function () {\n", " fig.send_message('supports_binary', { value: fig.supports_binary });\n", " fig.send_message('send_image_mode', {});\n", " if (fig.ratio !== 1) {\n", " fig.send_message('set_device_pixel_ratio', {\n", " device_pixel_ratio: fig.ratio,\n", " });\n", " }\n", " fig.send_message('refresh', {});\n", " };\n", "\n", " this.imageObj.onload = function () {\n", " if (fig.image_mode === 'full') {\n", " // Full images could contain transparency (where diff images\n", " // almost always do), so we need to clear the canvas so that\n", " // there is no ghosting.\n", " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", " }\n", " fig.context.drawImage(fig.imageObj, 0, 0);\n", " };\n", "\n", " this.imageObj.onunload = function () {\n", " fig.ws.close();\n", " };\n", "\n", " this.ws.onmessage = this._make_on_message_function(this);\n", "\n", " this.ondownload = ondownload;\n", "};\n", "\n", "mpl.figure.prototype._init_header = function () {\n", " var titlebar = document.createElement('div');\n", " titlebar.classList =\n", " 'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n", " var titletext = document.createElement('div');\n", " titletext.classList = 'ui-dialog-title';\n", " titletext.setAttribute(\n", " 'style',\n", " 'width: 100%; text-align: center; padding: 3px;'\n", " );\n", " titlebar.appendChild(titletext);\n", " this.root.appendChild(titlebar);\n", " this.header = titletext;\n", "};\n", "\n", "mpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n", "\n", "mpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n", "\n", "mpl.figure.prototype._init_canvas = function () {\n", " var fig = this;\n", "\n", " var canvas_div = (this.canvas_div = document.createElement('div'));\n", " canvas_div.setAttribute('tabindex', '0');\n", " canvas_div.setAttribute(\n", " 'style',\n", " 'border: 1px solid #ddd;' +\n", " 'box-sizing: content-box;' +\n", " 'clear: both;' +\n", " 'min-height: 1px;' +\n", " 'min-width: 1px;' +\n", " 'outline: 0;' +\n", " 'overflow: hidden;' +\n", " 'position: relative;' +\n", " 'resize: both;' +\n", " 'z-index: 2;'\n", " );\n", "\n", " function on_keyboard_event_closure(name) {\n", " return function (event) {\n", " return fig.key_event(event, name);\n", " };\n", " }\n", "\n", " canvas_div.addEventListener(\n", " 'keydown',\n", " on_keyboard_event_closure('key_press')\n", " );\n", " canvas_div.addEventListener(\n", " 'keyup',\n", " on_keyboard_event_closure('key_release')\n", " );\n", "\n", " this._canvas_extra_style(canvas_div);\n", " this.root.appendChild(canvas_div);\n", "\n", " var canvas = (this.canvas = document.createElement('canvas'));\n", " canvas.classList.add('mpl-canvas');\n", " canvas.setAttribute(\n", " 'style',\n", " 'box-sizing: content-box;' +\n", " 'pointer-events: none;' +\n", " 'position: relative;' +\n", " 'z-index: 0;'\n", " );\n", "\n", " this.context = canvas.getContext('2d');\n", "\n", " var backingStore =\n", " this.context.backingStorePixelRatio ||\n", " this.context.webkitBackingStorePixelRatio ||\n", " this.context.mozBackingStorePixelRatio ||\n", " this.context.msBackingStorePixelRatio ||\n", " this.context.oBackingStorePixelRatio ||\n", " this.context.backingStorePixelRatio ||\n", " 1;\n", "\n", " this.ratio = (window.devicePixelRatio || 1) / backingStore;\n", "\n", " var rubberband_canvas = (this.rubberband_canvas = document.createElement(\n", " 'canvas'\n", " ));\n", " rubberband_canvas.setAttribute(\n", " 'style',\n", " 'box-sizing: content-box;' +\n", " 'left: 0;' +\n", " 'pointer-events: none;' +\n", " 'position: absolute;' +\n", " 'top: 0;' +\n", " 'z-index: 1;'\n", " );\n", "\n", " // Apply a ponyfill if ResizeObserver is not implemented by browser.\n", " if (this.ResizeObserver === undefined) {\n", " if (window.ResizeObserver !== undefined) {\n", " this.ResizeObserver = window.ResizeObserver;\n", " } else {\n", " var obs = _JSXTOOLS_RESIZE_OBSERVER({});\n", " this.ResizeObserver = obs.ResizeObserver;\n", " }\n", " }\n", "\n", " this.resizeObserverInstance = new this.ResizeObserver(function (entries) {\n", " var nentries = entries.length;\n", " for (var i = 0; i < nentries; i++) {\n", " var entry = entries[i];\n", " var width, height;\n", " if (entry.contentBoxSize) {\n", " if (entry.contentBoxSize instanceof Array) {\n", " // Chrome 84 implements new version of spec.\n", " width = entry.contentBoxSize[0].inlineSize;\n", " height = entry.contentBoxSize[0].blockSize;\n", " } else {\n", " // Firefox implements old version of spec.\n", " width = entry.contentBoxSize.inlineSize;\n", " height = entry.contentBoxSize.blockSize;\n", " }\n", " } else {\n", " // Chrome <84 implements even older version of spec.\n", " width = entry.contentRect.width;\n", " height = entry.contentRect.height;\n", " }\n", "\n", " // Keep the size of the canvas and rubber band canvas in sync with\n", " // the canvas container.\n", " if (entry.devicePixelContentBoxSize) {\n", " // Chrome 84 implements new version of spec.\n", " canvas.setAttribute(\n", " 'width',\n", " entry.devicePixelContentBoxSize[0].inlineSize\n", " );\n", " canvas.setAttribute(\n", " 'height',\n", " entry.devicePixelContentBoxSize[0].blockSize\n", " );\n", " } else {\n", " canvas.setAttribute('width', width * fig.ratio);\n", " canvas.setAttribute('height', height * fig.ratio);\n", " }\n", " /* This rescales the canvas back to display pixels, so that it\n", " * appears correct on HiDPI screens. */\n", " canvas.style.width = width + 'px';\n", " canvas.style.height = height + 'px';\n", "\n", " rubberband_canvas.setAttribute('width', width);\n", " rubberband_canvas.setAttribute('height', height);\n", "\n", " // And update the size in Python. We ignore the initial 0/0 size\n", " // that occurs as the element is placed into the DOM, which should\n", " // otherwise not happen due to the minimum size styling.\n", " if (fig.ws.readyState == 1 && width != 0 && height != 0) {\n", " fig.request_resize(width, height);\n", " }\n", " }\n", " });\n", " this.resizeObserverInstance.observe(canvas_div);\n", "\n", " function on_mouse_event_closure(name) {\n", " /* User Agent sniffing is bad, but WebKit is busted:\n", " * https://bugs.webkit.org/show_bug.cgi?id=144526\n", " * https://bugs.webkit.org/show_bug.cgi?id=181818\n", " * The worst that happens here is that they get an extra browser\n", " * selection when dragging, if this check fails to catch them.\n", " */\n", " var UA = navigator.userAgent;\n", " var isWebKit = /AppleWebKit/.test(UA) && !/Chrome/.test(UA);\n", " if(isWebKit) {\n", " return function (event) {\n", " /* This prevents the web browser from automatically changing to\n", " * the text insertion cursor when the button is pressed. We\n", " * want to control all of the cursor setting manually through\n", " * the 'cursor' event from matplotlib */\n", " event.preventDefault()\n", " return fig.mouse_event(event, name);\n", " };\n", " } else {\n", " return function (event) {\n", " return fig.mouse_event(event, name);\n", " };\n", " }\n", " }\n", "\n", " canvas_div.addEventListener(\n", " 'mousedown',\n", " on_mouse_event_closure('button_press')\n", " );\n", " canvas_div.addEventListener(\n", " 'mouseup',\n", " on_mouse_event_closure('button_release')\n", " );\n", " canvas_div.addEventListener(\n", " 'dblclick',\n", " on_mouse_event_closure('dblclick')\n", " );\n", " // Throttle sequential mouse events to 1 every 20ms.\n", " canvas_div.addEventListener(\n", " 'mousemove',\n", " on_mouse_event_closure('motion_notify')\n", " );\n", "\n", " canvas_div.addEventListener(\n", " 'mouseenter',\n", " on_mouse_event_closure('figure_enter')\n", " );\n", " canvas_div.addEventListener(\n", " 'mouseleave',\n", " on_mouse_event_closure('figure_leave')\n", " );\n", "\n", " canvas_div.addEventListener('wheel', function (event) {\n", " if (event.deltaY < 0) {\n", " event.step = 1;\n", " } else {\n", " event.step = -1;\n", " }\n", " on_mouse_event_closure('scroll')(event);\n", " });\n", "\n", " canvas_div.appendChild(canvas);\n", " canvas_div.appendChild(rubberband_canvas);\n", "\n", " this.rubberband_context = rubberband_canvas.getContext('2d');\n", " this.rubberband_context.strokeStyle = '#000000';\n", "\n", " this._resize_canvas = function (width, height, forward) {\n", " if (forward) {\n", " canvas_div.style.width = width + 'px';\n", " canvas_div.style.height = height + 'px';\n", " }\n", " };\n", "\n", " // Disable right mouse context menu.\n", " canvas_div.addEventListener('contextmenu', function (_e) {\n", " event.preventDefault();\n", " return false;\n", " });\n", "\n", " function set_focus() {\n", " canvas.focus();\n", " canvas_div.focus();\n", " }\n", "\n", " window.setTimeout(set_focus, 100);\n", "};\n", "\n", "mpl.figure.prototype._init_toolbar = function () {\n", " var fig = this;\n", "\n", " var toolbar = document.createElement('div');\n", " toolbar.classList = 'mpl-toolbar';\n", " this.root.appendChild(toolbar);\n", "\n", " function on_click_closure(name) {\n", " return function (_event) {\n", " return fig.toolbar_button_onclick(name);\n", " };\n", " }\n", "\n", " function on_mouseover_closure(tooltip) {\n", " return function (event) {\n", " if (!event.currentTarget.disabled) {\n", " return fig.toolbar_button_onmouseover(tooltip);\n", " }\n", " };\n", " }\n", "\n", " fig.buttons = {};\n", " var buttonGroup = document.createElement('div');\n", " buttonGroup.classList = 'mpl-button-group';\n", " for (var toolbar_ind in mpl.toolbar_items) {\n", " var name = mpl.toolbar_items[toolbar_ind][0];\n", " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", " var image = mpl.toolbar_items[toolbar_ind][2];\n", " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", "\n", " if (!name) {\n", " /* Instead of a spacer, we start a new button group. */\n", " if (buttonGroup.hasChildNodes()) {\n", " toolbar.appendChild(buttonGroup);\n", " }\n", " buttonGroup = document.createElement('div');\n", " buttonGroup.classList = 'mpl-button-group';\n", " continue;\n", " }\n", "\n", " var button = (fig.buttons[name] = document.createElement('button'));\n", " button.classList = 'mpl-widget';\n", " button.setAttribute('role', 'button');\n", " button.setAttribute('aria-disabled', 'false');\n", " button.addEventListener('click', on_click_closure(method_name));\n", " button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n", "\n", " var icon_img = document.createElement('img');\n", " icon_img.src = '_images/' + image + '.png';\n", " icon_img.srcset = '_images/' + image + '_large.png 2x';\n", " icon_img.alt = tooltip;\n", " button.appendChild(icon_img);\n", "\n", " buttonGroup.appendChild(button);\n", " }\n", "\n", " if (buttonGroup.hasChildNodes()) {\n", " toolbar.appendChild(buttonGroup);\n", " }\n", "\n", " var fmt_picker = document.createElement('select');\n", " fmt_picker.classList = 'mpl-widget';\n", " toolbar.appendChild(fmt_picker);\n", " this.format_dropdown = fmt_picker;\n", "\n", " for (var ind in mpl.extensions) {\n", " var fmt = mpl.extensions[ind];\n", " var option = document.createElement('option');\n", " option.selected = fmt === mpl.default_extension;\n", " option.innerHTML = fmt;\n", " fmt_picker.appendChild(option);\n", " }\n", "\n", " var status_bar = document.createElement('span');\n", " status_bar.classList = 'mpl-message';\n", " toolbar.appendChild(status_bar);\n", " this.message = status_bar;\n", "};\n", "\n", "mpl.figure.prototype.request_resize = function (x_pixels, y_pixels) {\n", " // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n", " // which will in turn request a refresh of the image.\n", " this.send_message('resize', { width: x_pixels, height: y_pixels });\n", "};\n", "\n", "mpl.figure.prototype.send_message = function (type, properties) {\n", " properties['type'] = type;\n", " properties['figure_id'] = this.id;\n", " this.ws.send(JSON.stringify(properties));\n", "};\n", "\n", "mpl.figure.prototype.send_draw_message = function () {\n", " if (!this.waiting) {\n", " this.waiting = true;\n", " this.ws.send(JSON.stringify({ type: 'draw', figure_id: this.id }));\n", " }\n", "};\n", "\n", "mpl.figure.prototype.handle_save = function (fig, _msg) {\n", " var format_dropdown = fig.format_dropdown;\n", " var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n", " fig.ondownload(fig, format);\n", "};\n", "\n", "mpl.figure.prototype.handle_resize = function (fig, msg) {\n", " var size = msg['size'];\n", " if (size[0] !== fig.canvas.width || size[1] !== fig.canvas.height) {\n", " fig._resize_canvas(size[0], size[1], msg['forward']);\n", " fig.send_message('refresh', {});\n", " }\n", "};\n", "\n", "mpl.figure.prototype.handle_rubberband = function (fig, msg) {\n", " var x0 = msg['x0'] / fig.ratio;\n", " var y0 = (fig.canvas.height - msg['y0']) / fig.ratio;\n", " var x1 = msg['x1'] / fig.ratio;\n", " var y1 = (fig.canvas.height - msg['y1']) / fig.ratio;\n", " x0 = Math.floor(x0) + 0.5;\n", " y0 = Math.floor(y0) + 0.5;\n", " x1 = Math.floor(x1) + 0.5;\n", " y1 = Math.floor(y1) + 0.5;\n", " var min_x = Math.min(x0, x1);\n", " var min_y = Math.min(y0, y1);\n", " var width = Math.abs(x1 - x0);\n", " var height = Math.abs(y1 - y0);\n", "\n", " fig.rubberband_context.clearRect(\n", " 0,\n", " 0,\n", " fig.canvas.width / fig.ratio,\n", " fig.canvas.height / fig.ratio\n", " );\n", "\n", " fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n", "};\n", "\n", "mpl.figure.prototype.handle_figure_label = function (fig, msg) {\n", " // Updates the figure title.\n", " fig.header.textContent = msg['label'];\n", "};\n", "\n", "mpl.figure.prototype.handle_cursor = function (fig, msg) {\n", " fig.canvas_div.style.cursor = msg['cursor'];\n", "};\n", "\n", "mpl.figure.prototype.handle_message = function (fig, msg) {\n", " fig.message.textContent = msg['message'];\n", "};\n", "\n", "mpl.figure.prototype.handle_draw = function (fig, _msg) {\n", " // Request the server to send over a new figure.\n", " fig.send_draw_message();\n", "};\n", "\n", "mpl.figure.prototype.handle_image_mode = function (fig, msg) {\n", " fig.image_mode = msg['mode'];\n", "};\n", "\n", "mpl.figure.prototype.handle_history_buttons = function (fig, msg) {\n", " for (var key in msg) {\n", " if (!(key in fig.buttons)) {\n", " continue;\n", " }\n", " fig.buttons[key].disabled = !msg[key];\n", " fig.buttons[key].setAttribute('aria-disabled', !msg[key]);\n", " }\n", "};\n", "\n", "mpl.figure.prototype.handle_navigate_mode = function (fig, msg) {\n", " if (msg['mode'] === 'PAN') {\n", " fig.buttons['Pan'].classList.add('active');\n", " fig.buttons['Zoom'].classList.remove('active');\n", " } else if (msg['mode'] === 'ZOOM') {\n", " fig.buttons['Pan'].classList.remove('active');\n", " fig.buttons['Zoom'].classList.add('active');\n", " } else {\n", " fig.buttons['Pan'].classList.remove('active');\n", " fig.buttons['Zoom'].classList.remove('active');\n", " }\n", "};\n", "\n", "mpl.figure.prototype.updated_canvas_event = function () {\n", " // Called whenever the canvas gets updated.\n", " this.send_message('ack', {});\n", "};\n", "\n", "// A function to construct a web socket function for onmessage handling.\n", "// Called in the figure constructor.\n", "mpl.figure.prototype._make_on_message_function = function (fig) {\n", " return function socket_on_message(evt) {\n", " if (evt.data instanceof Blob) {\n", " var img = evt.data;\n", " if (img.type !== 'image/png') {\n", " /* FIXME: We get \"Resource interpreted as Image but\n", " * transferred with MIME type text/plain:\" errors on\n", " * Chrome. But how to set the MIME type? It doesn't seem\n", " * to be part of the websocket stream */\n", " img.type = 'image/png';\n", " }\n", "\n", " /* Free the memory for the previous frames */\n", " if (fig.imageObj.src) {\n", " (window.URL || window.webkitURL).revokeObjectURL(\n", " fig.imageObj.src\n", " );\n", " }\n", "\n", " fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n", " img\n", " );\n", " fig.updated_canvas_event();\n", " fig.waiting = false;\n", " return;\n", " } else if (\n", " typeof evt.data === 'string' &&\n", " evt.data.slice(0, 21) === 'data:image/png;base64'\n", " ) {\n", " fig.imageObj.src = evt.data;\n", " fig.updated_canvas_event();\n", " fig.waiting = false;\n", " return;\n", " }\n", "\n", " var msg = JSON.parse(evt.data);\n", " var msg_type = msg['type'];\n", "\n", " // Call the \"handle_{type}\" callback, which takes\n", " // the figure and JSON message as its only arguments.\n", " try {\n", " var callback = fig['handle_' + msg_type];\n", " } catch (e) {\n", " console.log(\n", " \"No handler for the '\" + msg_type + \"' message type: \",\n", " msg\n", " );\n", " return;\n", " }\n", "\n", " if (callback) {\n", " try {\n", " // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n", " callback(fig, msg);\n", " } catch (e) {\n", " console.log(\n", " \"Exception inside the 'handler_\" + msg_type + \"' callback:\",\n", " e,\n", " e.stack,\n", " msg\n", " );\n", " }\n", " }\n", " };\n", "};\n", "\n", "function getModifiers(event) {\n", " var mods = [];\n", " if (event.ctrlKey) {\n", " mods.push('ctrl');\n", " }\n", " if (event.altKey) {\n", " mods.push('alt');\n", " }\n", " if (event.shiftKey) {\n", " mods.push('shift');\n", " }\n", " if (event.metaKey) {\n", " mods.push('meta');\n", " }\n", " return mods;\n", "}\n", "\n", "/*\n", " * return a copy of an object with only non-object keys\n", " * we need this to avoid circular references\n", " * https://stackoverflow.com/a/24161582/3208463\n", " */\n", "function simpleKeys(original) {\n", " return Object.keys(original).reduce(function (obj, key) {\n", " if (typeof original[key] !== 'object') {\n", " obj[key] = original[key];\n", " }\n", " return obj;\n", " }, {});\n", "}\n", "\n", "mpl.figure.prototype.mouse_event = function (event, name) {\n", " if (name === 'button_press') {\n", " this.canvas.focus();\n", " this.canvas_div.focus();\n", " }\n", "\n", " // from https://stackoverflow.com/q/1114465\n", " var boundingRect = this.canvas.getBoundingClientRect();\n", " var x = (event.clientX - boundingRect.left) * this.ratio;\n", " var y = (event.clientY - boundingRect.top) * this.ratio;\n", "\n", " this.send_message(name, {\n", " x: x,\n", " y: y,\n", " button: event.button,\n", " step: event.step,\n", " modifiers: getModifiers(event),\n", " guiEvent: simpleKeys(event),\n", " });\n", "\n", " return false;\n", "};\n", "\n", "mpl.figure.prototype._key_event_extra = function (_event, _name) {\n", " // Handle any extra behaviour associated with a key event\n", "};\n", "\n", "mpl.figure.prototype.key_event = function (event, name) {\n", " // Prevent repeat events\n", " if (name === 'key_press') {\n", " if (event.key === this._key) {\n", " return;\n", " } else {\n", " this._key = event.key;\n", " }\n", " }\n", " if (name === 'key_release') {\n", " this._key = null;\n", " }\n", "\n", " var value = '';\n", " if (event.ctrlKey && event.key !== 'Control') {\n", " value += 'ctrl+';\n", " }\n", " else if (event.altKey && event.key !== 'Alt') {\n", " value += 'alt+';\n", " }\n", " else if (event.shiftKey && event.key !== 'Shift') {\n", " value += 'shift+';\n", " }\n", "\n", " value += 'k' + event.key;\n", "\n", " this._key_event_extra(event, name);\n", "\n", " this.send_message(name, { key: value, guiEvent: simpleKeys(event) });\n", " return false;\n", "};\n", "\n", "mpl.figure.prototype.toolbar_button_onclick = function (name) {\n", " if (name === 'download') {\n", " this.handle_save(this, null);\n", " } else {\n", " this.send_message('toolbar_button', { name: name });\n", " }\n", "};\n", "\n", "mpl.figure.prototype.toolbar_button_onmouseover = function (tooltip) {\n", " this.message.textContent = tooltip;\n", "};\n", "\n", "///////////////// REMAINING CONTENT GENERATED BY embed_js.py /////////////////\n", "// prettier-ignore\n", "var _JSXTOOLS_RESIZE_OBSERVER=function(A){var t,i=new WeakMap,n=new WeakMap,a=new WeakMap,r=new WeakMap,o=new Set;function s(e){if(!(this instanceof s))throw new TypeError(\"Constructor requires 'new' operator\");i.set(this,e)}function h(){throw new TypeError(\"Function is not a constructor\")}function c(e,t,i,n){e=0 in arguments?Number(arguments[0]):0,t=1 in arguments?Number(arguments[1]):0,i=2 in arguments?Number(arguments[2]):0,n=3 in arguments?Number(arguments[3]):0,this.right=(this.x=this.left=e)+(this.width=i),this.bottom=(this.y=this.top=t)+(this.height=n),Object.freeze(this)}function d(){t=requestAnimationFrame(d);var s=new WeakMap,p=new Set;o.forEach((function(t){r.get(t).forEach((function(i){var r=t instanceof window.SVGElement,o=a.get(t),d=r?0:parseFloat(o.paddingTop),f=r?0:parseFloat(o.paddingRight),l=r?0:parseFloat(o.paddingBottom),u=r?0:parseFloat(o.paddingLeft),g=r?0:parseFloat(o.borderTopWidth),m=r?0:parseFloat(o.borderRightWidth),w=r?0:parseFloat(o.borderBottomWidth),b=u+f,F=d+l,v=(r?0:parseFloat(o.borderLeftWidth))+m,W=g+w,y=r?0:t.offsetHeight-W-t.clientHeight,E=r?0:t.offsetWidth-v-t.clientWidth,R=b+v,z=F+W,M=r?t.width:parseFloat(o.width)-R-E,O=r?t.height:parseFloat(o.height)-z-y;if(n.has(t)){var k=n.get(t);if(k[0]===M&&k[1]===O)return}n.set(t,[M,O]);var S=Object.create(h.prototype);S.target=t,S.contentRect=new c(u,d,M,O),s.has(i)||(s.set(i,[]),p.add(i)),s.get(i).push(S)}))})),p.forEach((function(e){i.get(e).call(e,s.get(e),e)}))}return s.prototype.observe=function(i){if(i instanceof window.Element){r.has(i)||(r.set(i,new Set),o.add(i),a.set(i,window.getComputedStyle(i)));var n=r.get(i);n.has(this)||n.add(this),cancelAnimationFrame(t),t=requestAnimationFrame(d)}},s.prototype.unobserve=function(i){if(i instanceof window.Element&&r.has(i)){var n=r.get(i);n.has(this)&&(n.delete(this),n.size||(r.delete(i),o.delete(i))),n.size||r.delete(i),o.size||cancelAnimationFrame(t)}},A.DOMRectReadOnly=c,A.ResizeObserver=s,A.ResizeObserverEntry=h,A}; // eslint-disable-line\n", "mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Left button pans, Right button zooms\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-arrows\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\\nx/y fixes axis\", \"fa fa-square-o\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o\", \"download\"]];\n", "\n", "mpl.extensions = [\"eps\", \"jpeg\", \"pgf\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\", \"webp\"];\n", "\n", "mpl.default_extension = \"png\";/* global mpl */\n", "\n", "var comm_websocket_adapter = function (comm) {\n", " // Create a \"websocket\"-like object which calls the given IPython comm\n", " // object with the appropriate methods. Currently this is a non binary\n", " // socket, so there is still some room for performance tuning.\n", " var ws = {};\n", "\n", " ws.binaryType = comm.kernel.ws.binaryType;\n", " ws.readyState = comm.kernel.ws.readyState;\n", " function updateReadyState(_event) {\n", " if (comm.kernel.ws) {\n", " ws.readyState = comm.kernel.ws.readyState;\n", " } else {\n", " ws.readyState = 3; // Closed state.\n", " }\n", " }\n", " comm.kernel.ws.addEventListener('open', updateReadyState);\n", " comm.kernel.ws.addEventListener('close', updateReadyState);\n", " comm.kernel.ws.addEventListener('error', updateReadyState);\n", "\n", " ws.close = function () {\n", " comm.close();\n", " };\n", " ws.send = function (m) {\n", " //console.log('sending', m);\n", " comm.send(m);\n", " };\n", " // Register the callback with on_msg.\n", " comm.on_msg(function (msg) {\n", " //console.log('receiving', msg['content']['data'], msg);\n", " var data = msg['content']['data'];\n", " if (data['blob'] !== undefined) {\n", " data = {\n", " data: new Blob(msg['buffers'], { type: data['blob'] }),\n", " };\n", " }\n", " // Pass the mpl event to the overridden (by mpl) onmessage function.\n", " ws.onmessage(data);\n", " });\n", " return ws;\n", "};\n", "\n", "mpl.mpl_figure_comm = function (comm, msg) {\n", " // This is the function which gets called when the mpl process\n", " // starts-up an IPython Comm through the \"matplotlib\" channel.\n", "\n", " var id = msg.content.data.id;\n", " // Get hold of the div created by the display call when the Comm\n", " // socket was opened in Python.\n", " var element = document.getElementById(id);\n", " var ws_proxy = comm_websocket_adapter(comm);\n", "\n", " function ondownload(figure, _format) {\n", " window.open(figure.canvas.toDataURL());\n", " }\n", "\n", " var fig = new mpl.figure(id, ws_proxy, ondownload, element);\n", "\n", " // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n", " // web socket which is closed, not our websocket->open comm proxy.\n", " ws_proxy.onopen();\n", "\n", " fig.parent_element = element;\n", " fig.cell_info = mpl.find_output_cell(\"
\");\n", " if (!fig.cell_info) {\n", " console.error('Failed to find cell for figure', id, fig);\n", " return;\n", " }\n", " fig.cell_info[0].output_area.element.on(\n", " 'cleared',\n", " { fig: fig },\n", " fig._remove_fig_handler\n", " );\n", "};\n", "\n", "mpl.figure.prototype.handle_close = function (fig, msg) {\n", " var width = fig.canvas.width / fig.ratio;\n", " fig.cell_info[0].output_area.element.off(\n", " 'cleared',\n", " fig._remove_fig_handler\n", " );\n", " fig.resizeObserverInstance.unobserve(fig.canvas_div);\n", "\n", " // Update the output cell to use the data from the current canvas.\n", " fig.push_to_output();\n", " var dataURL = fig.canvas.toDataURL();\n", " // Re-enable the keyboard manager in IPython - without this line, in FF,\n", " // the notebook keyboard shortcuts fail.\n", " IPython.keyboard_manager.enable();\n", " fig.parent_element.innerHTML =\n", " '';\n", " fig.close_ws(fig, msg);\n", "};\n", "\n", "mpl.figure.prototype.close_ws = function (fig, msg) {\n", " fig.send_message('closing', msg);\n", " // fig.ws.close()\n", "};\n", "\n", "mpl.figure.prototype.push_to_output = function (_remove_interactive) {\n", " // Turn the data on the canvas into data in the output cell.\n", " var width = this.canvas.width / this.ratio;\n", " var dataURL = this.canvas.toDataURL();\n", " this.cell_info[1]['text/html'] =\n", " '';\n", "};\n", "\n", "mpl.figure.prototype.updated_canvas_event = function () {\n", " // Tell IPython that the notebook contents must change.\n", " IPython.notebook.set_dirty(true);\n", " this.send_message('ack', {});\n", " var fig = this;\n", " // Wait a second, then push the new image to the DOM so\n", " // that it is saved nicely (might be nice to debounce this).\n", " setTimeout(function () {\n", " fig.push_to_output();\n", " }, 1000);\n", "};\n", "\n", "mpl.figure.prototype._init_toolbar = function () {\n", " var fig = this;\n", "\n", " var toolbar = document.createElement('div');\n", " toolbar.classList = 'btn-toolbar';\n", " this.root.appendChild(toolbar);\n", "\n", " function on_click_closure(name) {\n", " return function (_event) {\n", " return fig.toolbar_button_onclick(name);\n", " };\n", " }\n", "\n", " function on_mouseover_closure(tooltip) {\n", " return function (event) {\n", " if (!event.currentTarget.disabled) {\n", " return fig.toolbar_button_onmouseover(tooltip);\n", " }\n", " };\n", " }\n", "\n", " fig.buttons = {};\n", " var buttonGroup = document.createElement('div');\n", " buttonGroup.classList = 'btn-group';\n", " var button;\n", " for (var toolbar_ind in mpl.toolbar_items) {\n", " var name = mpl.toolbar_items[toolbar_ind][0];\n", " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", " var image = mpl.toolbar_items[toolbar_ind][2];\n", " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", "\n", " if (!name) {\n", " /* Instead of a spacer, we start a new button group. */\n", " if (buttonGroup.hasChildNodes()) {\n", " toolbar.appendChild(buttonGroup);\n", " }\n", " buttonGroup = document.createElement('div');\n", " buttonGroup.classList = 'btn-group';\n", " continue;\n", " }\n", "\n", " button = fig.buttons[name] = document.createElement('button');\n", " button.classList = 'btn btn-default';\n", " button.href = '#';\n", " button.title = name;\n", " button.innerHTML = '';\n", " button.addEventListener('click', on_click_closure(method_name));\n", " button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n", " buttonGroup.appendChild(button);\n", " }\n", "\n", " if (buttonGroup.hasChildNodes()) {\n", " toolbar.appendChild(buttonGroup);\n", " }\n", "\n", " // Add the status bar.\n", " var status_bar = document.createElement('span');\n", " status_bar.classList = 'mpl-message pull-right';\n", " toolbar.appendChild(status_bar);\n", " this.message = status_bar;\n", "\n", " // Add the close button to the window.\n", " var buttongrp = document.createElement('div');\n", " buttongrp.classList = 'btn-group inline pull-right';\n", " button = document.createElement('button');\n", " button.classList = 'btn btn-mini btn-primary';\n", " button.href = '#';\n", " button.title = 'Stop Interaction';\n", " button.innerHTML = '';\n", " button.addEventListener('click', function (_evt) {\n", " fig.handle_close(fig, {});\n", " });\n", " button.addEventListener(\n", " 'mouseover',\n", " on_mouseover_closure('Stop Interaction')\n", " );\n", " buttongrp.appendChild(button);\n", " var titlebar = this.root.querySelector('.ui-dialog-titlebar');\n", " titlebar.insertBefore(buttongrp, titlebar.firstChild);\n", "};\n", "\n", "mpl.figure.prototype._remove_fig_handler = function (event) {\n", " var fig = event.data.fig;\n", " if (event.target !== this) {\n", " // Ignore bubbled events from children.\n", " return;\n", " }\n", " fig.close_ws(fig, {});\n", "};\n", "\n", "mpl.figure.prototype._root_extra_style = function (el) {\n", " el.style.boxSizing = 'content-box'; // override notebook setting of border-box.\n", "};\n", "\n", "mpl.figure.prototype._canvas_extra_style = function (el) {\n", " // this is important to make the div 'focusable\n", " el.setAttribute('tabindex', 0);\n", " // reach out to IPython and tell the keyboard manager to turn it's self\n", " // off when our div gets focus\n", "\n", " // location in version 3\n", " if (IPython.notebook.keyboard_manager) {\n", " IPython.notebook.keyboard_manager.register_events(el);\n", " } else {\n", " // location in version 2\n", " IPython.keyboard_manager.register_events(el);\n", " }\n", "};\n", "\n", "mpl.figure.prototype._key_event_extra = function (event, _name) {\n", " // Check for shift+enter\n", " if (event.shiftKey && event.which === 13) {\n", " this.canvas_div.blur();\n", " // select the cell after this one\n", " var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n", " IPython.notebook.select(index + 1);\n", " }\n", "};\n", "\n", "mpl.figure.prototype.handle_save = function (fig, _msg) {\n", " fig.ondownload(fig, null);\n", "};\n", "\n", "mpl.find_output_cell = function (html_output) {\n", " // Return the cell and output element which can be found *uniquely* in the notebook.\n", " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", " // IPython event is triggered only after the cells have been serialised, which for\n", " // our purposes (turning an active figure into a static one), is too late.\n", " var cells = IPython.notebook.get_cells();\n", " var ncells = cells.length;\n", " for (var i = 0; i < ncells; i++) {\n", " var cell = cells[i];\n", " if (cell.cell_type === 'code') {\n", " for (var j = 0; j < cell.output_area.outputs.length; j++) {\n", " var data = cell.output_area.outputs[j];\n", " if (data.data) {\n", " // IPython >= 3 moved mimebundle to data attribute of output\n", " data = data.data;\n", " }\n", " if (data['text/html'] === html_output) {\n", " return [cell, data, j];\n", " }\n", " }\n", " }\n", " }\n", "};\n", "\n", "// Register the function which deals with the matplotlib target/channel.\n", "// The kernel may be null if the page has been refreshed.\n", "if (IPython.notebook.kernel !== null) {\n", " IPython.notebook.kernel.comm_manager.register_target(\n", " 'matplotlib',\n", " mpl.mpl_figure_comm\n", " );\n", "}\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stderr", "output_type": "stream", "text": [ "/var/folders/hk/s8m0bblj0g10hw885gld52mc0000gn/T/ipykernel_23701/1448775928.py:89: UserWarning: The figure layout has changed to tight\n" ] } ], "source": [ "# The first selection is a drop-down menu for number of cylinders\n", "cylSelect = widgets.Dropdown(\n", " options=list(cylList),\n", " value=cylList[1],\n", " description=\"Cylinders:\",\n", " disabled=False,\n", ")\n", "\n", "# The second selection is a range of weights\n", "wtSelect = widgets.SelectionRangeSlider(\n", " options=wtOptions,\n", " index=(0, len(wtOptions) - 1),\n", " description=\"Weight\",\n", " disabled=False,\n", ")\n", "\n", "widgetsCtl = widgets.HBox([cylSelect, wtSelect])\n", "\n", "\n", "# The range of weights needs to always be dependent on the cylinder selection.\n", "def updateRange(*args):\n", " \"\"\"Updates the selection range from the slider depending on the cylinder selection.\"\"\"\n", " cylValue = cylSelect.value\n", "\n", " wtOptions = list(\n", " np.sort(np.unique(mtcars.loc[mtcars[\"cyl\"] == cylValue, \"wt\"]))\n", " )\n", "\n", " wtSelect.options = wtOptions\n", " wtSelect.index = (0, len(wtOptions) - 1)\n", "\n", "\n", "cylSelect.observe(updateRange, \"value\")\n", "\n", "# For the widgets to update the same plot, instead of creating one new image every time\n", "# a selection changes. We keep track of the matplotlib image and axis, so we create only one\n", "# figure and set of axis, for the first plot, and then just re-use the figure and axis\n", "# with plotnine's \"_draw_using_figure\" function.\n", "fig = None\n", "axs = None\n", "\n", "\n", "# This is the main function that is called to update the plot every time we chage a selection.\n", "def plotUpdate(*args):\n", " # Use global variables for matplotlib's figure and axis.\n", " global fig, axs\n", "\n", " # Get current values of the selection widgets\n", " cylValue = cylSelect.value\n", " wrRange = wtSelect.value\n", "\n", " # Create a temporary dataset that is constrained by the user's selections.\n", " tmpDat = mtcars.loc[\n", " (mtcars[\"cyl\"] == cylValue)\n", " & (mtcars[\"wt\"] >= wrRange[0])\n", " & (mtcars[\"wt\"] <= wrRange[1]),\n", " :,\n", " ]\n", "\n", " # Create plotnine's plot\n", "\n", " p = (\n", " ggplot(tmpDat, aes(x=\"hp\", y=\"mpg\", color=\"wt\"))\n", " + p9.geom_point()\n", " + p9.theme_linedraw()\n", " + p9.lims(x=[minHP, maxHP], y=[minMPG, maxMPG])\n", " + p9.scale_color_continuous(limits=(minWt, maxWt))\n", " )\n", "\n", " if fig is None:\n", " fig = p.draw()\n", " axs = fig.axes\n", " else:\n", " for artist in get_current_artists():\n", " artist.remove()\n", " p._draw_using_figure(fig, axs)\n", "\n", "\n", "cylSelect.observe(plotUpdate, \"value\")\n", "wtSelect.observe(plotUpdate, \"value\")\n", "\n", "# Display the widgets\n", "display(widgetsCtl)\n", "\n", "# Plots the first image, with inintial values.\n", "plotUpdate()\n", "\n", "# Matplotlib function to make the image fit within the plot dimensions.\n", "plt.tight_layout()\n", "\n", "# Trick to get the first rendered image to follow the previous \"tight_layout\" command.\n", "# without this, only after the first update would the figure be fit inside its dimensions.\n", "cylSelect.value = cylList[0]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "6. Diagramm optimieren\n", "\n", " Schließlich ändern wir noch einige Diagrammeigenschaften, um eine verständlichere Abbildung zu erhalten:" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "3526ef501074421eb36b8557ff8ae2c3", "version_major": 2, "version_minor": 0 }, "text/plain": [ "HBox(children=(Dropdown(description='Cylinders:', index=1, options=(4, 6, 8), value=6), SelectionRangeSlider(d…" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "/* Put everything inside the global mpl namespace */\n", "/* global mpl */\n", "window.mpl = {};\n", "\n", "mpl.get_websocket_type = function () {\n", " if (typeof WebSocket !== 'undefined') {\n", " return WebSocket;\n", " } else if (typeof MozWebSocket !== 'undefined') {\n", " return MozWebSocket;\n", " } else {\n", " alert(\n", " 'Your browser does not have WebSocket support. ' +\n", " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", " 'Firefox 4 and 5 are also supported but you ' +\n", " 'have to enable WebSockets in about:config.'\n", " );\n", " }\n", "};\n", "\n", "mpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n", " this.id = figure_id;\n", "\n", " this.ws = websocket;\n", "\n", " this.supports_binary = this.ws.binaryType !== undefined;\n", "\n", " if (!this.supports_binary) {\n", " var warnings = document.getElementById('mpl-warnings');\n", " if (warnings) {\n", " warnings.style.display = 'block';\n", " warnings.textContent =\n", " 'This browser does not support binary websocket messages. ' +\n", " 'Performance may be slow.';\n", " }\n", " }\n", "\n", " this.imageObj = new Image();\n", "\n", " this.context = undefined;\n", " this.message = undefined;\n", " this.canvas = undefined;\n", " this.rubberband_canvas = undefined;\n", " this.rubberband_context = undefined;\n", " this.format_dropdown = undefined;\n", "\n", " this.image_mode = 'full';\n", "\n", " this.root = document.createElement('div');\n", " this.root.setAttribute('style', 'display: inline-block');\n", " this._root_extra_style(this.root);\n", "\n", " parent_element.appendChild(this.root);\n", "\n", " this._init_header(this);\n", " this._init_canvas(this);\n", " this._init_toolbar(this);\n", "\n", " var fig = this;\n", "\n", " this.waiting = false;\n", "\n", " this.ws.onopen = function () {\n", " fig.send_message('supports_binary', { value: fig.supports_binary });\n", " fig.send_message('send_image_mode', {});\n", " if (fig.ratio !== 1) {\n", " fig.send_message('set_device_pixel_ratio', {\n", " device_pixel_ratio: fig.ratio,\n", " });\n", " }\n", " fig.send_message('refresh', {});\n", " };\n", "\n", " this.imageObj.onload = function () {\n", " if (fig.image_mode === 'full') {\n", " // Full images could contain transparency (where diff images\n", " // almost always do), so we need to clear the canvas so that\n", " // there is no ghosting.\n", " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", " }\n", " fig.context.drawImage(fig.imageObj, 0, 0);\n", " };\n", "\n", " this.imageObj.onunload = function () {\n", " fig.ws.close();\n", " };\n", "\n", " this.ws.onmessage = this._make_on_message_function(this);\n", "\n", " this.ondownload = ondownload;\n", "};\n", "\n", "mpl.figure.prototype._init_header = function () {\n", " var titlebar = document.createElement('div');\n", " titlebar.classList =\n", " 'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n", " var titletext = document.createElement('div');\n", " titletext.classList = 'ui-dialog-title';\n", " titletext.setAttribute(\n", " 'style',\n", " 'width: 100%; text-align: center; padding: 3px;'\n", " );\n", " titlebar.appendChild(titletext);\n", " this.root.appendChild(titlebar);\n", " this.header = titletext;\n", "};\n", "\n", "mpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n", "\n", "mpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n", "\n", "mpl.figure.prototype._init_canvas = function () {\n", " var fig = this;\n", "\n", " var canvas_div = (this.canvas_div = document.createElement('div'));\n", " canvas_div.setAttribute('tabindex', '0');\n", " canvas_div.setAttribute(\n", " 'style',\n", " 'border: 1px solid #ddd;' +\n", " 'box-sizing: content-box;' +\n", " 'clear: both;' +\n", " 'min-height: 1px;' +\n", " 'min-width: 1px;' +\n", " 'outline: 0;' +\n", " 'overflow: hidden;' +\n", " 'position: relative;' +\n", " 'resize: both;' +\n", " 'z-index: 2;'\n", " );\n", "\n", " function on_keyboard_event_closure(name) {\n", " return function (event) {\n", " return fig.key_event(event, name);\n", " };\n", " }\n", "\n", " canvas_div.addEventListener(\n", " 'keydown',\n", " on_keyboard_event_closure('key_press')\n", " );\n", " canvas_div.addEventListener(\n", " 'keyup',\n", " on_keyboard_event_closure('key_release')\n", " );\n", "\n", " this._canvas_extra_style(canvas_div);\n", " this.root.appendChild(canvas_div);\n", "\n", " var canvas = (this.canvas = document.createElement('canvas'));\n", " canvas.classList.add('mpl-canvas');\n", " canvas.setAttribute(\n", " 'style',\n", " 'box-sizing: content-box;' +\n", " 'pointer-events: none;' +\n", " 'position: relative;' +\n", " 'z-index: 0;'\n", " );\n", "\n", " this.context = canvas.getContext('2d');\n", "\n", " var backingStore =\n", " this.context.backingStorePixelRatio ||\n", " this.context.webkitBackingStorePixelRatio ||\n", " this.context.mozBackingStorePixelRatio ||\n", " this.context.msBackingStorePixelRatio ||\n", " this.context.oBackingStorePixelRatio ||\n", " this.context.backingStorePixelRatio ||\n", " 1;\n", "\n", " this.ratio = (window.devicePixelRatio || 1) / backingStore;\n", "\n", " var rubberband_canvas = (this.rubberband_canvas = document.createElement(\n", " 'canvas'\n", " ));\n", " rubberband_canvas.setAttribute(\n", " 'style',\n", " 'box-sizing: content-box;' +\n", " 'left: 0;' +\n", " 'pointer-events: none;' +\n", " 'position: absolute;' +\n", " 'top: 0;' +\n", " 'z-index: 1;'\n", " );\n", "\n", " // Apply a ponyfill if ResizeObserver is not implemented by browser.\n", " if (this.ResizeObserver === undefined) {\n", " if (window.ResizeObserver !== undefined) {\n", " this.ResizeObserver = window.ResizeObserver;\n", " } else {\n", " var obs = _JSXTOOLS_RESIZE_OBSERVER({});\n", " this.ResizeObserver = obs.ResizeObserver;\n", " }\n", " }\n", "\n", " this.resizeObserverInstance = new this.ResizeObserver(function (entries) {\n", " var nentries = entries.length;\n", " for (var i = 0; i < nentries; i++) {\n", " var entry = entries[i];\n", " var width, height;\n", " if (entry.contentBoxSize) {\n", " if (entry.contentBoxSize instanceof Array) {\n", " // Chrome 84 implements new version of spec.\n", " width = entry.contentBoxSize[0].inlineSize;\n", " height = entry.contentBoxSize[0].blockSize;\n", " } else {\n", " // Firefox implements old version of spec.\n", " width = entry.contentBoxSize.inlineSize;\n", " height = entry.contentBoxSize.blockSize;\n", " }\n", " } else {\n", " // Chrome <84 implements even older version of spec.\n", " width = entry.contentRect.width;\n", " height = entry.contentRect.height;\n", " }\n", "\n", " // Keep the size of the canvas and rubber band canvas in sync with\n", " // the canvas container.\n", " if (entry.devicePixelContentBoxSize) {\n", " // Chrome 84 implements new version of spec.\n", " canvas.setAttribute(\n", " 'width',\n", " entry.devicePixelContentBoxSize[0].inlineSize\n", " );\n", " canvas.setAttribute(\n", " 'height',\n", " entry.devicePixelContentBoxSize[0].blockSize\n", " );\n", " } else {\n", " canvas.setAttribute('width', width * fig.ratio);\n", " canvas.setAttribute('height', height * fig.ratio);\n", " }\n", " /* This rescales the canvas back to display pixels, so that it\n", " * appears correct on HiDPI screens. */\n", " canvas.style.width = width + 'px';\n", " canvas.style.height = height + 'px';\n", "\n", " rubberband_canvas.setAttribute('width', width);\n", " rubberband_canvas.setAttribute('height', height);\n", "\n", " // And update the size in Python. We ignore the initial 0/0 size\n", " // that occurs as the element is placed into the DOM, which should\n", " // otherwise not happen due to the minimum size styling.\n", " if (fig.ws.readyState == 1 && width != 0 && height != 0) {\n", " fig.request_resize(width, height);\n", " }\n", " }\n", " });\n", " this.resizeObserverInstance.observe(canvas_div);\n", "\n", " function on_mouse_event_closure(name) {\n", " /* User Agent sniffing is bad, but WebKit is busted:\n", " * https://bugs.webkit.org/show_bug.cgi?id=144526\n", " * https://bugs.webkit.org/show_bug.cgi?id=181818\n", " * The worst that happens here is that they get an extra browser\n", " * selection when dragging, if this check fails to catch them.\n", " */\n", " var UA = navigator.userAgent;\n", " var isWebKit = /AppleWebKit/.test(UA) && !/Chrome/.test(UA);\n", " if(isWebKit) {\n", " return function (event) {\n", " /* This prevents the web browser from automatically changing to\n", " * the text insertion cursor when the button is pressed. We\n", " * want to control all of the cursor setting manually through\n", " * the 'cursor' event from matplotlib */\n", " event.preventDefault()\n", " return fig.mouse_event(event, name);\n", " };\n", " } else {\n", " return function (event) {\n", " return fig.mouse_event(event, name);\n", " };\n", " }\n", " }\n", "\n", " canvas_div.addEventListener(\n", " 'mousedown',\n", " on_mouse_event_closure('button_press')\n", " );\n", " canvas_div.addEventListener(\n", " 'mouseup',\n", " on_mouse_event_closure('button_release')\n", " );\n", " canvas_div.addEventListener(\n", " 'dblclick',\n", " on_mouse_event_closure('dblclick')\n", " );\n", " // Throttle sequential mouse events to 1 every 20ms.\n", " canvas_div.addEventListener(\n", " 'mousemove',\n", " on_mouse_event_closure('motion_notify')\n", " );\n", "\n", " canvas_div.addEventListener(\n", " 'mouseenter',\n", " on_mouse_event_closure('figure_enter')\n", " );\n", " canvas_div.addEventListener(\n", " 'mouseleave',\n", " on_mouse_event_closure('figure_leave')\n", " );\n", "\n", " canvas_div.addEventListener('wheel', function (event) {\n", " if (event.deltaY < 0) {\n", " event.step = 1;\n", " } else {\n", " event.step = -1;\n", " }\n", " on_mouse_event_closure('scroll')(event);\n", " });\n", "\n", " canvas_div.appendChild(canvas);\n", " canvas_div.appendChild(rubberband_canvas);\n", "\n", " this.rubberband_context = rubberband_canvas.getContext('2d');\n", " this.rubberband_context.strokeStyle = '#000000';\n", "\n", " this._resize_canvas = function (width, height, forward) {\n", " if (forward) {\n", " canvas_div.style.width = width + 'px';\n", " canvas_div.style.height = height + 'px';\n", " }\n", " };\n", "\n", " // Disable right mouse context menu.\n", " canvas_div.addEventListener('contextmenu', function (_e) {\n", " event.preventDefault();\n", " return false;\n", " });\n", "\n", " function set_focus() {\n", " canvas.focus();\n", " canvas_div.focus();\n", " }\n", "\n", " window.setTimeout(set_focus, 100);\n", "};\n", "\n", "mpl.figure.prototype._init_toolbar = function () {\n", " var fig = this;\n", "\n", " var toolbar = document.createElement('div');\n", " toolbar.classList = 'mpl-toolbar';\n", " this.root.appendChild(toolbar);\n", "\n", " function on_click_closure(name) {\n", " return function (_event) {\n", " return fig.toolbar_button_onclick(name);\n", " };\n", " }\n", "\n", " function on_mouseover_closure(tooltip) {\n", " return function (event) {\n", " if (!event.currentTarget.disabled) {\n", " return fig.toolbar_button_onmouseover(tooltip);\n", " }\n", " };\n", " }\n", "\n", " fig.buttons = {};\n", " var buttonGroup = document.createElement('div');\n", " buttonGroup.classList = 'mpl-button-group';\n", " for (var toolbar_ind in mpl.toolbar_items) {\n", " var name = mpl.toolbar_items[toolbar_ind][0];\n", " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", " var image = mpl.toolbar_items[toolbar_ind][2];\n", " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", "\n", " if (!name) {\n", " /* Instead of a spacer, we start a new button group. */\n", " if (buttonGroup.hasChildNodes()) {\n", " toolbar.appendChild(buttonGroup);\n", " }\n", " buttonGroup = document.createElement('div');\n", " buttonGroup.classList = 'mpl-button-group';\n", " continue;\n", " }\n", "\n", " var button = (fig.buttons[name] = document.createElement('button'));\n", " button.classList = 'mpl-widget';\n", " button.setAttribute('role', 'button');\n", " button.setAttribute('aria-disabled', 'false');\n", " button.addEventListener('click', on_click_closure(method_name));\n", " button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n", "\n", " var icon_img = document.createElement('img');\n", " icon_img.src = '_images/' + image + '.png';\n", " icon_img.srcset = '_images/' + image + '_large.png 2x';\n", " icon_img.alt = tooltip;\n", " button.appendChild(icon_img);\n", "\n", " buttonGroup.appendChild(button);\n", " }\n", "\n", " if (buttonGroup.hasChildNodes()) {\n", " toolbar.appendChild(buttonGroup);\n", " }\n", "\n", " var fmt_picker = document.createElement('select');\n", " fmt_picker.classList = 'mpl-widget';\n", " toolbar.appendChild(fmt_picker);\n", " this.format_dropdown = fmt_picker;\n", "\n", " for (var ind in mpl.extensions) {\n", " var fmt = mpl.extensions[ind];\n", " var option = document.createElement('option');\n", " option.selected = fmt === mpl.default_extension;\n", " option.innerHTML = fmt;\n", " fmt_picker.appendChild(option);\n", " }\n", "\n", " var status_bar = document.createElement('span');\n", " status_bar.classList = 'mpl-message';\n", " toolbar.appendChild(status_bar);\n", " this.message = status_bar;\n", "};\n", "\n", "mpl.figure.prototype.request_resize = function (x_pixels, y_pixels) {\n", " // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n", " // which will in turn request a refresh of the image.\n", " this.send_message('resize', { width: x_pixels, height: y_pixels });\n", "};\n", "\n", "mpl.figure.prototype.send_message = function (type, properties) {\n", " properties['type'] = type;\n", " properties['figure_id'] = this.id;\n", " this.ws.send(JSON.stringify(properties));\n", "};\n", "\n", "mpl.figure.prototype.send_draw_message = function () {\n", " if (!this.waiting) {\n", " this.waiting = true;\n", " this.ws.send(JSON.stringify({ type: 'draw', figure_id: this.id }));\n", " }\n", "};\n", "\n", "mpl.figure.prototype.handle_save = function (fig, _msg) {\n", " var format_dropdown = fig.format_dropdown;\n", " var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n", " fig.ondownload(fig, format);\n", "};\n", "\n", "mpl.figure.prototype.handle_resize = function (fig, msg) {\n", " var size = msg['size'];\n", " if (size[0] !== fig.canvas.width || size[1] !== fig.canvas.height) {\n", " fig._resize_canvas(size[0], size[1], msg['forward']);\n", " fig.send_message('refresh', {});\n", " }\n", "};\n", "\n", "mpl.figure.prototype.handle_rubberband = function (fig, msg) {\n", " var x0 = msg['x0'] / fig.ratio;\n", " var y0 = (fig.canvas.height - msg['y0']) / fig.ratio;\n", " var x1 = msg['x1'] / fig.ratio;\n", " var y1 = (fig.canvas.height - msg['y1']) / fig.ratio;\n", " x0 = Math.floor(x0) + 0.5;\n", " y0 = Math.floor(y0) + 0.5;\n", " x1 = Math.floor(x1) + 0.5;\n", " y1 = Math.floor(y1) + 0.5;\n", " var min_x = Math.min(x0, x1);\n", " var min_y = Math.min(y0, y1);\n", " var width = Math.abs(x1 - x0);\n", " var height = Math.abs(y1 - y0);\n", "\n", " fig.rubberband_context.clearRect(\n", " 0,\n", " 0,\n", " fig.canvas.width / fig.ratio,\n", " fig.canvas.height / fig.ratio\n", " );\n", "\n", " fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n", "};\n", "\n", "mpl.figure.prototype.handle_figure_label = function (fig, msg) {\n", " // Updates the figure title.\n", " fig.header.textContent = msg['label'];\n", "};\n", "\n", "mpl.figure.prototype.handle_cursor = function (fig, msg) {\n", " fig.canvas_div.style.cursor = msg['cursor'];\n", "};\n", "\n", "mpl.figure.prototype.handle_message = function (fig, msg) {\n", " fig.message.textContent = msg['message'];\n", "};\n", "\n", "mpl.figure.prototype.handle_draw = function (fig, _msg) {\n", " // Request the server to send over a new figure.\n", " fig.send_draw_message();\n", "};\n", "\n", "mpl.figure.prototype.handle_image_mode = function (fig, msg) {\n", " fig.image_mode = msg['mode'];\n", "};\n", "\n", "mpl.figure.prototype.handle_history_buttons = function (fig, msg) {\n", " for (var key in msg) {\n", " if (!(key in fig.buttons)) {\n", " continue;\n", " }\n", " fig.buttons[key].disabled = !msg[key];\n", " fig.buttons[key].setAttribute('aria-disabled', !msg[key]);\n", " }\n", "};\n", "\n", "mpl.figure.prototype.handle_navigate_mode = function (fig, msg) {\n", " if (msg['mode'] === 'PAN') {\n", " fig.buttons['Pan'].classList.add('active');\n", " fig.buttons['Zoom'].classList.remove('active');\n", " } else if (msg['mode'] === 'ZOOM') {\n", " fig.buttons['Pan'].classList.remove('active');\n", " fig.buttons['Zoom'].classList.add('active');\n", " } else {\n", " fig.buttons['Pan'].classList.remove('active');\n", " fig.buttons['Zoom'].classList.remove('active');\n", " }\n", "};\n", "\n", "mpl.figure.prototype.updated_canvas_event = function () {\n", " // Called whenever the canvas gets updated.\n", " this.send_message('ack', {});\n", "};\n", "\n", "// A function to construct a web socket function for onmessage handling.\n", "// Called in the figure constructor.\n", "mpl.figure.prototype._make_on_message_function = function (fig) {\n", " return function socket_on_message(evt) {\n", " if (evt.data instanceof Blob) {\n", " var img = evt.data;\n", " if (img.type !== 'image/png') {\n", " /* FIXME: We get \"Resource interpreted as Image but\n", " * transferred with MIME type text/plain:\" errors on\n", " * Chrome. But how to set the MIME type? It doesn't seem\n", " * to be part of the websocket stream */\n", " img.type = 'image/png';\n", " }\n", "\n", " /* Free the memory for the previous frames */\n", " if (fig.imageObj.src) {\n", " (window.URL || window.webkitURL).revokeObjectURL(\n", " fig.imageObj.src\n", " );\n", " }\n", "\n", " fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n", " img\n", " );\n", " fig.updated_canvas_event();\n", " fig.waiting = false;\n", " return;\n", " } else if (\n", " typeof evt.data === 'string' &&\n", " evt.data.slice(0, 21) === 'data:image/png;base64'\n", " ) {\n", " fig.imageObj.src = evt.data;\n", " fig.updated_canvas_event();\n", " fig.waiting = false;\n", " return;\n", " }\n", "\n", " var msg = JSON.parse(evt.data);\n", " var msg_type = msg['type'];\n", "\n", " // Call the \"handle_{type}\" callback, which takes\n", " // the figure and JSON message as its only arguments.\n", " try {\n", " var callback = fig['handle_' + msg_type];\n", " } catch (e) {\n", " console.log(\n", " \"No handler for the '\" + msg_type + \"' message type: \",\n", " msg\n", " );\n", " return;\n", " }\n", "\n", " if (callback) {\n", " try {\n", " // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n", " callback(fig, msg);\n", " } catch (e) {\n", " console.log(\n", " \"Exception inside the 'handler_\" + msg_type + \"' callback:\",\n", " e,\n", " e.stack,\n", " msg\n", " );\n", " }\n", " }\n", " };\n", "};\n", "\n", "function getModifiers(event) {\n", " var mods = [];\n", " if (event.ctrlKey) {\n", " mods.push('ctrl');\n", " }\n", " if (event.altKey) {\n", " mods.push('alt');\n", " }\n", " if (event.shiftKey) {\n", " mods.push('shift');\n", " }\n", " if (event.metaKey) {\n", " mods.push('meta');\n", " }\n", " return mods;\n", "}\n", "\n", "/*\n", " * return a copy of an object with only non-object keys\n", " * we need this to avoid circular references\n", " * https://stackoverflow.com/a/24161582/3208463\n", " */\n", "function simpleKeys(original) {\n", " return Object.keys(original).reduce(function (obj, key) {\n", " if (typeof original[key] !== 'object') {\n", " obj[key] = original[key];\n", " }\n", " return obj;\n", " }, {});\n", "}\n", "\n", "mpl.figure.prototype.mouse_event = function (event, name) {\n", " if (name === 'button_press') {\n", " this.canvas.focus();\n", " this.canvas_div.focus();\n", " }\n", "\n", " // from https://stackoverflow.com/q/1114465\n", " var boundingRect = this.canvas.getBoundingClientRect();\n", " var x = (event.clientX - boundingRect.left) * this.ratio;\n", " var y = (event.clientY - boundingRect.top) * this.ratio;\n", "\n", " this.send_message(name, {\n", " x: x,\n", " y: y,\n", " button: event.button,\n", " step: event.step,\n", " modifiers: getModifiers(event),\n", " guiEvent: simpleKeys(event),\n", " });\n", "\n", " return false;\n", "};\n", "\n", "mpl.figure.prototype._key_event_extra = function (_event, _name) {\n", " // Handle any extra behaviour associated with a key event\n", "};\n", "\n", "mpl.figure.prototype.key_event = function (event, name) {\n", " // Prevent repeat events\n", " if (name === 'key_press') {\n", " if (event.key === this._key) {\n", " return;\n", " } else {\n", " this._key = event.key;\n", " }\n", " }\n", " if (name === 'key_release') {\n", " this._key = null;\n", " }\n", "\n", " var value = '';\n", " if (event.ctrlKey && event.key !== 'Control') {\n", " value += 'ctrl+';\n", " }\n", " else if (event.altKey && event.key !== 'Alt') {\n", " value += 'alt+';\n", " }\n", " else if (event.shiftKey && event.key !== 'Shift') {\n", " value += 'shift+';\n", " }\n", "\n", " value += 'k' + event.key;\n", "\n", " this._key_event_extra(event, name);\n", "\n", " this.send_message(name, { key: value, guiEvent: simpleKeys(event) });\n", " return false;\n", "};\n", "\n", "mpl.figure.prototype.toolbar_button_onclick = function (name) {\n", " if (name === 'download') {\n", " this.handle_save(this, null);\n", " } else {\n", " this.send_message('toolbar_button', { name: name });\n", " }\n", "};\n", "\n", "mpl.figure.prototype.toolbar_button_onmouseover = function (tooltip) {\n", " this.message.textContent = tooltip;\n", "};\n", "\n", "///////////////// REMAINING CONTENT GENERATED BY embed_js.py /////////////////\n", "// prettier-ignore\n", "var _JSXTOOLS_RESIZE_OBSERVER=function(A){var t,i=new WeakMap,n=new WeakMap,a=new WeakMap,r=new WeakMap,o=new Set;function s(e){if(!(this instanceof s))throw new TypeError(\"Constructor requires 'new' operator\");i.set(this,e)}function h(){throw new TypeError(\"Function is not a constructor\")}function c(e,t,i,n){e=0 in arguments?Number(arguments[0]):0,t=1 in arguments?Number(arguments[1]):0,i=2 in arguments?Number(arguments[2]):0,n=3 in arguments?Number(arguments[3]):0,this.right=(this.x=this.left=e)+(this.width=i),this.bottom=(this.y=this.top=t)+(this.height=n),Object.freeze(this)}function d(){t=requestAnimationFrame(d);var s=new WeakMap,p=new Set;o.forEach((function(t){r.get(t).forEach((function(i){var r=t instanceof window.SVGElement,o=a.get(t),d=r?0:parseFloat(o.paddingTop),f=r?0:parseFloat(o.paddingRight),l=r?0:parseFloat(o.paddingBottom),u=r?0:parseFloat(o.paddingLeft),g=r?0:parseFloat(o.borderTopWidth),m=r?0:parseFloat(o.borderRightWidth),w=r?0:parseFloat(o.borderBottomWidth),b=u+f,F=d+l,v=(r?0:parseFloat(o.borderLeftWidth))+m,W=g+w,y=r?0:t.offsetHeight-W-t.clientHeight,E=r?0:t.offsetWidth-v-t.clientWidth,R=b+v,z=F+W,M=r?t.width:parseFloat(o.width)-R-E,O=r?t.height:parseFloat(o.height)-z-y;if(n.has(t)){var k=n.get(t);if(k[0]===M&&k[1]===O)return}n.set(t,[M,O]);var S=Object.create(h.prototype);S.target=t,S.contentRect=new c(u,d,M,O),s.has(i)||(s.set(i,[]),p.add(i)),s.get(i).push(S)}))})),p.forEach((function(e){i.get(e).call(e,s.get(e),e)}))}return s.prototype.observe=function(i){if(i instanceof window.Element){r.has(i)||(r.set(i,new Set),o.add(i),a.set(i,window.getComputedStyle(i)));var n=r.get(i);n.has(this)||n.add(this),cancelAnimationFrame(t),t=requestAnimationFrame(d)}},s.prototype.unobserve=function(i){if(i instanceof window.Element&&r.has(i)){var n=r.get(i);n.has(this)&&(n.delete(this),n.size||(r.delete(i),o.delete(i))),n.size||r.delete(i),o.size||cancelAnimationFrame(t)}},A.DOMRectReadOnly=c,A.ResizeObserver=s,A.ResizeObserverEntry=h,A}; // eslint-disable-line\n", "mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Left button pans, Right button zooms\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-arrows\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\\nx/y fixes axis\", \"fa fa-square-o\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o\", \"download\"]];\n", "\n", "mpl.extensions = [\"eps\", \"jpeg\", \"pgf\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\", \"webp\"];\n", "\n", "mpl.default_extension = \"png\";/* global mpl */\n", "\n", "var comm_websocket_adapter = function (comm) {\n", " // Create a \"websocket\"-like object which calls the given IPython comm\n", " // object with the appropriate methods. Currently this is a non binary\n", " // socket, so there is still some room for performance tuning.\n", " var ws = {};\n", "\n", " ws.binaryType = comm.kernel.ws.binaryType;\n", " ws.readyState = comm.kernel.ws.readyState;\n", " function updateReadyState(_event) {\n", " if (comm.kernel.ws) {\n", " ws.readyState = comm.kernel.ws.readyState;\n", " } else {\n", " ws.readyState = 3; // Closed state.\n", " }\n", " }\n", " comm.kernel.ws.addEventListener('open', updateReadyState);\n", " comm.kernel.ws.addEventListener('close', updateReadyState);\n", " comm.kernel.ws.addEventListener('error', updateReadyState);\n", "\n", " ws.close = function () {\n", " comm.close();\n", " };\n", " ws.send = function (m) {\n", " //console.log('sending', m);\n", " comm.send(m);\n", " };\n", " // Register the callback with on_msg.\n", " comm.on_msg(function (msg) {\n", " //console.log('receiving', msg['content']['data'], msg);\n", " var data = msg['content']['data'];\n", " if (data['blob'] !== undefined) {\n", " data = {\n", " data: new Blob(msg['buffers'], { type: data['blob'] }),\n", " };\n", " }\n", " // Pass the mpl event to the overridden (by mpl) onmessage function.\n", " ws.onmessage(data);\n", " });\n", " return ws;\n", "};\n", "\n", "mpl.mpl_figure_comm = function (comm, msg) {\n", " // This is the function which gets called when the mpl process\n", " // starts-up an IPython Comm through the \"matplotlib\" channel.\n", "\n", " var id = msg.content.data.id;\n", " // Get hold of the div created by the display call when the Comm\n", " // socket was opened in Python.\n", " var element = document.getElementById(id);\n", " var ws_proxy = comm_websocket_adapter(comm);\n", "\n", " function ondownload(figure, _format) {\n", " window.open(figure.canvas.toDataURL());\n", " }\n", "\n", " var fig = new mpl.figure(id, ws_proxy, ondownload, element);\n", "\n", " // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n", " // web socket which is closed, not our websocket->open comm proxy.\n", " ws_proxy.onopen();\n", "\n", " fig.parent_element = element;\n", " fig.cell_info = mpl.find_output_cell(\"
\");\n", " if (!fig.cell_info) {\n", " console.error('Failed to find cell for figure', id, fig);\n", " return;\n", " }\n", " fig.cell_info[0].output_area.element.on(\n", " 'cleared',\n", " { fig: fig },\n", " fig._remove_fig_handler\n", " );\n", "};\n", "\n", "mpl.figure.prototype.handle_close = function (fig, msg) {\n", " var width = fig.canvas.width / fig.ratio;\n", " fig.cell_info[0].output_area.element.off(\n", " 'cleared',\n", " fig._remove_fig_handler\n", " );\n", " fig.resizeObserverInstance.unobserve(fig.canvas_div);\n", "\n", " // Update the output cell to use the data from the current canvas.\n", " fig.push_to_output();\n", " var dataURL = fig.canvas.toDataURL();\n", " // Re-enable the keyboard manager in IPython - without this line, in FF,\n", " // the notebook keyboard shortcuts fail.\n", " IPython.keyboard_manager.enable();\n", " fig.parent_element.innerHTML =\n", " '';\n", " fig.close_ws(fig, msg);\n", "};\n", "\n", "mpl.figure.prototype.close_ws = function (fig, msg) {\n", " fig.send_message('closing', msg);\n", " // fig.ws.close()\n", "};\n", "\n", "mpl.figure.prototype.push_to_output = function (_remove_interactive) {\n", " // Turn the data on the canvas into data in the output cell.\n", " var width = this.canvas.width / this.ratio;\n", " var dataURL = this.canvas.toDataURL();\n", " this.cell_info[1]['text/html'] =\n", " '';\n", "};\n", "\n", "mpl.figure.prototype.updated_canvas_event = function () {\n", " // Tell IPython that the notebook contents must change.\n", " IPython.notebook.set_dirty(true);\n", " this.send_message('ack', {});\n", " var fig = this;\n", " // Wait a second, then push the new image to the DOM so\n", " // that it is saved nicely (might be nice to debounce this).\n", " setTimeout(function () {\n", " fig.push_to_output();\n", " }, 1000);\n", "};\n", "\n", "mpl.figure.prototype._init_toolbar = function () {\n", " var fig = this;\n", "\n", " var toolbar = document.createElement('div');\n", " toolbar.classList = 'btn-toolbar';\n", " this.root.appendChild(toolbar);\n", "\n", " function on_click_closure(name) {\n", " return function (_event) {\n", " return fig.toolbar_button_onclick(name);\n", " };\n", " }\n", "\n", " function on_mouseover_closure(tooltip) {\n", " return function (event) {\n", " if (!event.currentTarget.disabled) {\n", " return fig.toolbar_button_onmouseover(tooltip);\n", " }\n", " };\n", " }\n", "\n", " fig.buttons = {};\n", " var buttonGroup = document.createElement('div');\n", " buttonGroup.classList = 'btn-group';\n", " var button;\n", " for (var toolbar_ind in mpl.toolbar_items) {\n", " var name = mpl.toolbar_items[toolbar_ind][0];\n", " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", " var image = mpl.toolbar_items[toolbar_ind][2];\n", " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", "\n", " if (!name) {\n", " /* Instead of a spacer, we start a new button group. */\n", " if (buttonGroup.hasChildNodes()) {\n", " toolbar.appendChild(buttonGroup);\n", " }\n", " buttonGroup = document.createElement('div');\n", " buttonGroup.classList = 'btn-group';\n", " continue;\n", " }\n", "\n", " button = fig.buttons[name] = document.createElement('button');\n", " button.classList = 'btn btn-default';\n", " button.href = '#';\n", " button.title = name;\n", " button.innerHTML = '';\n", " button.addEventListener('click', on_click_closure(method_name));\n", " button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n", " buttonGroup.appendChild(button);\n", " }\n", "\n", " if (buttonGroup.hasChildNodes()) {\n", " toolbar.appendChild(buttonGroup);\n", " }\n", "\n", " // Add the status bar.\n", " var status_bar = document.createElement('span');\n", " status_bar.classList = 'mpl-message pull-right';\n", " toolbar.appendChild(status_bar);\n", " this.message = status_bar;\n", "\n", " // Add the close button to the window.\n", " var buttongrp = document.createElement('div');\n", " buttongrp.classList = 'btn-group inline pull-right';\n", " button = document.createElement('button');\n", " button.classList = 'btn btn-mini btn-primary';\n", " button.href = '#';\n", " button.title = 'Stop Interaction';\n", " button.innerHTML = '';\n", " button.addEventListener('click', function (_evt) {\n", " fig.handle_close(fig, {});\n", " });\n", " button.addEventListener(\n", " 'mouseover',\n", " on_mouseover_closure('Stop Interaction')\n", " );\n", " buttongrp.appendChild(button);\n", " var titlebar = this.root.querySelector('.ui-dialog-titlebar');\n", " titlebar.insertBefore(buttongrp, titlebar.firstChild);\n", "};\n", "\n", "mpl.figure.prototype._remove_fig_handler = function (event) {\n", " var fig = event.data.fig;\n", " if (event.target !== this) {\n", " // Ignore bubbled events from children.\n", " return;\n", " }\n", " fig.close_ws(fig, {});\n", "};\n", "\n", "mpl.figure.prototype._root_extra_style = function (el) {\n", " el.style.boxSizing = 'content-box'; // override notebook setting of border-box.\n", "};\n", "\n", "mpl.figure.prototype._canvas_extra_style = function (el) {\n", " // this is important to make the div 'focusable\n", " el.setAttribute('tabindex', 0);\n", " // reach out to IPython and tell the keyboard manager to turn it's self\n", " // off when our div gets focus\n", "\n", " // location in version 3\n", " if (IPython.notebook.keyboard_manager) {\n", " IPython.notebook.keyboard_manager.register_events(el);\n", " } else {\n", " // location in version 2\n", " IPython.keyboard_manager.register_events(el);\n", " }\n", "};\n", "\n", "mpl.figure.prototype._key_event_extra = function (event, _name) {\n", " // Check for shift+enter\n", " if (event.shiftKey && event.which === 13) {\n", " this.canvas_div.blur();\n", " // select the cell after this one\n", " var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n", " IPython.notebook.select(index + 1);\n", " }\n", "};\n", "\n", "mpl.figure.prototype.handle_save = function (fig, _msg) {\n", " fig.ondownload(fig, null);\n", "};\n", "\n", "mpl.find_output_cell = function (html_output) {\n", " // Return the cell and output element which can be found *uniquely* in the notebook.\n", " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", " // IPython event is triggered only after the cells have been serialised, which for\n", " // our purposes (turning an active figure into a static one), is too late.\n", " var cells = IPython.notebook.get_cells();\n", " var ncells = cells.length;\n", " for (var i = 0; i < ncells; i++) {\n", " var cell = cells[i];\n", " if (cell.cell_type === 'code') {\n", " for (var j = 0; j < cell.output_area.outputs.length; j++) {\n", " var data = cell.output_area.outputs[j];\n", " if (data.data) {\n", " // IPython >= 3 moved mimebundle to data attribute of output\n", " data = data.data;\n", " }\n", " if (data['text/html'] === html_output) {\n", " return [cell, data, j];\n", " }\n", " }\n", " }\n", " }\n", "};\n", "\n", "// Register the function which deals with the matplotlib target/channel.\n", "// The kernel may be null if the page has been refreshed.\n", "if (IPython.notebook.kernel !== null) {\n", " IPython.notebook.kernel.comm_manager.register_target(\n", " 'matplotlib',\n", " mpl.mpl_figure_comm\n", " );\n", "}\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stderr", "output_type": "stream", "text": [ "/var/folders/hk/s8m0bblj0g10hw885gld52mc0000gn/T/ipykernel_23701/207462609.py:91: UserWarning: The figure layout has changed to tight\n" ] } ], "source": [ "# The first selection is a drop-down menu for number of cylinders\n", "cylSelect = widgets.Dropdown(\n", " options=list(cylList),\n", " value=cylList[1],\n", " description=\"Cylinders:\",\n", " disabled=False,\n", ")\n", "\n", "# The second selection is a range of weights\n", "wtSelect = widgets.SelectionRangeSlider(\n", " options=wtOptions,\n", " index=(0, len(wtOptions) - 1),\n", " description=\"Weight\",\n", " disabled=False,\n", ")\n", "\n", "widgetsCtl = widgets.HBox([cylSelect, wtSelect])\n", "\n", "\n", "# The range of weights needs to always be dependent on the cylinder selection.\n", "def updateRange(*args):\n", " \"\"\"Updates the selection range from the slider depending on the cylinder selection.\"\"\"\n", " cylValue = cylSelect.value\n", "\n", " wtOptions = list(\n", " np.sort(np.unique(mtcars.loc[mtcars[\"cyl\"] == cylValue, \"wt\"]))\n", " )\n", "\n", " wtSelect.options = wtOptions\n", " wtSelect.index = (0, len(wtOptions) - 1)\n", "\n", "\n", "cylSelect.observe(updateRange, \"value\")\n", "\n", "fig = None\n", "axs = None\n", "\n", "\n", "# This is the main function that is called to update the plot every time we chage a selection.\n", "def plotUpdate(*args):\n", " # Use global variables for matplotlib's figure and axis.\n", " global fig, axs\n", "\n", " # Get current values of the selection widgets\n", " cylValue = cylSelect.value\n", " wrRange = wtSelect.value\n", "\n", " # Create a temporary dataset that is constrained by the user's selections of\n", " # number of cylinders and weight.\n", " tmpDat = mtcars.loc[\n", " (mtcars[\"cyl\"] == cylValue)\n", " & (mtcars[\"wt\"] >= wrRange[0])\n", " & (mtcars[\"wt\"] <= wrRange[1]),\n", " :,\n", " ]\n", "\n", " # Create plotnine's plot showing all data ins smaller grey points, and\n", " # the selected data with coloured points.\n", " p = (\n", " ggplot(tmpDat, aes(x=\"hp\", y=\"mpg\", color=\"wt\"))\n", " + p9.geom_point(mtcars, color=\"grey\")\n", " + p9.geom_point(size=3)\n", " + p9.theme_linedraw()\n", " + p9.xlim([minHP, maxHP])\n", " + p9.ylim([minMPG, maxMPG])\n", " + p9.scale_color_continuous(\n", " name=\"spring\", limits=(np.floor(minWt), np.ceil(maxWt))\n", " )\n", " + p9.labs(x=\"Horse-Power\", y=\"Miles Per Gallon\", color=\"Weight\")\n", " )\n", "\n", " if fig is None:\n", " fig = p.draw()\n", " axs = fig.axes\n", " else:\n", " for artist in get_current_artists():\n", " artist.remove()\n", " p._draw_using_figure(fig, axs)\n", "\n", "\n", "cylSelect.observe(plotUpdate, \"value\")\n", "wtSelect.observe(plotUpdate, \"value\")\n", "\n", "# Display the widgets\n", "display(widgetsCtl)\n", "\n", "# Plots the first image, with inintial values.\n", "plotUpdate()\n", "\n", "# Matplotlib function to make the image fit within the plot dimensions.\n", "plt.tight_layout()\n", "\n", "# Trick to get the first rendered image to follow the previous \"tight_layout\" command.\n", "# without this, only after the first update would the figure be fit inside its dimensions.\n", "cylSelect.value = cylList[0]" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3.11 Kernel", "language": "python", "name": "python311" }, "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.11.4" }, "latex_envs": { "LaTeX_envs_menu_present": true, "autoclose": false, "autocomplete": true, "bibliofile": "biblio.bib", "cite_by": "apalike", "current_citInitial": 1, "eqLabelWithNumbers": true, "eqNumInitial": 1, "hotkeys": { "equation": "Ctrl-E", "itemize": "Ctrl-I" }, "labels_anchors": false, "latex_user_defs": false, "report_style_numbering": false, "user_envs_cfg": false }, "widgets": { "application/vnd.jupyter.widget-state+json": { "state": { "00f66da2283b471b8af9baab3f9464a8": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "4", "6", "8" ], "description": "Cylinders:", "index": 1, "layout": "IPY_MODEL_112c290fc42140e2bb9aef40fe0684eb", "style": "IPY_MODEL_3a8c2567977a425384e4459f8307b01c" } }, "012a6141bd8448d487ab25a91821c0e9": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_98f7f1e6c18e4774acb9680470cd7f2e", "IPY_MODEL_349bebed62eb41898af5148a8bf326bf" ], "layout": "IPY_MODEL_1c7a509c409a40c69e25363f97fd31a9" } }, "042e2fa5af6c4504b6d5b144acd6bb50": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "SelectionRangeSliderModel", "state": { "_model_name": "SelectionRangeSliderModel", "_options_labels": [ "1.513", "1.615", "1.835", "1.935", "2.14", "2.2", "2.32", "2.465", "2.78", "3.15", "3.19" ], "_view_name": "SelectionRangeSliderView", "description": "Weight", "index": [ 0, 10 ], "layout": "IPY_MODEL_8d05de91cf1c4662a31f12ece93fbb80", "style": "IPY_MODEL_3ba092103da944a483f84d59daa94083" } }, "0488a7397e074ae3929e7998ea07c935": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "4", "6", "8" ], "description": "Cylinders:", "index": 0, "layout": "IPY_MODEL_bc11a5f6bc8c4380b578308d0b9704db", "style": "IPY_MODEL_e24098d41cf54c79b62ae6a16a5b7b46" } }, "04a317d790c6427092ca9f7a901af187": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "0527c283c1314af199c6d652038ab9c2": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "057046e694374429831993508c3a9c71": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "065302007bbe482997d590e45a7b721b": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "4", "6", "8" ], "description": "Cylinders:", "index": 1, "layout": "IPY_MODEL_824dcd1ec43f47b5ba748a0c9741d397", "style": "IPY_MODEL_2b7c887f0a644115b62238045defc8e0" } }, "065e3380e62c4e04bdecea1c86bf6b05": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "SelectionRangeSliderModel", "state": { "_model_name": "SelectionRangeSliderModel", "_options_labels": [ "1.513", "1.615", "1.835", "1.935", "2.14", "2.2", "2.32", "2.465", "2.78", "3.15", "3.19" ], "_view_name": "SelectionRangeSliderView", "description": "Weight", "index": [ 0, 10 ], "layout": "IPY_MODEL_a54d38a8b83b44e4b9f034306969c345", "style": "IPY_MODEL_987fa4a2778745acad4d31057c014222" } }, "068f061b142d423b9edf55dad860c602": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "071516ae7f7c4f4a99f8e1a4b39758ee": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "082f403b4ab84d1086f303dc1ddd8c50": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "4", "6", "8" ], "description": "Cylinders:", "index": 0, "layout": "IPY_MODEL_a435645d10da487497e9288249f144ea", "style": "IPY_MODEL_f5900a5920f64f87afdb06d89c6d359d" } }, "0850b22a7118496d90f5da6045e08e52": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "4", "6", "8" ], "description": "Cylinders:", "index": 1, "layout": "IPY_MODEL_cdb2b506be554185bfdc477624fea383", "style": "IPY_MODEL_453b46c83a4a4c7b9830a1914b826c78" } }, "09a9648ede7e47a68212ec87c660c203": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "4", "6", "8" ], "description": "Cylinders:", "index": 1, "layout": "IPY_MODEL_ae842de1bfc64df18ade2e10963258f4", "style": "IPY_MODEL_6ca2e5379d084413a2166bb74bd59ca3" } }, "0c3b281663e8480db198cc2086294837": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "4", "6", "8" ], "description": "Cylinders:", "index": 1, "layout": "IPY_MODEL_df13d5f1728e49eea932609d7a396332", "style": "IPY_MODEL_24e18b0421004dea97f0f7112df74150" } }, "0ca9aa18b6474261b8513ad2803e18b0": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_cf402fe962584effb4edfcfd24250771", "IPY_MODEL_c3d5472d74fa464c95d55879877135de" ], "layout": "IPY_MODEL_52d866f7cffa48ee916167c6db22b461" } }, "0e438151f40d4fb199206ae0f2676809": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "0e509d42b18846af97ef758779e4d5af": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_cdd4dd618b094f778099fcf264eb3881", "IPY_MODEL_f0fb5e03d3004d548305d4c803129ab3" ], "layout": "IPY_MODEL_e93befbb9bc54574a75c9a93a448be68" } }, "0e5142a4c36c4c74b4ea843f456ab12d": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "0e78697b400742e39ea54c7edd9b8129": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "4", "6", "8" ], "description": "Cylinders:", "index": 0, "layout": "IPY_MODEL_20f4ed1b4fd34c62a146799c594bb4ff", "style": "IPY_MODEL_5bf4ded7f61e47de8733c5a3c366bc74" } }, "0e937dcb1d1b4c2bb19003ab741234c6": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "4", "6", "8" ], "description": "Cylinders:", "index": 0, "layout": "IPY_MODEL_c0457eaa28bf4b288d4afc7a174b5720", "style": "IPY_MODEL_a14dce38b34243de9a15436c0ee47156" } }, "0f8b214bef7643b6b7286cffa88eebda": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "1027824c923641c29846d92e93f48222": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "112c290fc42140e2bb9aef40fe0684eb": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "145eff33e19a49e6a6f966e33b4270d5": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "15fa48f15dd64692b4bf141a817eb051": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "4", "6", "8" ], "description": "Cylinders:", "index": 0, "layout": "IPY_MODEL_4b600c48d1574e33893bbb36a35b1125", "style": "IPY_MODEL_793b4b50bf5f4cef85f0755731d092bd" } }, "171d671de6b649859be29904a7d132c5": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "17fc822c5b9d47a68d84334a50878281": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "1835e1c613274b65b79ca49d3858c580": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "1b15cac8c1774946bd0907f37d1f046b": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "1c7a509c409a40c69e25363f97fd31a9": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "1db7dfe2cdf84c8689ddc3a844b411b5": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "1ecf51a0186e4786aeb59f7748ab10e8": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "4", "6", "8" ], "description": "Cylinders:", "index": 0, "layout": "IPY_MODEL_4c45b455e83343f0a0d345428b33ce8d", "style": "IPY_MODEL_f54fa2fa4f824b82bd66bbdcecfb45e3" } }, "20f4ed1b4fd34c62a146799c594bb4ff": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "21544f5bd3ca44b0afe9cf398668dfb9": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "2232c9c2e2454638a3a88583ed43c0dc": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "4", "6", "8" ], "description": "Cylinders:", "index": 0, "layout": "IPY_MODEL_8bced59bac49433f9811c760dc080e3d", "style": "IPY_MODEL_0f8b214bef7643b6b7286cffa88eebda" } }, "2313ed57dfde4fc395aa9ac78d26b41a": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "4", "6", "8" ], "description": "Cylinders:", "index": 0, "layout": "IPY_MODEL_760b120a097c4f179c4c1e1ee3dcf820", "style": "IPY_MODEL_76b945d33d5f4688811041dda6132823" } }, "23b45ba892b24a908f1539ba7aabdbc7": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "245ea617865b4ca6a1f4e689ce55e8b0": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "24a3839a464945f0b4940347f67fb508": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "SelectionRangeSliderModel", "state": { "_model_name": "SelectionRangeSliderModel", "_options_labels": [ "1.513", "1.615", "1.835", "1.935", "2.14", "2.2", "2.32", "2.465", "2.78", "3.15", "3.19" ], "_view_name": "SelectionRangeSliderView", "description": "Weight", "index": [ 0, 10 ], "layout": "IPY_MODEL_4576e021cbe746a3abf5d56a7c3c1638", "style": "IPY_MODEL_75bac9cf8de443b8bdcc6e7878fb1010" } }, "24e18b0421004dea97f0f7112df74150": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "253d2d2cca8e4c6bb83cf5c333287961": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "2557258c9cec412f9df62fe495c85ce8": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "4", "6", "8" ], "description": "Cylinders:", "index": 0, "layout": "IPY_MODEL_47530a18bc6f46299df90559b06bb1f7", "style": "IPY_MODEL_e1bbc9f8eeee4c77aec6155f93dd2857" } }, "2585b4383b994011bf10440bc0f9612a": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "25ff13811b7d473d8e7be84aab9ee39d": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "4", "6", "8" ], "description": "Cylinders:", "index": 0, "layout": "IPY_MODEL_316ca9b27eb14ce4a88475180a8e928a", "style": "IPY_MODEL_bd150cbbbba34e48a1be9012448e7ba1" } }, "261d9f8ebc254bb5b388c2db9b133ae2": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "2722eb47eb294f82a6dfd5be46598e64": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "4", "6", "8" ], "description": "Cylinders:", "index": 0, "layout": "IPY_MODEL_1b15cac8c1774946bd0907f37d1f046b", "style": "IPY_MODEL_931ab675f36a4b6da41a5d25648e6294" } }, "28641b4f3bd3408b901b47eb89737fa7": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "28794b9c2c7f4fc2a54967c6fc177744": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "2a58430bf6b3450090120e9247aa16c4": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "2b7c887f0a644115b62238045defc8e0": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "2cb2331ae8c443dea9c926a447e3a120": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "2ddcf1402df64aaab9fdd2bb17a37f50": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "2ddd132853184dc784b3f75e16ebaa63": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "4", "6", "8" ], "description": "Cylinders:", "index": 1, "layout": "IPY_MODEL_886355df78b847bb89ac34911566da55", "style": "IPY_MODEL_2a58430bf6b3450090120e9247aa16c4" } }, "2e39f062b52b48aca66a11eb2f6ea227": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "316ca9b27eb14ce4a88475180a8e928a": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "31e361cbcb2840ca83a92205361da99b": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "3283c7715ade41b28ebfe460e366cb6a": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "3297540f04764e96a1e716ff284db2fc": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "32a8bbaee1c44770a60facd19d5efb46": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "32da30812252439aa9a00524b91879b4": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_1ecf51a0186e4786aeb59f7748ab10e8", "IPY_MODEL_3c496a3b2a1b41df9ea67ce5955997b2" ], "layout": "IPY_MODEL_f527649c753d418a8f5dcb1a41080d5b" } }, "3373c2c724934193acf6fb610e21a1c8": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "4", "6", "8" ], "description": "Cylinders:", "index": 1, "layout": "IPY_MODEL_31e361cbcb2840ca83a92205361da99b", "style": "IPY_MODEL_d5265e2b27d84ffca6a69f1df06792b3" } }, "349bebed62eb41898af5148a8bf326bf": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "SelectionRangeSliderModel", "state": { "_model_name": "SelectionRangeSliderModel", "_options_labels": [ "1.513", "1.615", "1.835", "1.935", "2.14", "2.2", "2.32", "2.465", "2.78", "3.15", "3.19" ], "_view_name": "SelectionRangeSliderView", "description": "Weight", "index": [ 0, 10 ], "layout": "IPY_MODEL_5692c037fbc64c22a5b566287757bfe8", "style": "IPY_MODEL_cc6440c13d164ff785b3f4eebaee8efc" } }, "3526ef501074421eb36b8557ff8ae2c3": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_a28880be6aaf42e8bc9fd52559de7354", "IPY_MODEL_c6da176c8e2e4ecf9f6bdfe8a10c03d2" ], "layout": "IPY_MODEL_3283c7715ade41b28ebfe460e366cb6a" } }, "35316e2a80f245628f7d43bab73af6d9": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "36257438d464498da29e2783f2a8a458": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "36d7f7de5faf4da7baa43a5f9488b980": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "38b65fe78ad24778991c9f6f6c1507fc": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "39bab7b7b9f348c99d04a3cd38e0f633": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "3a8c2567977a425384e4459f8307b01c": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "3aebafd1340e420f9a876433841f9fe9": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "3b14ebf20a464f33b5e5e5c01a7a6073": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "3ba092103da944a483f84d59daa94083": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "3c496a3b2a1b41df9ea67ce5955997b2": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "SelectionRangeSliderModel", "state": { "_model_name": "SelectionRangeSliderModel", "_options_labels": [ "1.513", "1.615", "1.835", "1.935", "2.14", "2.2", "2.32", "2.465", "2.78", "3.15", "3.19" ], "_view_name": "SelectionRangeSliderView", "description": "Weight", "index": [ 0, 10 ], "layout": "IPY_MODEL_61c48d16c56e4b0bbefaf0ecae328f84", "style": "IPY_MODEL_fa91fd0cca5d44adbbb2a0662d97a159" } }, "3d4de14ff0834b65b3bce35c44bfdbc9": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "3db3fb09f6da48888f02fe5a91fac041": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "SelectionRangeSliderModel", "state": { "_model_name": "SelectionRangeSliderModel", "_options_labels": [ "1.5130000000000001", "1.615", "1.835", "1.935", "2.14", "2.2", "2.32", "2.465", "2.78", "3.15", "3.19" ], "_view_name": "SelectionRangeSliderView", "description": "Weight", "index": [ 0, 10 ], "layout": "IPY_MODEL_dcb90615cfc14d54a2f5fd072dcfef3d", "style": "IPY_MODEL_cf3189fb4bbc49e6a4ed977ab7f2194f" } }, "3db85de168b54fc1babe5a724648b3a8": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "4", "6", "8" ], "description": "Cylinders:", "index": 0, "layout": "IPY_MODEL_d402368372a6495dac908695cc5da878", "style": "IPY_MODEL_b869d3619fcb4f00a7bd97075f529fe9" } }, "3e13dbd6edc748e9b282b26bdc3a4c1f": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "3e910d5ba33d437faf73aa13b7240a24": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "3f8aec3935444522bfb91b994becf1b0": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "40bf441c8ce944a8879d7485b827b0d7": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "41199fbdadc9418aadea1833658cd634": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "4", "6", "8" ], "description": "Cylinders:", "index": 0, "layout": "IPY_MODEL_9aa4f63136ed465a9e14c4690d305926", "style": "IPY_MODEL_145eff33e19a49e6a6f966e33b4270d5" } }, "41d0ef81b08d46d9abf4b5b4ae46bd32": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "42b8bcd11e05429291064fdcf439de2a": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "44d1f973801e4c9bac284b3f8042ab74": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "44f96eb9c9ea469ca0e1049ceed3bfe8": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "453b46c83a4a4c7b9830a1914b826c78": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "4576e021cbe746a3abf5d56a7c3c1638": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "468c42af466242a7b2a1a61aaa0dce89": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "47530a18bc6f46299df90559b06bb1f7": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "48d2856048e64f0ca160167b7043a85d": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_a24d00f395744aad941ff745a1c081f5", "IPY_MODEL_5d375e5848534b96b1b59a3cf6cf0b10" ], "layout": "IPY_MODEL_e1379343e4b14cf2954ecd21b68a0928" } }, "4a81ccae96fd46d9be5d57fe87181994": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_a7a365ec0c644eab9c5ecea110b0efea", "IPY_MODEL_b3a1cc1c0c8b420aaa8c59cf0ee430e1" ], "layout": "IPY_MODEL_1835e1c613274b65b79ca49d3858c580" } }, "4b600c48d1574e33893bbb36a35b1125": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "4bd1ce7ace994947983a1e36cf51377d": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "4c06dafc5b46445484e2cc2bf07b1fe0": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "4", "6", "8" ], "description": "Cylinders:", "index": 0, "layout": "IPY_MODEL_f766de14f8794893a893f608f4fc37e4", "style": "IPY_MODEL_824dbaa1b80e4086930eaf80ee22eb9e" } }, "4c284e2b34504665a8071514ef9d72b9": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "4c441e05ccae4162accd4b55e5e762d8": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "4c45b455e83343f0a0d345428b33ce8d": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "4d3c5b74f86f4e45bd5a99eec8aed55a": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "51be1f83cce04ccf8f65fcbce93e883a": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "52d83c53db5341c3b1e16d94eafd36b9": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "52d866f7cffa48ee916167c6db22b461": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "533d6fe218384273853ff67ababaa064": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "5692c037fbc64c22a5b566287757bfe8": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "5b648f26e1db459f8aab477a69605cb6": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "5bf4031115cc442abc1d8ad68a802751": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "5bf4ded7f61e47de8733c5a3c366bc74": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "5c2eaff4fb72494b8adca4a08d60708e": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "5c3e62200e9a4af6a79bcc66b25d3d20": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "5d375e5848534b96b1b59a3cf6cf0b10": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "SelectionRangeSliderModel", "state": { "_model_name": "SelectionRangeSliderModel", "_options_labels": [ "1.513", "1.615", "1.835", "1.935", "2.14", "2.2", "2.32", "2.465", "2.78", "3.15", "3.19" ], "_view_name": "SelectionRangeSliderView", "description": "Weight", "index": [ 0, 10 ], "layout": "IPY_MODEL_42b8bcd11e05429291064fdcf439de2a", "style": "IPY_MODEL_36d7f7de5faf4da7baa43a5f9488b980" } }, "5ec82e0cb2ff4bbd9c5cf5d9d4d6f6db": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "608e01f210f64bbeba09e52348229c6d": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_6a67daf0597448d1b3362016378cdc3f", "IPY_MODEL_b7f3ae4326674eaa9c2083a12ee4e97c" ], "layout": "IPY_MODEL_44d1f973801e4c9bac284b3f8042ab74" } }, "61c48d16c56e4b0bbefaf0ecae328f84": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "627e4f5175f646adb95bc456338ee155": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "64c41e120eb1473cab050c8a412dfa39": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "696f3d8fa99d48df87c98a92e76f06e9": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "4", "6", "8" ], "description": "Cylinders:", "index": 0, "layout": "IPY_MODEL_bc59da14645042d9a0ad09ebcca6729b", "style": "IPY_MODEL_4bd1ce7ace994947983a1e36cf51377d" } }, "69784345958a40ae9fc5928cd55eba27": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "6a67daf0597448d1b3362016378cdc3f": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "4", "6", "8" ], "description": "Cylinders:", "index": 0, "layout": "IPY_MODEL_c3347c1c8650458eb8474d07777e896f", "style": "IPY_MODEL_5bf4031115cc442abc1d8ad68a802751" } }, "6a6c41d8422f49eeb2daa33c3872505c": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "6c2cce9939424a85afa6a1d1a2e46198": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "6ca2e5379d084413a2166bb74bd59ca3": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "6ce74bc928884458a378879e187fcaa1": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "4", "6", "8" ], "description": "Cylinders:", "index": 1, "layout": "IPY_MODEL_3f8aec3935444522bfb91b994becf1b0", "style": "IPY_MODEL_7570d2368ebf4f689c9e7b4842f0db79" } }, "6d9bf7b5a4ff42cda45c0334c1a7cd51": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "4", "6", "8" ], "description": "Cylinders:", "index": 0, "layout": "IPY_MODEL_a5f14206970448c4b59a81ab0f85b7e9", "style": "IPY_MODEL_e61fe087c0b945ffbd97e36bf69e5df7" } }, "6e4d7c1493164738ba1c1cfa1ed1ab91": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "714260cb1ebf473e8fa31df3439b9b91": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "72eec2df589e4cc787c61d9b551ec824": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "73a327c6fa7d4c3592f37a8e2634e0b5": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "4", "6", "8" ], "description": "Cylinders:", "index": 0, "layout": "IPY_MODEL_071516ae7f7c4f4a99f8e1a4b39758ee", "style": "IPY_MODEL_4c284e2b34504665a8071514ef9d72b9" } }, "7415bd93305d466d8a3e75a6cd8ebc2a": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "4", "6", "8" ], "description": "Cylinders:", "index": 0, "layout": "IPY_MODEL_a748b1965a2d42da9b9182d49e260f81", "style": "IPY_MODEL_8395c00f518a416f8e3a60572fdae851" } }, "747bd8a6453b4221b5ac8cb64ca09694": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "7570d2368ebf4f689c9e7b4842f0db79": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "75bac9cf8de443b8bdcc6e7878fb1010": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "760b120a097c4f179c4c1e1ee3dcf820": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "76b3a4666fba431d9413bfc9cfb33f38": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "76b4ce0a3eca4548992a010579fc0c4f": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "4", "6", "8" ], "description": "Cylinders:", "index": 0, "layout": "IPY_MODEL_2cb2331ae8c443dea9c926a447e3a120", "style": "IPY_MODEL_28641b4f3bd3408b901b47eb89737fa7" } }, "76b945d33d5f4688811041dda6132823": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "7896b6301e38493e8dbd04eda6519805": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "793b4b50bf5f4cef85f0755731d092bd": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "7e739d2a4e694b98bd104c3787530c9a": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "7f4a65843336463ebdacc54aecc0c458": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "7fef757ef05242c290ccb0b266f10c9d": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "80217617f443421d957411183f12a713": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "4", "6", "8" ], "description": "Cylinders:", "index": 1, "layout": "IPY_MODEL_82e5c759c33040688e9830110cc37511", "style": "IPY_MODEL_981adb7cd6ea4383b7a74868b6eca200" } }, "8224711f3bfe4acbac7be5dbfd5769c2": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "4", "6", "8" ], "description": "Cylinders:", "index": 1, "layout": "IPY_MODEL_c1b2d16d58584ccf8527cf4e779c8bb4", "style": "IPY_MODEL_04a317d790c6427092ca9f7a901af187" } }, "824dbaa1b80e4086930eaf80ee22eb9e": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "824dcd1ec43f47b5ba748a0c9741d397": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "82e5c759c33040688e9830110cc37511": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "8395c00f518a416f8e3a60572fdae851": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "86f524cd45e645c39b975012fb0fe071": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "87177726420140858f443a5033a85ef8": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "SelectionRangeSliderModel", "state": { "_model_name": "SelectionRangeSliderModel", "_options_labels": [ "1.5130000000000001", "1.615", "1.835", "1.935", "2.14", "2.2", "2.32", "2.465", "2.78", "3.15", "3.19" ], "_view_name": "SelectionRangeSliderView", "description": "Weight", "index": [ 0, 10 ], "layout": "IPY_MODEL_a3c64898e6aa4855b2b29b181e1deb56", "style": "IPY_MODEL_f262c589cdfc48d599f7e59b061f2fbc" } }, "886355df78b847bb89ac34911566da55": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "8bced59bac49433f9811c760dc080e3d": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "8d05de91cf1c4662a31f12ece93fbb80": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "8d4fd02e4dc0467d908b43e2e70a75c8": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "8e806805344f4db78faab0886c44a972": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_41199fbdadc9418aadea1833658cd634", "IPY_MODEL_a0f7673d4e584aa7a355e6a5438b6abe" ], "layout": "IPY_MODEL_9ac97acff4c54f00b1aa85ea22b7a34b" } }, "91225b52eac34effbc4e0c01c850552d": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_c340f24f7527457d99387a11fc6c2ac8", "IPY_MODEL_042e2fa5af6c4504b6d5b144acd6bb50" ], "layout": "IPY_MODEL_38b65fe78ad24778991c9f6f6c1507fc" } }, "918d1462a15d4162b22c8a01fba1a972": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_6d9bf7b5a4ff42cda45c0334c1a7cd51", "IPY_MODEL_065e3380e62c4e04bdecea1c86bf6b05" ], "layout": "IPY_MODEL_28794b9c2c7f4fc2a54967c6fc177744" } }, "925495c43523431da5a6e00f6c7fb7fb": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_9c5bb61d07d8442596f852c6db2d974e", "IPY_MODEL_24a3839a464945f0b4940347f67fb508" ], "layout": "IPY_MODEL_8d4fd02e4dc0467d908b43e2e70a75c8" } }, "931ab675f36a4b6da41a5d25648e6294": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "9406b851c3d24b17a518da67b2d6f99c": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "94d08df9a4a549879c663347387c18d2": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "95d635f429484e89bbb470ff29681ed0": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "4", "6", "8" ], "description": "Cylinders:", "index": 0, "layout": "IPY_MODEL_a7b8bb20dc3c4562a8bdd3b75ff76f42", "style": "IPY_MODEL_7896b6301e38493e8dbd04eda6519805" } }, "978557ad745445fc916e42b1bcd24e9c": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "4", "6", "8" ], "description": "Cylinders:", "index": 0, "layout": "IPY_MODEL_7e739d2a4e694b98bd104c3787530c9a", "style": "IPY_MODEL_068f061b142d423b9edf55dad860c602" } }, "981adb7cd6ea4383b7a74868b6eca200": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "987fa4a2778745acad4d31057c014222": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "98f7f1e6c18e4774acb9680470cd7f2e": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "4", "6", "8" ], "description": "Cylinders:", "index": 1, "layout": "IPY_MODEL_51be1f83cce04ccf8f65fcbce93e883a", "style": "IPY_MODEL_69784345958a40ae9fc5928cd55eba27" } }, "99fda4e465ab435f9f4dcddf2f454883": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "9aa4f63136ed465a9e14c4690d305926": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "9ac97acff4c54f00b1aa85ea22b7a34b": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "9b3ed186dd484bb8bcd28a576813a678": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_d3327179a9ba47b6beda2285cafd47e2", "IPY_MODEL_d2e0cd8c174440bd851e4f5e1079e05d" ], "layout": "IPY_MODEL_747bd8a6453b4221b5ac8cb64ca09694" } }, "9bb3c4bef5d14e97a93433c8ba290f7a": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "9c5bb61d07d8442596f852c6db2d974e": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "4", "6", "8" ], "description": "Cylinders:", "index": 0, "layout": "IPY_MODEL_40bf441c8ce944a8879d7485b827b0d7", "style": "IPY_MODEL_5b648f26e1db459f8aab477a69605cb6" } }, "9d12f772f1934e4897a4f868eeb74abb": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_0e78697b400742e39ea54c7edd9b8129", "IPY_MODEL_aa7f7754f8f94100a478658b20cd04f2" ], "layout": "IPY_MODEL_d19ba3d02d0a4c78b60d14213e0f0711" } }, "9d4a8ad2ab6d43768c201d380afc5a7d": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "4", "6", "8" ], "description": "Cylinders:", "index": 0, "layout": "IPY_MODEL_41d0ef81b08d46d9abf4b5b4ae46bd32", "style": "IPY_MODEL_0e438151f40d4fb199206ae0f2676809" } }, "9d4fc575ceda4197bd631a0741090ad8": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "9f353256006c4077990daabf6397b2a7": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "4", "6", "8" ], "description": "Cylinders:", "index": 0, "layout": "IPY_MODEL_627e4f5175f646adb95bc456338ee155", "style": "IPY_MODEL_6c2cce9939424a85afa6a1d1a2e46198" } }, "a0ab7a6ed95a40669a9c0b70f1dcf74d": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "a0f7673d4e584aa7a355e6a5438b6abe": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "SelectionRangeSliderModel", "state": { "_model_name": "SelectionRangeSliderModel", "_options_labels": [ "1.513", "1.615", "1.835", "1.935", "2.14", "2.2", "2.32", "2.465", "2.78", "3.15", "3.19" ], "_view_name": "SelectionRangeSliderView", "description": "Weight", "index": [ 0, 10 ], "layout": "IPY_MODEL_ce5f0f5a74f14bfea5967fa337bb897a", "style": "IPY_MODEL_21544f5bd3ca44b0afe9cf398668dfb9" } }, "a14dce38b34243de9a15436c0ee47156": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "a24d00f395744aad941ff745a1c081f5": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "4", "6", "8" ], "description": "Cylinders:", "index": 0, "layout": "IPY_MODEL_e8119301f1b84fee9fb1cb18c42e3b00", "style": "IPY_MODEL_32a8bbaee1c44770a60facd19d5efb46" } }, "a28880be6aaf42e8bc9fd52559de7354": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "4", "6", "8" ], "description": "Cylinders:", "index": 0, "layout": "IPY_MODEL_3d4de14ff0834b65b3bce35c44bfdbc9", "style": "IPY_MODEL_ee9c6f17afda407296dcdf7847bd2275" } }, "a33664945a6a4a8fb9f3242aedcd2fb6": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "4", "6", "8" ], "description": "Cylinders:", "index": 0, "layout": "IPY_MODEL_52d83c53db5341c3b1e16d94eafd36b9", "style": "IPY_MODEL_4c441e05ccae4162accd4b55e5e762d8" } }, "a3c64898e6aa4855b2b29b181e1deb56": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "a3dcf616a8ca4e32a8ad7ca3b639eda6": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "4", "6", "8" ], "description": "Cylinders:", "index": 0, "layout": "IPY_MODEL_bfd84e6dae394750b38671d66f1b3d27", "style": "IPY_MODEL_76b3a4666fba431d9413bfc9cfb33f38" } }, "a435645d10da487497e9288249f144ea": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "a54d38a8b83b44e4b9f034306969c345": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "a5f14206970448c4b59a81ab0f85b7e9": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "a748b1965a2d42da9b9182d49e260f81": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "a7a365ec0c644eab9c5ecea110b0efea": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "4", "6", "8" ], "description": "Cylinders:", "index": 0, "layout": "IPY_MODEL_c55341ab617540b5b99235aa9832ebe3", "style": "IPY_MODEL_eed594c0876f4cbfae8a2412631c2a1b" } }, "a7b8bb20dc3c4562a8bdd3b75ff76f42": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "aa7f7754f8f94100a478658b20cd04f2": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "SelectionRangeSliderModel", "state": { "_model_name": "SelectionRangeSliderModel", "_options_labels": [ "1.513", "1.615", "1.835", "1.935", "2.14", "2.2", "2.32", "2.465", "2.78", "3.15", "3.19" ], "_view_name": "SelectionRangeSliderView", "description": "Weight", "index": [ 0, 10 ], "layout": "IPY_MODEL_9406b851c3d24b17a518da67b2d6f99c", "style": "IPY_MODEL_fa178e300e924059b7e443abec26bb16" } }, "aaa26b83560c4f82860da6856a287283": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_f86bf42434654b11a62cb80d9cf18553", "IPY_MODEL_be4396ab2e6c4a12bcadaf9bac6c0e78" ], "layout": "IPY_MODEL_5c2eaff4fb72494b8adca4a08d60708e" } }, "ae0c4ff049904b21880331880f4a2187": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "ae842de1bfc64df18ade2e10963258f4": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "af0d0217be1049c099a173ae0829640f": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "4", "6", "8" ], "description": "Cylinders:", "index": 0, "layout": "IPY_MODEL_ae0c4ff049904b21880331880f4a2187", "style": "IPY_MODEL_0527c283c1314af199c6d652038ab9c2" } }, "b0df3c19d4334fc494485d34b6c86592": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "4", "6", "8" ], "description": "Cylinders:", "index": 1, "layout": "IPY_MODEL_86f524cd45e645c39b975012fb0fe071", "style": "IPY_MODEL_17fc822c5b9d47a68d84334a50878281" } }, "b177339cd6bb4172b93e1ba7d4757c13": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "4", "6", "8" ], "description": "Cylinders:", "index": 0, "layout": "IPY_MODEL_2e39f062b52b48aca66a11eb2f6ea227", "style": "IPY_MODEL_da2b0e3395a24d32bf3c0e708feee3df" } }, "b33ad7a4a2c045f8b0de4d7e33ba2143": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "b3a1cc1c0c8b420aaa8c59cf0ee430e1": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "SelectionRangeSliderModel", "state": { "_model_name": "SelectionRangeSliderModel", "_options_labels": [ "1.513", "1.615", "1.835", "1.935", "2.14", "2.2", "2.32", "2.465", "2.78", "3.15", "3.19" ], "_view_name": "SelectionRangeSliderView", "description": "Weight", "index": [ 0, 10 ], "layout": "IPY_MODEL_6a6c41d8422f49eeb2daa33c3872505c", "style": "IPY_MODEL_39bab7b7b9f348c99d04a3cd38e0f633" } }, "b647aae1569d41e0993d24dea9c777f1": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "b7f3ae4326674eaa9c2083a12ee4e97c": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "SelectionRangeSliderModel", "state": { "_model_name": "SelectionRangeSliderModel", "_options_labels": [ "1.5130000000000001", "1.615", "1.835", "1.935", "2.14", "2.2", "2.32", "2.465", "2.78", "3.15", "3.19" ], "_view_name": "SelectionRangeSliderView", "description": "Weight", "index": [ 0, 10 ], "layout": "IPY_MODEL_64c41e120eb1473cab050c8a412dfa39", "style": "IPY_MODEL_3e13dbd6edc748e9b282b26bdc3a4c1f" } }, "b869d3619fcb4f00a7bd97075f529fe9": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "b9435fe92f754d5ca2a744561f2db9f1": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "b945b2ba78624c64a2bca2dd47dc5771": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "ba548cf3db52433f8e9a882871587aa8": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "4", "6", "8" ], "description": "Cylinders:", "index": 0, "layout": "IPY_MODEL_5c3e62200e9a4af6a79bcc66b25d3d20", "style": "IPY_MODEL_72eec2df589e4cc787c61d9b551ec824" } }, "bb32db84be9d4315a8dab16ad851ca15": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "4", "6", "8" ], "description": "Cylinders:", "index": 1, "layout": "IPY_MODEL_3aebafd1340e420f9a876433841f9fe9", "style": "IPY_MODEL_fec5c43c8a084f588ea3e04c2e0473b0" } }, "bc11a5f6bc8c4380b578308d0b9704db": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "bc59da14645042d9a0ad09ebcca6729b": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "bd150cbbbba34e48a1be9012448e7ba1": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "be4396ab2e6c4a12bcadaf9bac6c0e78": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "SelectionRangeSliderModel", "state": { "_model_name": "SelectionRangeSliderModel", "_options_labels": [ "1.5130000000000001", "1.615", "1.835", "1.935", "2.14", "2.2", "2.32", "2.465", "2.78", "3.15", "3.19" ], "_view_name": "SelectionRangeSliderView", "description": "Weight", "index": [ 0, 10 ], "layout": "IPY_MODEL_d49b28fb02504af5a76215a09068708b", "style": "IPY_MODEL_5ec82e0cb2ff4bbd9c5cf5d9d4d6f6db" } }, "bfd84e6dae394750b38671d66f1b3d27": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "c0457eaa28bf4b288d4afc7a174b5720": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "c1b2d16d58584ccf8527cf4e779c8bb4": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "c3347c1c8650458eb8474d07777e896f": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "c340f24f7527457d99387a11fc6c2ac8": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "4", "6", "8" ], "description": "Cylinders:", "index": 0, "layout": "IPY_MODEL_fd8b66e3a28e4d23bc35fe2d129bdad2", "style": "IPY_MODEL_057046e694374429831993508c3a9c71" } }, "c3b0a266727f41699123f1178754d6e1": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "c3d5472d74fa464c95d55879877135de": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "SelectionRangeSliderModel", "state": { "_model_name": "SelectionRangeSliderModel", "_options_labels": [ "1.513", "1.615", "1.835", "1.935", "2.14", "2.2", "2.32", "2.465", "2.78", "3.15", "3.19" ], "_view_name": "SelectionRangeSliderView", "description": "Weight", "index": [ 0, 10 ], "layout": "IPY_MODEL_f90416e8deac4c2790da006613669d08", "style": "IPY_MODEL_533d6fe218384273853ff67ababaa064" } }, "c468a95efda449ff84dc233d985d2718": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "4", "6", "8" ], "description": "Cylinders:", "index": 0, "layout": "IPY_MODEL_eebb87fcabb04177bd42fe94280c4411", "style": "IPY_MODEL_2ddcf1402df64aaab9fdd2bb17a37f50" } }, "c55341ab617540b5b99235aa9832ebe3": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "c6da176c8e2e4ecf9f6bdfe8a10c03d2": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "SelectionRangeSliderModel", "state": { "_model_name": "SelectionRangeSliderModel", "_options_labels": [ "1.513", "1.615", "1.835", "1.935", "2.14", "2.2", "2.32", "2.465", "2.78", "3.15", "3.19" ], "_view_name": "SelectionRangeSliderView", "description": "Weight", "index": [ 0, 10 ], "layout": "IPY_MODEL_253d2d2cca8e4c6bb83cf5c333287961", "style": "IPY_MODEL_3b14ebf20a464f33b5e5e5c01a7a6073" } }, "c6dc177b2d6242889f14821ebbd75dd2": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "4", "6", "8" ], "description": "Cylinders:", "index": 0, "layout": "IPY_MODEL_e229fee878c44341973631e373dc0d7e", "style": "IPY_MODEL_3297540f04764e96a1e716ff284db2fc" } }, "ca92ca143e074f6f80d4bfc2208492cb": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "cb2b861671c44191a25452de27d00acb": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "cc6440c13d164ff785b3f4eebaee8efc": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "cdb2b506be554185bfdc477624fea383": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "cdd4dd618b094f778099fcf264eb3881": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "4", "6", "8" ], "description": "Cylinders:", "index": 0, "layout": "IPY_MODEL_44f96eb9c9ea469ca0e1049ceed3bfe8", "style": "IPY_MODEL_d974247fad024cb68a2ae9b949edbd43" } }, "ce5f0f5a74f14bfea5967fa337bb897a": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "cf3189fb4bbc49e6a4ed977ab7f2194f": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "cf402fe962584effb4edfcfd24250771": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "4", "6", "8" ], "description": "Cylinders:", "index": 0, "layout": "IPY_MODEL_36257438d464498da29e2783f2a8a458", "style": "IPY_MODEL_cb2b861671c44191a25452de27d00acb" } }, "d19ba3d02d0a4c78b60d14213e0f0711": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "d2e0cd8c174440bd851e4f5e1079e05d": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "SelectionRangeSliderModel", "state": { "_model_name": "SelectionRangeSliderModel", "_options_labels": [ "1.513", "1.615", "1.835", "1.935", "2.14", "2.2", "2.32", "2.465", "2.78", "3.15", "3.19" ], "_view_name": "SelectionRangeSliderView", "description": "Weight", "index": [ 0, 10 ], "layout": "IPY_MODEL_c3b0a266727f41699123f1178754d6e1", "style": "IPY_MODEL_94d08df9a4a549879c663347387c18d2" } }, "d3327179a9ba47b6beda2285cafd47e2": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "4", "6", "8" ], "description": "Cylinders:", "index": 0, "layout": "IPY_MODEL_7fef757ef05242c290ccb0b266f10c9d", "style": "IPY_MODEL_9bb3c4bef5d14e97a93433c8ba290f7a" } }, "d402368372a6495dac908695cc5da878": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "d49b28fb02504af5a76215a09068708b": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "d5265e2b27d84ffca6a69f1df06792b3": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "d554f7faa7784629bd4d4d2262ab03d0": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "4", "6", "8" ], "description": "Cylinders:", "index": 0, "layout": "IPY_MODEL_171d671de6b649859be29904a7d132c5", "style": "IPY_MODEL_b647aae1569d41e0993d24dea9c777f1" } }, "d6008ce2ded64282aebd9827f42219d1": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "4", "6", "8" ], "description": "Cylinders:", "index": 0, "layout": "IPY_MODEL_dc5776c2a4c842e7b504a9a06f1e95c3", "style": "IPY_MODEL_6e4d7c1493164738ba1c1cfa1ed1ab91" } }, "d628c75b44b24732b937fd098b7a4672": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_c468a95efda449ff84dc233d985d2718", "IPY_MODEL_3db3fb09f6da48888f02fe5a91fac041" ], "layout": "IPY_MODEL_468c42af466242a7b2a1a61aaa0dce89" } }, "d637773338cf47b88a4d2a9986148867": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "4", "6", "8" ], "description": "Cylinders:", "index": 0, "layout": "IPY_MODEL_714260cb1ebf473e8fa31df3439b9b91", "style": "IPY_MODEL_4d3c5b74f86f4e45bd5a99eec8aed55a" } }, "d8a1a5879f43499b9887bb4ca3b80c13": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "4", "6", "8" ], "description": "Cylinders:", "index": 1, "layout": "IPY_MODEL_fc38a9423b394e508b4f04c9eb5d0996", "style": "IPY_MODEL_99fda4e465ab435f9f4dcddf2f454883" } }, "d974247fad024cb68a2ae9b949edbd43": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "da2b0e3395a24d32bf3c0e708feee3df": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "dc5776c2a4c842e7b504a9a06f1e95c3": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "dcb90615cfc14d54a2f5fd072dcfef3d": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "df13d5f1728e49eea932609d7a396332": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "e1379343e4b14cf2954ecd21b68a0928": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "e1bbc9f8eeee4c77aec6155f93dd2857": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "e229fee878c44341973631e373dc0d7e": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "e24098d41cf54c79b62ae6a16a5b7b46": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "e597f44c3bab4ab49fb8123e0cbf4bab": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "e61fe087c0b945ffbd97e36bf69e5df7": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "e8119301f1b84fee9fb1cb18c42e3b00": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "e93befbb9bc54574a75c9a93a448be68": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "e988985f3d054bc281e2f48b0eb0741c": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "4", "6", "8" ], "description": "Cylinders:", "index": 0, "layout": "IPY_MODEL_1db7dfe2cdf84c8689ddc3a844b411b5", "style": "IPY_MODEL_e597f44c3bab4ab49fb8123e0cbf4bab" } }, "eb3958eeeab44f02b06f4cf3ac1187a5": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "ebef8f17f260454fbf28179cb53fe966": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "4", "6", "8" ], "description": "Cylinders:", "index": 0, "layout": "IPY_MODEL_23b45ba892b24a908f1539ba7aabdbc7", "style": "IPY_MODEL_3e910d5ba33d437faf73aa13b7240a24" } }, "ee9c6f17afda407296dcdf7847bd2275": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "eebb87fcabb04177bd42fe94280c4411": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "eed594c0876f4cbfae8a2412631c2a1b": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "f017bd93de3342a99eb66c21ff557776": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "4", "6", "8" ], "description": "Cylinders:", "index": 0, "layout": "IPY_MODEL_b9435fe92f754d5ca2a744561f2db9f1", "style": "IPY_MODEL_9d4fc575ceda4197bd631a0741090ad8" } }, "f0fb5e03d3004d548305d4c803129ab3": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "SelectionRangeSliderModel", "state": { "_model_name": "SelectionRangeSliderModel", "_options_labels": [ "1.513", "1.615", "1.835", "1.935", "2.14", "2.2", "2.32", "2.465", "2.78", "3.15", "3.19" ], "_view_name": "SelectionRangeSliderView", "description": "Weight", "index": [ 0, 10 ], "layout": "IPY_MODEL_b33ad7a4a2c045f8b0de4d7e33ba2143", "style": "IPY_MODEL_7f4a65843336463ebdacc54aecc0c458" } }, "f112c030df5d4cce93fcc39782113524": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "f1e66da637914eab8b12d3e2ea2d2919": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "4", "6", "8" ], "description": "Cylinders:", "index": 0, "layout": "IPY_MODEL_35316e2a80f245628f7d43bab73af6d9", "style": "IPY_MODEL_2585b4383b994011bf10440bc0f9612a" } }, "f21212d0bfde4aa780bbaf09a4b31abd": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "4", "6", "8" ], "description": "Cylinders:", "index": 0, "layout": "IPY_MODEL_245ea617865b4ca6a1f4e689ce55e8b0", "style": "IPY_MODEL_f112c030df5d4cce93fcc39782113524" } }, "f262c589cdfc48d599f7e59b061f2fbc": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "f315e6e2e22944c1882729183f478c8c": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_d6008ce2ded64282aebd9827f42219d1", "IPY_MODEL_87177726420140858f443a5033a85ef8" ], "layout": "IPY_MODEL_b945b2ba78624c64a2bca2dd47dc5771" } }, "f527649c753d418a8f5dcb1a41080d5b": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "f54fa2fa4f824b82bd66bbdcecfb45e3": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "f5900a5920f64f87afdb06d89c6d359d": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "f766de14f8794893a893f608f4fc37e4": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "f7e15b58bbb94c9897401bbb6321cf1e": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "4", "6", "8" ], "description": "Cylinders:", "index": 0, "layout": "IPY_MODEL_1027824c923641c29846d92e93f48222", "style": "IPY_MODEL_a0ab7a6ed95a40669a9c0b70f1dcf74d" } }, "f86bf42434654b11a62cb80d9cf18553": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DropdownModel", "state": { "_options_labels": [ "4", "6", "8" ], "description": "Cylinders:", "index": 0, "layout": "IPY_MODEL_0e5142a4c36c4c74b4ea843f456ab12d", "style": "IPY_MODEL_fa2e87d4375f4796af7c4328a121c724" } }, "f90416e8deac4c2790da006613669d08": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "f9cd9b9ddec84d5d81e71161f6b97151": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "SelectionRangeSliderModel", "state": { "_model_name": "SelectionRangeSliderModel", "_options_labels": [ "1.513", "1.615", "1.835", "1.935", "2.14", "2.2", "2.32", "2.465", "2.78", "3.15", "3.19" ], "_view_name": "SelectionRangeSliderView", "description": "Weight", "index": [ 0, 10 ], "layout": "IPY_MODEL_eb3958eeeab44f02b06f4cf3ac1187a5", "style": "IPY_MODEL_261d9f8ebc254bb5b388c2db9b133ae2" } }, "fa178e300e924059b7e443abec26bb16": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "fa2e87d4375f4796af7c4328a121c724": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "fa91fd0cca5d44adbbb2a0662d97a159": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } }, "fc38a9423b394e508b4f04c9eb5d0996": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "fd8b66e3a28e4d23bc35fe2d129bdad2": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": {} }, "fdbaf4b8715d4a298786a038e2cae6ed": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "HBoxModel", "state": { "children": [ "IPY_MODEL_4c06dafc5b46445484e2cc2bf07b1fe0", "IPY_MODEL_f9cd9b9ddec84d5d81e71161f6b97151" ], "layout": "IPY_MODEL_ca92ca143e074f6f80d4bfc2208492cb" } }, "fec5c43c8a084f588ea3e04c2e0473b0": { "model_module": "@jupyter-widgets/controls", "model_module_version": "1.5.0", "model_name": "DescriptionStyleModel", "state": { "description_width": "" } } }, "version_major": 2, "version_minor": 0 } } }, "nbformat": 4, "nbformat_minor": 4 }