diff --git a/Analyse.ipynb b/Analyse.ipynb index 77ad720d5db2cb6f80ca78bad19d8d3b4e29cb25..482444716cc73234bb3a665d4ffa9a6277515e2e 100644 --- a/Analyse.ipynb +++ b/Analyse.ipynb @@ -2,12 +2,12 @@ "cells": [ { "cell_type": "code", - "execution_count": 107, + "execution_count": 1, "id": "ec5a5281", "metadata": {}, "outputs": [], "source": [ - "%matplotlib inline\n", + "%matplotlib nbagg\n", "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "import numpy as np" @@ -15,22 +15,147 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 2, "id": "d50e7f08", "metadata": {}, "outputs": [ { "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th></th>\n", + " <th>Jahr</th>\n", + " <th>Bundesland</th>\n", + " <th>1</th>\n", + " <th>2</th>\n", + " <th>3</th>\n", + " <th>4</th>\n", + " <th>5</th>\n", + " <th>6</th>\n", + " <th>7</th>\n", + " <th>8</th>\n", + " <th>...</th>\n", + " <th>44</th>\n", + " <th>45</th>\n", + " <th>46</th>\n", + " <th>47</th>\n", + " <th>48</th>\n", + " <th>49</th>\n", + " <th>50</th>\n", + " <th>51</th>\n", + " <th>52</th>\n", + " <th>53</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>2021</td>\n", + " <td>Schleswig-Holstein</td>\n", + " <td>803</td>\n", + " <td>794</td>\n", + " <td>849</td>\n", + " <td>826</td>\n", + " <td>777</td>\n", + " <td>797</td>\n", + " <td>819</td>\n", + " <td>677</td>\n", + " <td>...</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>2021</td>\n", + " <td>Hamburg</td>\n", + " <td>451</td>\n", + " <td>437</td>\n", + " <td>462</td>\n", + " <td>396</td>\n", + " <td>416</td>\n", + " <td>363</td>\n", + " <td>405</td>\n", + " <td>346</td>\n", + " <td>...</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>2021</td>\n", + " <td>Niedersachsen</td>\n", + " <td>2164</td>\n", + " <td>2092</td>\n", + " <td>2166</td>\n", + " <td>2164</td>\n", + " <td>2179</td>\n", + " <td>2133</td>\n", + " <td>2061</td>\n", + " <td>1945</td>\n", + " <td>...</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " <td>NaN</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "<p>3 rows × 55 columns</p>\n", + "</div>" + ], "text/plain": [ - "Index(['Jahr', 'Bundesland', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10',\n", - " '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22',\n", - " '23', '24', '25', '26', '27', '28', '29', '30', '31', '32', '33', '34',\n", - " '35', '36', '37', '38', '39', '40', '41', '42', '43', '44', '45', '46',\n", - " '47', '48', '49', '50', '51', '52', '53'],\n", - " dtype='object')" + " Jahr Bundesland 1 2 3 4 5 6 7 8 \\\n", + "0 2021 Schleswig-Holstein 803 794 849 826 777 797 819 677 \n", + "1 2021 Hamburg 451 437 462 396 416 363 405 346 \n", + "2 2021 Niedersachsen 2164 2092 2166 2164 2179 2133 2061 1945 \n", + "\n", + " ... 44 45 46 47 48 49 50 51 52 53 \n", + "0 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", + "1 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", + "2 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN \n", + "\n", + "[3 rows x 55 columns]" ] }, - "execution_count": 8, + "execution_count": 2, "metadata": {}, "output_type": "execute_result" } @@ -40,13 +165,13 @@ "# 22.11.2021\n", "df = pd.read_csv('sterbefaelle.csv')\n", "df.head(3)\n", - "df.columns\n", + "#df.columns\n", "#df = df.set_index('Bundesland')" ] }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 3, "id": "dd29c69e", "metadata": {}, "outputs": [ @@ -588,7 +713,7 @@ "[16 rows x 52 columns]" ] }, - "execution_count": 14, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } @@ -603,31 +728,989 @@ }, { "cell_type": "code", - "execution_count": 72, + "execution_count": 4, "id": "ab1f10bc", "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_dpi_ratio', { dpi_ratio: fig.ratio });\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(\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", + " );\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('style', 'box-sizing: content-box;');\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; position: absolute; left: 0; top: 0; 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", + " canvas.setAttribute(\n", + " 'style',\n", + " 'width: ' + width + 'px; height: ' + height + 'px;'\n", + " );\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", + " return function (event) {\n", + " return fig.mouse_event(event, name);\n", + " };\n", + " }\n", + "\n", + " rubberband_canvas.addEventListener(\n", + " 'mousedown',\n", + " on_mouse_event_closure('button_press')\n", + " );\n", + " rubberband_canvas.addEventListener(\n", + " 'mouseup',\n", + " on_mouse_event_closure('button_release')\n", + " );\n", + " // Throttle sequential mouse events to 1 every 20ms.\n", + " rubberband_canvas.addEventListener(\n", + " 'mousemove',\n", + " on_mouse_event_closure('motion_notify')\n", + " );\n", + "\n", + " rubberband_canvas.addEventListener(\n", + " 'mouseenter',\n", + " on_mouse_event_closure('figure_enter')\n", + " );\n", + " rubberband_canvas.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", + " this.rubberband_canvas.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", + " var cursor = msg['cursor'];\n", + " switch (cursor) {\n", + " case 0:\n", + " cursor = 'pointer';\n", + " break;\n", + " case 1:\n", + " cursor = 'default';\n", + " break;\n", + " case 2:\n", + " cursor = 'crosshair';\n", + " break;\n", + " case 3:\n", + " cursor = 'move';\n", + " break;\n", + " }\n", + " fig.rubberband_canvas.style.cursor = 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", + " /* 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", + " evt.data.type = 'image/png';\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", + " evt.data\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", + "// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n", + "mpl.findpos = function (e) {\n", + " //this section is from http://www.quirksmode.org/js/events_properties.html\n", + " var targ;\n", + " if (!e) {\n", + " e = window.event;\n", + " }\n", + " if (e.target) {\n", + " targ = e.target;\n", + " } else if (e.srcElement) {\n", + " targ = e.srcElement;\n", + " }\n", + " if (targ.nodeType === 3) {\n", + " // defeat Safari bug\n", + " targ = targ.parentNode;\n", + " }\n", + "\n", + " // pageX,Y are the mouse positions relative to the document\n", + " var boundingRect = targ.getBoundingClientRect();\n", + " var x = e.pageX - (boundingRect.left + document.body.scrollLeft);\n", + " var y = e.pageY - (boundingRect.top + document.body.scrollTop);\n", + "\n", + " return { x: x, y: y };\n", + "};\n", + "\n", + "/*\n", + " * return a copy of an object with only non-object keys\n", + " * we need this to avoid circular references\n", + " * http://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", + " var canvas_pos = mpl.findpos(event);\n", + "\n", + " if (name === 'button_press') {\n", + " this.canvas.focus();\n", + " this.canvas_div.focus();\n", + " }\n", + "\n", + " var x = canvas_pos.x * this.ratio;\n", + " var y = canvas_pos.y * this.ratio;\n", + "\n", + " this.send_message(name, {\n", + " x: x,\n", + " y: y,\n", + " button: event.button,\n", + " step: event.step,\n", + " guiEvent: simpleKeys(event),\n", + " });\n", + "\n", + " /* This prevents the web browser from automatically changing to\n", + " * the text insertion cursor when the button is pressed. We want\n", + " * to control all of the cursor setting manually through the\n", + " * 'cursor' event from matplotlib */\n", + " event.preventDefault();\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.which === this._key) {\n", + " return;\n", + " } else {\n", + " this._key = event.which;\n", + " }\n", + " }\n", + " if (name === 'key_release') {\n", + " this._key = null;\n", + " }\n", + "\n", + " var value = '';\n", + " if (event.ctrlKey && event.which !== 17) {\n", + " value += 'ctrl+';\n", + " }\n", + " if (event.altKey && event.which !== 18) {\n", + " value += 'alt+';\n", + " }\n", + " if (event.shiftKey && event.which !== 16) {\n", + " value += 'shift+';\n", + " }\n", + "\n", + " value += 'k';\n", + " value += event.which.toString();\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 icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Left button pans, Right button zooms\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n", + "\n", + "mpl.extensions = [\"eps\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\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.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", + " // Pass the mpl event to the overridden (by mpl) onmessage function.\n", + " ws.onmessage(msg['content']['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(\"<div id='\" + id + \"'></div>\");\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", + " '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\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", + " '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\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 = '<i class=\"fa ' + image + ' fa-lg\"></i>';\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 = '<i class=\"fa fa-power-off icon-remove icon-large\"></i>';\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", + " var manager = IPython.notebook.keyboard_manager;\n", + " if (!manager) {\n", + " manager = IPython.keyboard_manager;\n", + " }\n", + "\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": [ - "<AxesSubplot:xlabel='Bundesland'>" + "<IPython.core.display.Javascript object>" ] }, - "execution_count": 72, "metadata": {}, - "output_type": "execute_result" + "output_type": "display_data" }, { "data": { - "image/png": "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\n", + "text/html": [ + "<img src=\"data:image/png;base64,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55mz4FzvHRfjvQt1iwJ4Aap6I92wYYMMw9A333xjviCXL1+u5ORkOZ1OLVy4UJK0cOFCRUZGKiAgQCEhIbrhhhvMdfz1r381b9e7d28FBwfL5XIpODhYsbGxatmypcLDwzVgwAB98803io+P11NPPSW3263Q0FBFRkbK6XSqefPmatiwoUJDQzVkyBA9/vjjMgxDGRkZ6tu3r4KCguRyufT4448rISFBDofDPNw5f/58DRkyRKGhoWrTpo3effddn8e5c+dODRw4UOHh4WratKnuvvtuHThwwPz5mW/C8fHxmjFjhkaOHKkGDRooLi5Of/3rX8/5/F522WU+vyVPnjxZDz74oDp27Kh//OMfcrvdGjRokMLCwtShQwdJp9+shgwZIsMwFBYWpoSEBIWHh5vr2L9/v3r06KHAwEAZhqHg4GDdddddys/Pr/RbdUBAgKKionwui4+PlyS98cYbatSokQzDkMPhULNmzZSVlWXez2233SbDMDRu3DjFxsYqPj5eO3fuVMeOHeVwOGQYhlwulwYNGmTe5qqrrlJsbKycTqccDodCQkL00EMP+TwnxcXFuuOOO9SwYUOFhYWpe/fu2rRpk6Sf3sRff/11xcfHKzIyUnfccYfPnti3335bV155pQICAhQcHKx+/frp+++/93mODcNQSEiI2rRpo+7du6tFixYKDQ1V+/btffITGhqq8PBwDR06VBMmTFB0dLSaNm2qv/71r/r+++917733qkGDBkpMTNTatWvN+/AWjczMTHXq1ElOp1M9e/bU9u3bzetUNZCef/558/mXfnr9zZw503yOJSk7O1udO3eW0+lU9+7dzV8IzmdvbHWvbUn68ssvNWzYMEVHRysmJka33nqr9u3bV+32nesQsPc9o+Jz3KlTp1rbO3a2xyZVLoDZ2dnq06ePXC6XWrZsqYceesgnK3PmzFGbNm3kdDrVtGlT3XbbbebPvDlzuVyKiYkxc/bdd9/JMAw99thjSkpKktPpVPv27TVnzhzztlOnTpVhGHI6nXI6nQoMDNQVV1zh8xxs3LhR1113nUJDQxUdHa1f//rX5i/RycnJeuihhzRp0iQ1bNhQzZo1U2pqqs9jTU1NNfdAxsbG+rzOjh07pkmTJumyyy5TWFiYevbsqXXr1pk/95an9957T0lJSeZ7cUlJSbXPfVZWllq0aKHjx4/rsssu0/r16yttV3Wv4fbt2yskJKTS46uYncsvv1wOh0MOh0NNmjTRmDFjdOTIEXP9FQvgnXfeWem9r2vXrjXKbXVz4t1331WbNm3kcrnUt29fvfbaa5V+yaguZxcyO3B+KIAX4Mw30iNHjmjUqFFq06aNTp06Zb4gW7durYyMDBUWFuqrr77SvHnzFBsbq759+6p///7m0E1LS5P0UwFMSkrSSy+9pICAALVs2VIdO3ZU+/bt5XQ69cQTT6hNmzYaPXq0+UYxdOhQNWnSRC+//LJWrlwph8Oh0NBQzZo1Sy+++KIiIyPN9WZmZmrcuHEKDAyUy+VSbm6utm3bZhbAli1baunSpcrPz9f48ePVoEED/ec//5EklZSUqHHjxpoyZYp27dqlTz75RP3799evfvUr87moqgDGxMRozpw5ys/P19NPP62AgADt2rXrrM/v8OHD9etf/9r8d48ePfT2229rzJgxevzxx+V2u3XLLbcoJCREwcHBKi4u1vDhw82iUlBQoGHDhskwDO3Zs0eS1LNnTwUFBempp57SunXr9OSTT6p58+aaNm2aMjIyZBiG2rVrp169emnDhg1as2aNYmNjZRiGFi5caB4GiY2N1fXXX6/Vq1crIyNDLVq0kNPp1A8//CDppwJ4880367PPPtOHH36oqKgoORwO/eUvf1FmZqauueYan70AHTt2VGhoqB566CG988476tKliwzD0HvvvWfmKzExUX369NFHH32k/Px8LV++3ByMqampatCggX77299qx44d2rBhg5o3b67HH3/c/H8LCgpSWlqabrvtNv3qV7/SnDlzdOTIEUnSvHnzFBMTI8Mw9Omnn2revHkKDQ3V9OnTtXfvXqWmppolODMzU7t371bjxo3lcDg0ffp07dmzR0899ZQCAgI0cOBAzZs3T3v27NGYMWPUqFEj8/CRt2h06NBB77//vrZv365BgwapdevW5l7omhbABg0aaMSIEfrss8+0Y8cOHT58WDExMbr77ru1c+dOrV27Vu3atbNcAM98bf/3v/9V27Ztdd9992n79u3Ky8szs+fdY1LV9kk1K4De1+ju3bs1dOhQxcfH1+jUgwt5bF4VC+D27dvVoEEDPf/889qzZ4+ys7PVtWtX3XvvvZKkLVu2KDAwUEuXLtX+/fv1ySef6MUXX5Tkm7N9+/Zp+/btZs5OnDgh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91yzA9ZRAC9AVYdSvHtApk6dWuVJuf/+979lGIaWLFmi3/zmNz5vxH379tXgwYPNAujxeNSlSxdNnz7d5/DMqlWrFBwcrAULFigqKkrx8fF68sknzfXm5+crKSlJ48ePV35+vgoLCyX9VAC925Oamqorr7xShmH4nONScSB5RUVFadGiRZJOl7Xf/va3lQZIfn6+ee5GVQXwzBPfO3fubJ6b8+WXX5rrqLjnoGXLlpoxY4YeffRRjRkzxry8Xbt26t+/vxo1amQeLujatasMw9DLL78swzCUn5+vWbNmKSIiQqWlpZIkl8ulKVOmaPr06erfv7+CgoL0pz/9Sfn5+frnP/9ZZQF8+umnfZ6T0aNHy+VyqXfv3lq8eLH+9re/mZ8U9r7Zn1kAvc/Zrl279Nprr+n3v/+94uLiFB8fry+//FLS6b2TrVq10gcffKC8vDx99tlnMgzDLDSPPPJItQWwutL0448/auPGjebeyCZNmqiwsNDMpfc80a1bt5rnGKWlpenTTz81M9i3b19zfd4CWDE/Vf1fV3z+zlUAvW/q06dPV6dOnXx+/swzz1R5DmBFEyZM0PXXX+9z2aeffmr5ELDk+9oePXq0evbsWeVroKys7KzrkGpWACtuq/e8uYrPsRU1OQSclJSkhx56qMrH590zdOLECf3jH//QpEmTlJiYqDZt2piD3ZuzadOm6aqrrqqUM+/7lHe5/fbbddlll2n//v3mL0aLFy/W7t27zT363uegW7du1RbAMz8EcubXnZSXl+vdd9/VQw89pObNm+sXv/iFjh8/rvT0dAUGBurzzz+v9Li97yFVfZjuzG8eqHg77968Hj16yOFwmL9UBQYGyuFwqGfPnuZ6avIarqoADh482HzPWbNmjVwulyZOnKj3339fhmFo0qRJZgHs1KlTpUPAZxbA882tV8U5MXjwYPPohdc777zjUwBrkrPqZgesowBegKpeKKdOnVJERIQeeeSRs34qq0WLFnryyScr3X7btm0KCAgwDzl6PB7zEHDFN+dJkybpiiuuMF/E3heId73S6UPAAwcO9LnfW265pVYK4OOPP6727duf85yk8y2AZzNixAj1799fV199tXl4UJLuv/9+dezYUQEBAeZvnN7fLr0nNUuV36x79erl86aUkpKiq666StLpk5G9e+cqHgIaNWqUz3OSlpZm7jH0+uijj3yuc2YBrOo5+/777xUUFKSMjAwdPHhQhmFo6NChldbpLYCvvfaaIiMjz3kIuLrh4eV2u3XrrbeqRYsWeu655ySdzuXIkSPNnA0aNMjnudq7d2+tFsCK/5/ffvutwsLCzMteeeUVNW3a1OcQ6/Dhw6stgHPnzlXjxo19vlbl1VdfrZUCWPG1PW/ePDVs2NDn8F1N1iHZowAOHz68UpE+l4pZPtPJkycr5cz7PuX13HPPqVGjRlqxYoV5Wor3OXjqqad8CuC9995b7SHg6gpgRd5vHNi6dat2794twzC0YcOGs66/ugJYle3bt8vhcGj9+vXasWOHuXz00UdyOBzmeXa1UQCfffZZBQUF6dSpU2Z27rvvPhmGob/85S9q2rSpFi5caD6G4cOHKzo62tw7WVsF8LHHHjPfW73++Mc/+hTAmuSMAvjzowBegDO/KiIvL09jx46Vw+HQunXrzloA58+fr9DQUPXo0UP9+vXT9u3btXDhQj333HMaMWKE+Ruwx+PR1q1bFRAQYA7mV155RaGhoVq0aFGlAuhd7wsvvKDly5fL4XDo9ttvV0pKil566SXzQyBWC+BXX32lJk2aaOjQodq8ebP27t2rv//97xo5cqROnjwpqfYK4MKFC83D5f/+97/Ny5csWWIOii+++MK83PtpZsMwVFhYqGnTpsnlcmnNmjWSTh+WCAwM1Pjx4/XWW2/pqquu0rXXXqupU6ea5/Fddtll6tOnj3JycrRhwwa1bNnS5zk5cuSIAgIC1KxZMy1dulRLliwxT8yeP3++pMoF8KuvvlJkZKQ6d+6sN954Qxs2bNC4cePkcDi0bds2nTp1SkFBQUpKSjL3RnrPr/MWwGPHjqldu3bq06ePNm7cqL1792rFihU+HwI51/DYtGmTZsyYoS1btmjo0KG6+uqrFRISYh6Cnj9/vnmoaMuWLbr77rsVExOjcePGKS8vT3fccUetFsArrrhCH3zwgXbs2KFbb71VrVq1Mn/rz8vLk8Ph0KxZs1RQUKCXX37ZPN3Bq6pBdejQIcXExOiee+5RXl6e+UlNwzDMc69qorrXtvdDIH379tWGDRtUWFiorKwsjR8/3jx/1M4FcNu2bQoNDdXYsWPl8Xi0Z88evfvuuxo3bpwkafXq1XrxxRfl8Xi0f/9+vfLKKwoICNBnn33mk7OioiK99dZbZs4OHjyo9u3bKzg4WJMnT9YHH3ygv/zlL4qMjFTPnj3l8XjMsrd69Wq9/vrr5gcHvM/B7t27FRISojFjxmjbtm3atWuXXnnlFZ8PgZyrAC5atEivvvqqduzYob1792rq1KkKDQ3VwYMHJUl33XWXzwf3cnNzNWvWLPM95EIK4IQJE3zO46uoV69emjhxoqTaKYDp6ekyjNPnnnufz8aNG8swDG3atEkOh0NDhw5VgwYNzNdV48aNFR4eLo/HozvuuEO33HJLpe083wJYWFho/j/v3r1by5cvN99LvXvJq8tZVfcrUQBrGwXwArjP+LLYiIgI9ejRQytWrJB07i8DfvPNN9WwYUM5HA41bNhQ1113nVauXKn9+/ebQ9h7uxUrVig+Pl6GcfpTV88++6wkVSqA3vV26dJFISEhCgsLU0hIiEJCQnTLLbeYh/esFkBJ2rNnj37zm98oOjpaoaGhSkpK0sSJE809NrVVACt+KrIi7wcozjwXJz8/3+crXiIjIxUcHGx+xYj3a1m8JTE4OFjdunUzPwX45JNPmm+WAQEBateuXaU9gJK0fPly8ytiHA6HLrvsMhmGoTfffFNS5QIonT63yfupWcM4fa7iTTfdZD5nnTp1UkxMjJxOpzp16qSsrCyfAiid/hqb2267TZGRkQoLC9PVV1+tzZs3S6p+eOTl5WnAgAFq0qSJAgICFB4erpdeesnn+t6TtIODgxUVFaVGjRrJ5XKpadOmGjduXK0WwNWrV+uKK65QSEiIevToUamgzZ07V3FxcQoPD9c999yjGTNmVFsApdN7cjt16qSQkBB1797dPKfs888/r3Tds6nutS2dPhf1nnvuUePGjeV0OpWYmKj777/f3Cto5wIoSbm5uerfv78aNGig8PBwderUSTNmzJB0eu90cnKy+TVTnTp1MvfeVsyZ0+lUu3btzJwdPXpUKSkpat26tXnuX0BAgFq1aqVly5ZJ+mkvkcvl0oABA8xPt1Z8DrKystSrVy85nU5FR0drwIAB5nZXVwBXrVqla665RpGRkQoPD9e1116rDz74wLzu8ePHNW3aNLVu3VrBwcFq3ry5fvOb35jvIedbAI8dO6ZGjRpVOo/N67nnnlPjxo117NixWimAHo9HaWlpio2NNc+f9J4j/t1332nu3Lnmp/29r6tWrVrptttuMz9s07Vr10rbeb4FUPrpa2CcTqf69u2ruXPnyjAMnw9pnStnVd2vRAGsbRRAAPXSkiVLFBwcrPLy8rreFMCv/fnPf1bLli3rejNwBgoggHph8eLF+uijj1RYWKhVq1apRYsWuuuuu+p6swC/M2fOHOXm5mrv3r16/fXXFRUVpalTp9b1ZuEMFEAA9cLs2bMVHx8vp9Op1q1ba+LEifwNU6AOTJw40fzrRm3bttWTTz5Za19ojtpDAQQAAPAzFEAAAAA/QwEEAADwMxRAAAAAP0MBBAAA8DMUQAB+6WxfjHwhzvXl77Wtqi/IBYDzRQEEUGfO/MsbMTExGjBggLZt23ZR7psCCMBfUQAB1Jkz//aux+PRzTffrLi4uIty3xRAAP6KAgigzlRVwjZs2CDDMPTNN99U+ju1ksw/dL9v3z5JP/2N1vfee09JSUkKDw/XgAEDVFJSYt7m5MmTevjhhxUVFaWYmBhNmjRJ99xzj899//jjj5o9e7YSEhLkcrnUqVMnvf322+bPv/32Ww0fPlyNGzeWy+VSmzZttHDhQkmVC+DJkyd13333qXXr1nK5XGrXrp1eeOGFKh/7s88+q+bNmysmJkZjx47V8ePHzet8/fXXGjRokFwul1q3bq0lS5ZQAAHUCgoggDpzZgE8cuSIRo0apTZt2ujUqVM1LoDBwcG64YYbtGXLFm3dulUdOnTQ8OHDzdvMnj1bUVFRWrFihfLy8vS73/1OERERPvf9+OOPKykpSe+995727t2rRYsWyel0KisrS5L04IMPqkuXLtqyZYv27dunf/zjH/q///s/SZUL4PHjxzVt2jTl5uaqsLBQS5YsUVhYmJYvX+7z2CMjIzV69Gjt2rVLq1evVlhYmObNm2deZ+DAgbryyiuVk5Ojjz/+WL169VJoaCgFEIBlFEAAdcbtdiswMFDh4eEKDw+XYRiKjY3V1q1bJanGBdAwDBUUFJjXmTNnjpo1a2b+OzY2VrNmzTL/feLECbVs2dIsgN9//71cLpdycnJ8tu93v/ud7rzzTknSLbfcopEjR1b5OGpyCHjs2LG67bbbfB57fHy8Tp48aV52++2364477pAk7d69W4ZhaNOmTebPd+3aJcMwKIAALKMAAqgzbrdbN9xwg/Lz85Wfn6/NmzfL7XaradOm2r9/f40LYFhYmM96V65cKYfDIUkqKyuTYRhav369z3WGDBliFsDc3FwZhmEWUe8SHBysnj17SpLWrl2r0NBQde7cWZMmTVJ2dra5rqoK4Ny5c9W9e3c1btzYXFePHj18HvtNN93ks03jx4/Xr371K0nSO++8o6CgIJ+CKEnR0dEUQACWUQAB1JmqzgE8efKkwsPDNXXqVK1fv16GYejbb781f+4ta2eeA1jRqlWrZBin395qUgA3bdokwzCUlZVlllHv8sUXX5i3+eabb7Ro0SLdddddcrlc+sMf/iCpcgFcvny5XC6X5syZo08++UT5+fl64IEH1Llz53M+9gkTJig5Odl8DEFBQTp16pTPdSiAAGoDBn3VCwAAAhxJREFUBRBAnamqBJ06dUoRERF65JFHlJeXJ8MwtHPnTvPn8+bNO68CKJ0+BDx79mzz3ydOnFBcXJx534cPH5bT6dTrr79e423/3//9X0VEREiqXADHjRun66+/3uf6/fr1O68C+Pnnn8swDG3evNn8ufcyCiAAqyiAAOrMmV8Dk5eXp7Fjx8rhcGjdunU6fvy44uLidPvtt2v37t3KzMxU+/btz7sAzpo1Sw0bNtTKlSu1a9cu3X///ZU+BDJ16lQ1atRIr732mgoKCvTJJ5/o5Zdf1muvvSZJ+tOf/qR33nlH+fn5+uyzzzRo0CDz8PCZBfCFF15QZGSk3nvvPe3evVt//OMfFRkZeV4FUJJuvPFGderUSZs2bdLHH3+s3r178yEQALWCAgigzpz5RdARERHq0aOHVqxYYV5n48aNuuqqq+RyudSnTx+9/fbb510AT5w4oQkTJigyMlLR0dF65JFHqvwamBdffFHt27dXcHCwmjRpogEDBpiHjp966il16NBBoaGhiomJ0eDBg1VYWCipcgE8evSo7r33XkVFRSk6OlpjxoxRSkrKeRfA0tJS3XzzzXI6nWrVqpVef/11vgYGQK2gAAIAAPgZCiAAAICfoQACAAD4GQogAACAn6EAAgAA+BkKIAAAgJ+hAAIAAPgZCiAAAICfoQACAAD4GQogAACAn6EAAgAA+BkKIAAAgJ+hAAIAAPiZ/w8fLIalM4ntzQAAAABJRU5ErkJggg==\" width=\"640\">" + ], "text/plain": [ - "<Figure size 432x288 with 1 Axes>" + "<IPython.core.display.HTML object>" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "<AxesSubplot:xlabel='Bundesland'>" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ @@ -655,25 +1738,983 @@ }, { "cell_type": "code", - "execution_count": 79, - "id": "28abfac5", + "execution_count": 5, + "id": "9d77bb4a", "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXAAAAEGCAYAAAB8Ys7jAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAh/UlEQVR4nO3deZzVdd338ddnGFYFQUQjTUZcaAGdYFTUDInE9KZsMa+60VDjUq8yy+vSpK7rVruypNLL3Motl4zItFxu7S6TRHNhmbERTVwSGcUFBkRNBGGYz/3H53vgMMxyBs7MnN/M+/l4zGPO8lu+v+39+57v+f2+x9wdERHJnrKuLoCIiGwbBbiISEYpwEVEMkoBLiKSUQpwEZGMKu/Mme2yyy5eUVHRmbMUEcm8mpqale4+rOnrnRrgFRUVVFdXd+YsRUQyz8zqmntdTSgiIhmlABcRySgFuIhIRnVqG3hzNmzYwLJly1i3bl1XF6Vb6devH3vssQe9e/fu6qKISAfp8gBftmwZAwcOpKKiAjPr6uJ0C+7OqlWrWLZsGXvttVdXF0dEOkiXN6GsW7eOoUOHKryLyMwYOnSoPtWIdHNdHuCAwrsDaJ2KlI6autVc9cA/qKlbXdTpFtSEYmZnAdMBB54ETgYGALcCFcBS4Hh3L27pREQyrqZuNVOvn8f6hkb6lJcxa/p4xo0YUpRpt1kDN7PdgTOBKncfDfQCvgTMAOa4+77AnPQ8k3bccceiTevLX/4y+++/P5deemnRpgnwwx/+sKjTE5HOMW/JKtY3NNLosKGhkXlLVhVt2oU2oZQD/c2snKh5vwocC9yc3r8Z+GzRSpVRr7/+Oo8++iiLFi3irLPOKuq0FeAi2TR+5FD6lJfRy6B3eRnjRw4t2rTbDHB3fwW4GHgJeA14y93vA3Zz99fSMK8BuzY3vpmdambVZlZdX19flEJ3VHvS3LlzmTBhAscffzz77bcfM2bMYNasWRx00EGMGTOGF154AYCTTjqJ008/ncMPP5z99tuPe+65B4DJkyezYsUKKisr+etf/0pNTQ0HHHAAhxxyCOeccw6jR48G4KabbuKMM87YNN8pU6Ywd+5cAGbPns2YMWMYPXo05557LgAzZsxg7dq1VFZWMnXqVAB+9atfcdBBB1FZWclpp53Gxo0bi7ouRKQ4xo0Ywqzp4/n3yaOK2nwChTWhDCFq23sB7wd2MLMTCp2Bu1/r7lXuXjVs2FZ9sbRbrj3pkvueZer184oe4k888QSXXXYZTz75JLfccgvPPfccCxYsYPr06VxxxRWbhlu6dCkPPvgg9957L6effjrr1q3j7rvvZu+996a2tpbDDz+ck08+mcsvv5zHHnusoHm/+uqrnHvuufzlL3+htraWhQsXcueddzJz5kz69+9PbW0ts2bNYvHixdx666088sgj1NbW0qtXL2bNmlXU9SAixTNuxBC+PnGfooY3FNaE8kngRXevd/cNwO+BQ4HlZjYcIP1fUdSStaAj25MADjzwQIYPH07fvn3Ze++9mTx5MgBjxoxh6dKlm4Y7/vjjKSsrY99992XkyJE888wzW0znrbfe4s0332TChAkAnHjiiW3Oe+HChRxxxBEMGzaM8vJypk6dykMPPbTVcHPmzKGmpoYDDzyQyspK5syZw5IlS7ZjqUUkiwq5CuUlYLyZDQDWApOAamANMA2Ymf7f1VGFzJdrT9rQ0Fj09iSAvn37bnpcVla26XlZWRkNDQ2b3mt6mV7T5+7e4qV85eXlNDY2bnqeu1670B+YdnemTZvGRRddVNDwItI9FdIGPh+4HXicuISwDLiWCO4jzex54Mj0vMN1ZHtSe9x22200NjbywgsvsGTJEkaNGrXF+4MHD2annXbi4YcfBtiiiaOiooLa2loaGxt5+eWXWbBgAQAHH3wwDz74ICtXrmTjxo3Mnj17Uw2+d+/ebNiwAYBJkyZx++23s2JFfOh54403qKtrtrdJEenGCroO3N3PB85v8vJ7RG28040bMaTLgjtn1KhRTJgwgeXLl3P11VfTr1+/rYa58cYbOeWUUxgwYABHHXXUptcPO+ww9tprr01fVo4dOxaA4cOHc9FFFzFx4kTcnWOOOYZjjz0WgFNPPZX999+fsWPHMmvWLC688EImT55MY2MjvXv35qqrrmLEiBGds/AiUhKs0I/txVBVVeVNf9Bh8eLFfOhDH+q0MhTDSSedxJQpUzjuuOMKHmfp0qVMmTKFp556qgNLtqUsrlsR2ZqZ1bh7VdPXS+JWehERab8u740wi2666aZ2j1NRUdGptW8R6f5Kogbemc04PYXWqUj31+UB3q9fP1atWqXAKaJcf+DNfbEqIt1Hlzeh7LHHHixbtoxi3WYvIfeLPCLSfXV5gPfu3Vu/GiMisg26vAlFRES2jQJcRCSjFOAiIhmlABcRySgFuIhIRinARUQySgEuIpJRCnARkYxSgIuIZJQCXEQkoxTgIiIZpQAXEckoBbiISEYpwEVEMkoBLiKSUQpwEZGMUoCLiGSUAlxEJKMU4CIiGaUAFxHJKAW4iEhGKcBFRDJKAS4iklEKcBGRjFKAi4hklAJcRCSjFOAiIhmlABcRySgFuIhIRpW3NYCZjQJuzXtpJHAeMBj4V6A+vf5dd/9DsQsoIiLNazPA3f1ZoBLAzHoBrwB3ACcDl7r7xR1ZQBGRzlRTt5p5S1YxfuRQxo0Y0tXFaVWbAd7EJOAFd68zs44oj4hIl6mpW83U6+exvqGRPuVlzJo+vqRDvL1t4F8CZuc9P8PMFpnZDWbW7FKa2almVm1m1fX19c0NIiJSEuYtWcX6hkYaHTY0NDJvyaquLlKrCg5wM+sDfAa4Lb30c2BvonnlNeCS5sZz92vdvcrdq4YNG7Z9pRUR6UDjRw6lT3kZvQx6l5cxfuTQri5Sq9rThHI08Li7LwfI/Qcws+uAe4pcNhGRNhWzzXrciCHMmj6+W7aBf5m85hMzG+7ur6WnnwOeKmbBRETa0hFt1uNGDCn54M4pqAnFzAYARwK/z3v5x2b2pJktAiYCZ3VA+UREWpS1NutiK6gG7u7vAkObvHZih5RIRKRAuTbrDQ2NmWizLrb2XkYoIlIystZmXWwKcBHJtCy1WReb+kIREckoBbiISEYpwEVEMkoBLiKSUQpwEZGMUoCLiGSUAlxEJKMU4CIiGaUAFxHJKAW4iEhGKcBFpFPV1K3mqgf+QU3d6q4uSuapLxQR6TRZ+83JUqcauIh0mp7ef3exKcBFpNNk7TcnS52aUESk0/T0/ruLTQEuIp2qJ/ffXWxqQhERySgFuIhIRinARUQySgEuIi3STTelTV9iikizdNNN6VMNXESapZtuSp8CXESapZtuSp+aUESkWbrppvQpwEWkRbrpprSpCUVEJKMU4CIiGaUAFxHJKAW4iEhGKcBFRDJKAS4iklEKcJFuRH2X9Cy6Dlykm1DfJT2PauAi3YT6Lul52gxwMxtlZrV5f2+b2bfMbGcz+7OZPZ/+61Qv0oXUd0nPY+5e+MBmvYBXgIOBrwNvuPtMM5sBDHH3c1sbv6qqyqurq7envCLSipq61eq7pBsysxp3r2r6envbwCcBL7h7nZkdCxyRXr8ZmAu0GuAi0rHUd0nP0t428C8Bs9Pj3dz9NYD0f9fmRjCzU82s2syq6+vrt72kIiKyhYID3Mz6AJ8BbmvPDNz9WnevcveqYcOGtbd8IiLSgvbUwI8GHnf35en5cjMbDpD+ryh24UREpGXtCfAvs7n5BOBuYFp6PA24q1iFEhGRthUU4GY2ADgS+H3eyzOBI83s+fTezOIXT6R7052Tsj0KugrF3d8FhjZ5bRVxVYqIbAPdOSnbS3diinQR3Tkp20sBLtJFdOekbC91ZiXSRfSr77K9FOAiXUh3Tsr2UBOKiEhGKcBFRDJKAS4iklEKcJEC6aYbKTX6ElOkALrpRkqRauAiBdBNN1KKFOAiBdBNN1KK1IQiUgDddCOlSAEuUiDddCOlRk0o0m3pqhHp7lQDl25JV41IT6AauHRLumpEegIFuHRLumpEegI1oUi3pKtGpCdQgEu3patGpLtTE4qUDF01ItI+qoHLNqupW120JgpdNSLSfgrwHqKYYZubXjEDt7mrRhTgIq1TgPcAHVG7LXbg5q4a2dDQqKtGRAqkAO8BOqJ2W+zA1VUjIu2nAO8BOqJ22xGBq6tGRNrH3L3TZlZVVeXV1dWdNj/ZrNht4CLSecysxt2rmr6uGngPodqtSPej68BFRDJKAS4iklEKcBGRjFKAi4hklAJcRCSjFOAiIhmlABcRySgFuIhIRinARUQyqqAAN7PBZna7mT1jZovN7BAzu8DMXjGz2vR3TEcXtifRjxuISFsKvZX+MuCP7n6cmfUBBgBHAZe6+8UdVroeSj9uICKFaLMGbmaDgI8DvwBw9/Xu/mYHl6tHa677VxGRpgppQhkJ1AM3mtnfzOx6M9shvXeGmS0ysxvMrNkqopmdambVZlZdX19frHJ3a7nuX3sZ+nEDEWlRm93JmlkVMA84zN3nm9llwNvAlcBKwIHvA8Pd/ZTWpqXuZAun7l9FJGd7upNdBixz9/np+e3ADHdfnjfx64B7ilJSAdT9q4i0rc0mFHd/HXjZzEallyYBT5vZ8LzBPgc81QHlExGRFhR6Fco3gFnpCpQlwMnA5WZWSTShLAVO64gCiohI8woKcHevBZq2v5xY9NKIiEjBdCemiEhGKcBFRDJKAS4iklEKcBGRjFKAi4hklAJcRCSjFOAiIhmlABcRySgFuIhIRinARUQySgEuIpJRCnARkYxSgBeJfoRYRDpbod3JSiv0I8Qi0hVUAy8C/QixiHQFBXgR6EeIRaQrqAmlCMaNGMKs6eP1I8Qi0ql6ZIB3xC++60eIRaSz9bgA1xeOItJd9Lg2cH3hKCLdRY8LcH3hKCLdRY9rQtEXjiLSXfS4AAd94Sgi3UOPa0IREekuFOAiIhmlABcRySgFuIhIRinARUQySgEuIpJRCnARkYxSgIuIZJQCXEQkoxTgIiIZpQAXEckoBbiISEYpwEVEMqqgADezwWZ2u5k9Y2aLzewQM9vZzP5sZs+n/+reT0SkExVaA78M+KO7fxA4AFgMzADmuPu+wJz0XEREOkmbAW5mg4CPA78AcPf17v4mcCxwcxrsZuCzHVNEERFpTiE18JFAPXCjmf3NzK43sx2A3dz9NYD0f9fmRjazU82s2syq6+vri1ZwEZGerpAALwfGAj93948Ca2hHc4m7X+vuVe5eNWzYsG0spoiINFVIgC8Dlrn7/PT8diLQl5vZcID0f0XHFFFERJrTZoC7++vAy2Y2Kr00CXgauBuYll6bBtzVISUUEZFmFfqjxt8AZplZH2AJcDIR/r81s68CLwFf7JgiiohIcwoKcHevBaqaeWtSUUsjIiIF052YIiIZpQAXEckoBbiISEYpwEVEMkoBLiKSUQpwEZGMUoCLiGSUAlxEJKMyEeA1dau56oF/UFO3uquLIiJSMgq9lb7L1NStZur181jf0Eif8jJmTR/PuBH68R8RkZKvgc9bsor1DY00OmxoaGTeklVdXSQRkZJQ8gE+fuRQ+pSX0cugd3kZ40cO7eoiiYiUhJJvQhk3Ygizpo9n3pJVjB85VM0nIiJJyQc4RIgruEVEtlTyTSgiItI8BbiISEYpwEVEMkoBLiKSUQpwEZGMUoCLiGSUuXvnzcysHqjbxtF3AVYWsTgdodTLWOrlg9IvY6mXD1TGYii18o1w92FNX+zUAN8eZlbt7lVdXY7WlHoZS718UPplLPXygcpYDKVevhw1oYiIZJQCXEQko7IU4Nd2dQEKUOplLPXyQemXsdTLBypjMZR6+YAMtYGLiMiWslQDFxGRPApwEZGM6tAAN7P/NLO/m9kiM6s1s4PbOf4RZnZPEcoxNM2/1sxeN7NX0uM3zezpVsZ7NPffzDamcZ4ws8fN7ND03vvN7PYCynCBmZ3dxjBuZrfkPS83s/r8dWBm3zSzn+Y9v8bM7s97/g0zuzw9ftvMJpnZ9Wb24bxh3mky3+/mPR5sZl9rpYxzzazgy6sKWe5mxjnJzGbnrfOnzOxPZrbSzPpuy35hZv9tZp8sYL5Xtme6aTw3s0vynp+d1tPZZna6mX2lyfD5y3WbmQ1Ir59pZovNbEMr89pi2Qs9xlpbNjNbamYfNbOn2rvsrWlu2QsY5yYzO67Ja++0NHx6v8LMlre0Htrap5tM69G8x9u0P7Qw3XYfB4XosAA3s0OAKcBYd98f+CTwckfNrzXuvsrdK929ErgauDQ9rgQaWxnv0Lz/a9M0DgC+A1xkZuXu/qq7H9fSNNppDTDazPqn50cCrzQZ5lHg0LznlcBOZtYrPT8UeCQ9fgN4wt2nu/tWJyoLZcB3814eDBS0s7dX3vza8nti2dcS+89oYBCw1N3fK2A+W/Vz7+7nufv9zQ1fBO8BnzezXZqZ79Xu/ssmL69N+98BwHrg9PT614Bj0vTalHeMjevqY6w5LSx7R/goMJCWs2YwBe7TuWO+uX2oFHVkIYcDK3MHnLuvBDCz84BPA/2JMDrN3d3M9iHCdRiwEfhims6OqYY7GqgBTkjDzwQ+AzQA97n72WY2LE1jzzTut9z9ETO7IL02kjhoHgQuTsP0MrPriOB7BTjW3dea2VzgbHevTgdmrpZ0EnAaUAHcZ2ZnAAuA51LZlwFvAXsDrwG7ETvTQGCkmU0BXgcOIe702pCG3xnYAegH1JrZrsA64F1gopmdCfyC2BHHmlkt8KP0/gvADWY2FhgFPJ2WeVAqc39gBfAD4DfAADP7WSpDA7CDma0FngeeBvYxs3XAs8Q+Ug78E+iTpnmCmV2Ttskf07I2Ao+l13YlKgeTiIPnLDP7FnF32/lm1geYmoYZSgTWde5+vplVAP8PeDutkw+kWtw44E0zuys9HmxmK9Jw89N6fAM4HHhf3gltSdoGK4BLgd8Bb6Z5DgTqgcnA+4AZaX94DlhEnByHAw58wt0XpPXeNw2/I/AzoFfadk+a2duAAb2BM8zsP9K8D0vleAroa2ZvAd8DPkWctH+U1nM10NvMDgJ+CoxI6/zVtO0eAPqb2eK07nYGasxs3zSf1Wb2Z2A88AFgCPBiWt5XzOyPwH5pu69N66hv+t/LzB4ADk7v/5bY189IZe1H7JPfA+5IZX0xrYcPprJ+AriSOLbHAYvcfaKZHUjsv2uAh4Gj04m5YGZmwI+Bo9M2udDdbyX2twZ3f8/MPgLcCPQxs/eldbInkSO1wJ+JY/W8tP42AFe6+3+a2U3A/yYqQCuIrCg3s2eIY7Y/cQysAqa6+/Im2bIn8FN3z30C/k/gK8TxX0/kV3G5e4f8ERu1Nq2snwET0us75w1zC/Dp9Hg+8Ln0uB8RmEcQ4bYHcbA/BnyM2GmfZfNVNIPT/18DH0uP9wQWp8cXEDtUX2IHWEMcYBXEjlqZhvstcYIAmAtUpce7EDtMLRHKjcDE9N7ewNPp8RnEDrETEY7rgX2JA2YD8H/SfN8Ebknj/AmoSY8bgHeA24kTUSNRE/0TsdPMBE5IZTuGOFlcktbj34gD9qW0fi4gAq0CuD8NW5H+nDjAJxOXS72T1u89wPFp3TYQATaZOEGckIZZBfzfvHX3fHr9VeJEZsCxRLBWECHkwIS0Hl8nQmwKcaA9D5yT5v3xNE4j8amgAahKw68FPp/KOofYL/4DuJPYL/4A3Ets52Fp+ZcCN6f5rgH+FfhCmtaZRKC+Acwi9rV3gRuI/eRV4Htpu8zO20a1xIm3b1onjWm8CenxJOJEuSEtwwWpXOelci8jwvRgIozfJSoOX0nrdn5axkFEuF9L1Ch/l9bRmWk6jcBENu+T64l9ok9a7gOJgBpEnBjuTuXeCbgtLfcHiJNPHVGLbSAqN72JY+H+VK564P7csZb+fpiWZVDafuuAU9I2WZfmcyGwOs3nKeDQNI2ZwFMt5MZNxEmhNu/vnfTeF4gA7pW23UvECfbDaZvmTrzfT8PvRoRuBXHMfTpvOtcS++qFqWwfT/NuSNM/Im2bG4n9ewGbs2U6cEkz2bJL2oa9iZPXk0SODQL+QVQIi5qzHVYDd/d3zGwcUSOaCNxqZjOAf5rZt9OC7Qz8PdV2d3f3O9K46wDihMsCd1+WntcSG2MesZNcb2b3Ejs2xI7+4TQewCAzG5ge35vO0O8SB8hu6fUX3b02Pa5J029hkbwy1cCPA640s9HETrCbmS0idmwjdpqDiR1sN2LDPkfsZH3Tsn8qLc9HgI3pcS/iQBxJHHSNRBBsIGoERxPBtwtwPVHrWwKMIXac8cCj7v5G3jq4izhpfafJsswzs4uJgO4PPE6cdHPL/6K716ZhhgA/Ac5OZX8mN0xankHEQf58+nT0JLET57zp7g8CmNnLxAnhCGK/GAB8K62bfdM6qyNqyz8ggmcYEfx3pXX0fFo3l6flui2txz8Steg/EzVkA4a7+0ozew3Yhwi4NcDvUg1qXhqXtC7fTfvJq8DRZvZ5Yrv2yVuev6RhHiUOeCcCcAURYuvScF9P5TUiPA9Nz3sTJ2EjtvcA4iQxk9jWEAF4BVGrPTENu4z4hARQ5+4PmNlkoia8Nq2Hm4FX3H2hmU0gAmpwWh8r3P0tMzuCCKQR7v6ymeWuJX4jbYOFRK22N7EvPgGMN7P7iMrY3cR+M4CoOOxMfEI7igjKZ9N8GoDlaf0OdPdc+/Kvif24Jee4+6bvlfLawD8GzHb3jcByM3uQOFEtIvapM4BvADPMbBTwUFp3OxHHykeIyscXgc+m98qI7bVvmkeDu29Mx88SYI27N5rZi8DP0+t9iH0/597U0vBe+lS4G5F7d7j7u2kZ7m5lebdZh36J6e4b3X2uu59PrNypxA5wnLuPAa4jatvWymTy2wM3AuXu3gAcRNRKPkscuBDLc4in9m53393d/9nMdBrZ3Hy01fTT4wY2r59+Tcq0lAjRYWn+5cQZ9zzirJ0bPjef/OUrIw62Wz3aQd8ChqTHDcCpRK1yMpvb50cRwbofUXv4KnHQzicO2neIAz2//bsh/X+ECP78ZcgdsAZcxOb2/X2Imlf+ejHgL8A1qYzzidpu/jBOrLtceRvZct9q7ku53Lx/RYT1ROLg+wPQx93XpmWYSwTjKiIQc5rOO3cg/t03f9dxtbtPbma+TcfPNbc05A23D/CbtJ9ewpbNjbmmh0a2/A6lnvjE1I/YrpcSYdVABPx6oma/xt37u3s/IjSdzdskN5/vEx+9vwF8CHg9bZ/cul+Tmol+DXwb2J04to5PZYeoUZ6RluEuttwP84+BnAbg5rT+/ge4yt0vIIL5i2md/YpoCjHihHMrUTnZjdgH92PL9ufm5rOJmd2YvnT8Q0vD5A/e2pspa75AVAj2Jz79/Q/xSWY1m4+Bo4GfuHt/oonoDnf/RW4yeZPM3x8+BsxJ6/I0tjyeWsqQDr/JpiO/xByV2uVyKomP5gArzWxHoiaLu78NLDOzz6Zx+1r6Zr6Fae8I7OTufyA2VmV66z7iRJEbrrLpuO2wlAhlcuXMM5g46FcR7agN7r6BaAfM1fgfImo9fYC/Ezt2fyLgIZpecmX+Qd60K4iP8Q+yeQd4ltTOTRzQjxK17T3dfUWaxkCi6eJRM9s5lb8vcVIpI2pSTf2JqDFuMLPeZrZ7GmeHJsMcyOYaaB9gWno8AHjL3d8iTiJ7pdc/wpY11oFm1s/MhhIfpz9CnBSms7km1kictI4hDjbY3ISyC3HQnEMcILmAmkq0p+a8CgxLX+4BHGtxdcVQYlv8g9guOwBl6TuTsUTtsalexIkDIsDa8hARovOJTxdDiCaMt4k24eOI/SD3XYqZ2QFp3AXAl9LjXI9zO6VlO4U4qZO2z+C8eV5DfGK5n9jG7xHNK4NTm/NA4G0z60fsLzlziLAlnQRywbgGOC59/wLR1l5BhOEjRBPWe8Q2+ROxHU8gPhEdQJyM9ieadPK9Q3zyzpUht6y4+8mp8nAMbXsI+Bcz65W23ceJdTeStL+Z2UiiWeX+VNY9iX1rcJNpHWNmg4l9aEDeMrekD5v3y2mtDZhX1s+ZWf/UCvDpAsZpt478EnNH4Iq0khqIg+dU4iPWk0TALMwb/kTgGjP7b6LG9kVaNhC4K+2YBpyVXj8TuCo1Z5QTK/H05ifRpouB35rZiUTYWGrm2Jk4CKelj1p3AueYWTVxAKwGcPfH08fw64kmhwWpfJOIj3GHmNkTxJl8fV6ZJ7v7xWY2n/hCKN/lwL+n5RpE1OhI85hGNNvcQHyy+UX6/wDR5PQ20bwwMzcxd7/PzD4E/BcRYv8kDvQa4Cgz+4m7n2NmfwO+amafJg6IJ4hPP+8nDiKIZo8xaR0tZstayVqiHXhP4nuA3YmakRMf1b9FfLI4gQjonI1EEC4EfkmcXJ4lToaDiRPiyUQNFGI/Oy6tp/2Ig+7Xab0+kbbNHWm9PZiGv5zmA3opMNPMTmPrK4G2krb3UiLcdiU+fp+QyrCRCO+pRBNI7qT+mzT6d4GriBPVq+m1HxPNIeXEiW4w8d3IFXmz/SqxbqcSzR1r03zPScOtI7bFQiJU90jjfTOtjxuI/SJ3sn2PqPnfl5YBornkSqJyArEOv018MvopcWKcmMr3MNGc19xVNF8FrjOzNWnct5oZpi13EN8tPUHsO99299ctLmvdw+KS4CHECbqOaHb7N2L7vgx8zcx2II6DC4kmqXVEwA+kdQuAr1tcijqPzZWVZqX94VaiDb8O+Gu7l7YAupW+k5jZjul7gXJiR7wh1+bf0+StiwHEyehUd3+8WMOncS4gvvy6uLXhpHPktmF6PIP4buKbXVyszMvEtY7dxAXp7N2PqOHc2bXF6VLXWtxY1I9oc201jLdheCk9/8vMvkNkTh1wUtcWp3tQDVxEJKPUF4qISEYpwEVEMkoBLiKSUQpwKUnWQu+PRZr2Umum46kCxtuqp7ztKEO7enUUaY6uQpFSleuxDzM7irhrc0KXlkikxKgGLlkwiHSDlG3dH/aVFv3T5GrW30s19ifN7IPp9aFmdp+Z/c2iF0XLG/8EM1uQavvXpLv8eqXa9lNpOmfRhJmdZ2YL0zDXWuokI9Wsf5Sm+ZyZHZ5e729mv7Hor/pW4iYkke2iAJdS1T+F6jPEnabfL3C8le4+Fvg50fkWwPnAw+7+UeLOwj0B0l2o/wIclmr7G4m7GiuJztVGp74vbmxmPle6+4EeXaL2Z8vOmcrd/SDiDtPz02v/RnSUtT/RdcI4RLaTAlxKVa6DrQ8SnRH9MlfLbcPv0//8niU/TnTChLvfy+Y+LSYRQbowdQEwiehXYwnRd/sVZvYp4nbzpiaa2XyLnhc/weYeDQspwyKiBz2R7aI2cCl57v5Y+tJxGFv2Eglb9xSZ64cjv1c4aL5nOCPu7PzOVm9ER1NHET0gHk90KpV7rx/R819V6o71Aprvna6QMohsM9XApeSltuxc7491RJ/vfc1sJ6LW3JaHiKYRzOxoosMjiF75NvW+Z2Y7m9mIdLIoc/ffEZ1vjW0yvVxYb9GrZjvKMJrotU9ku6gGLqWqf2rWgKgpT0sd+b9sZr8lmiCeJ35QoC3fA2ab2eNEL4QvAbj702b2X8RP45URvWB+nejV70bb/PudW9TQ3f1Ni5/ha65XzZb8PE1zEdFD3YICxhFplfpCERHJKDWhiIhklAJcRCSjFOAiIhmlABcRySgFuIhIRinARUQySgEuIpJR/x/gMGHdR3E+7QAAAABJRU5ErkJggg==\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "df_impf = pd.read_csv('Impfquoten.csv')\n", + "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_dpi_ratio', { dpi_ratio: fig.ratio });\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(\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", + " );\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('style', 'box-sizing: content-box;');\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; position: absolute; left: 0; top: 0; 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", + " canvas.setAttribute(\n", + " 'style',\n", + " 'width: ' + width + 'px; height: ' + height + 'px;'\n", + " );\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", + " return function (event) {\n", + " return fig.mouse_event(event, name);\n", + " };\n", + " }\n", + "\n", + " rubberband_canvas.addEventListener(\n", + " 'mousedown',\n", + " on_mouse_event_closure('button_press')\n", + " );\n", + " rubberband_canvas.addEventListener(\n", + " 'mouseup',\n", + " on_mouse_event_closure('button_release')\n", + " );\n", + " // Throttle sequential mouse events to 1 every 20ms.\n", + " rubberband_canvas.addEventListener(\n", + " 'mousemove',\n", + " on_mouse_event_closure('motion_notify')\n", + " );\n", + "\n", + " rubberband_canvas.addEventListener(\n", + " 'mouseenter',\n", + " on_mouse_event_closure('figure_enter')\n", + " );\n", + " rubberband_canvas.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", + " this.rubberband_canvas.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", + " var cursor = msg['cursor'];\n", + " switch (cursor) {\n", + " case 0:\n", + " cursor = 'pointer';\n", + " break;\n", + " case 1:\n", + " cursor = 'default';\n", + " break;\n", + " case 2:\n", + " cursor = 'crosshair';\n", + " break;\n", + " case 3:\n", + " cursor = 'move';\n", + " break;\n", + " }\n", + " fig.rubberband_canvas.style.cursor = 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", + " /* 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", + " evt.data.type = 'image/png';\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", + " evt.data\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", + "// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n", + "mpl.findpos = function (e) {\n", + " //this section is from http://www.quirksmode.org/js/events_properties.html\n", + " var targ;\n", + " if (!e) {\n", + " e = window.event;\n", + " }\n", + " if (e.target) {\n", + " targ = e.target;\n", + " } else if (e.srcElement) {\n", + " targ = e.srcElement;\n", + " }\n", + " if (targ.nodeType === 3) {\n", + " // defeat Safari bug\n", + " targ = targ.parentNode;\n", + " }\n", + "\n", + " // pageX,Y are the mouse positions relative to the document\n", + " var boundingRect = targ.getBoundingClientRect();\n", + " var x = e.pageX - (boundingRect.left + document.body.scrollLeft);\n", + " var y = e.pageY - (boundingRect.top + document.body.scrollTop);\n", + "\n", + " return { x: x, y: y };\n", + "};\n", + "\n", + "/*\n", + " * return a copy of an object with only non-object keys\n", + " * we need this to avoid circular references\n", + " * http://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", + " var canvas_pos = mpl.findpos(event);\n", + "\n", + " if (name === 'button_press') {\n", + " this.canvas.focus();\n", + " this.canvas_div.focus();\n", + " }\n", + "\n", + " var x = canvas_pos.x * this.ratio;\n", + " var y = canvas_pos.y * this.ratio;\n", + "\n", + " this.send_message(name, {\n", + " x: x,\n", + " y: y,\n", + " button: event.button,\n", + " step: event.step,\n", + " guiEvent: simpleKeys(event),\n", + " });\n", + "\n", + " /* This prevents the web browser from automatically changing to\n", + " * the text insertion cursor when the button is pressed. We want\n", + " * to control all of the cursor setting manually through the\n", + " * 'cursor' event from matplotlib */\n", + " event.preventDefault();\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.which === this._key) {\n", + " return;\n", + " } else {\n", + " this._key = event.which;\n", + " }\n", + " }\n", + " if (name === 'key_release') {\n", + " this._key = null;\n", + " }\n", + "\n", + " var value = '';\n", + " if (event.ctrlKey && event.which !== 17) {\n", + " value += 'ctrl+';\n", + " }\n", + " if (event.altKey && event.which !== 18) {\n", + " value += 'alt+';\n", + " }\n", + " if (event.shiftKey && event.which !== 16) {\n", + " value += 'shift+';\n", + " }\n", + "\n", + " value += 'k';\n", + " value += event.which.toString();\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 icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Left button pans, Right button zooms\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n", + "\n", + "mpl.extensions = [\"eps\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\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.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", + " // Pass the mpl event to the overridden (by mpl) onmessage function.\n", + " ws.onmessage(msg['content']['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(\"<div id='\" + id + \"'></div>\");\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", + " '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\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", + " '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\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 = '<i class=\"fa ' + image + ' fa-lg\"></i>';\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 = '<i class=\"fa fa-power-off icon-remove icon-large\"></i>';\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", + " var manager = IPython.notebook.keyboard_manager;\n", + " if (!manager) {\n", + " manager = IPython.keyboard_manager;\n", + " }\n", + "\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": [ + "<IPython.core.display.Javascript object>" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "<img src=\"data:image/png;base64,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WN/pZ5991npvYmJidPnll1u188EHH6hr166Kjo5WTEyMkpOTFRsbK4/HozZt2mjBggUqKSlRx44dre+I+T706tVLt912mzIzMzV79myFh4crMDBQAwcOtGbSp06dqoYNG1rf74iICOvz2bFjhwYPHqyIiAjr/vj4eD377LPq37+/br75Zus7c9lll8kwDHk8HrVv315ffPGFIiIi9OGHH1q1Uj2AlJaW6tJLL1VISIiaNGmi119/vVaHsNQ2AFZWVmr06NGKi4uTx+NR165dVVBQcNh3ctOmTTIMQ3l5eerdu7diYmIUFham1q1ba+HChdbrqz4yMjK0e/du6/1LSUlRQECAgoKCFBwcrLZt2+qNN97wCo5ZWVm64IILFBwcrKioKK86femll6z1uuOOO9S8eXOFhoYqLS1Nd911l9cPMrM/zJ49W6mpqYqKirI+T9OePXs0ZMgQhYeHKz4+Xo8++igB8BQgANbS77//roiICI0dO/aIF8OcNm2aPv30U/3444/6v//7P2VkZGjUqFHW/f/+97/l8Xg0atQofffdd/r+++/19NNPa+vWrZIObnCioqJ07733at26dXrllVfkcrn00UcfSZLefvttRUVFadGiRSouLtby5cv1wgsvWMsfPHiwunTpoi+++EJFRUV65JFH5PF4tG7dOkkHA2BQUJAuvPBCffPNN/r222/VqlUrDR48+JgBsGXLlsrPz9fatWs1YMAApaamWjNitQ2AbrdbQ4YM0ffff6/ly5dr5MiRCgwM1GOPPSZJmjRpkgzDUHx8vG6//XY1aNBAXbt2VUREhLZv3645c+YoODhYbrdbw4cP1w033KDQ0FCrMf7666964YUXFBcXp5CQEN111116+umnFRUVpZSUFA0bNsx6PYGBgYqIiNA999yjxMREBQYGyjAMrxDUo0cPTZs2TX379lVoaKgefPBBTZgwQS1atFBAQIAKCgqUkJCgoKAgffbZZ/r888+thti/f3/Fx8frzjvv1Msvv6w1a9ZI8g6A5sY2IiJCL730kjZs2KAxY8aoSZMmMgxDa9eu1SOPPKL4+HjNnj1bZ5xxhi688ELVq1dPTz75pPbv36/ly5fLMAzFxsbqueee0/z589WwYUOFhIRYn09GRoYVzubMmaMbbrjBWs8XXnhB69atU0ZGhoKCgqzd8ea6hYWF6aOPPtKqVatUv359uVwu3XbbbVqzZo3ee+89hYWFye12a8SIEXrjjTesoFM9AEZFRemRRx7R+vXrtX79er366qsyDEM33HCD1q5dq2effVbBwcEyDEPTp09XVVWVWrdurbCwMMXGxurrr7/WmWeeKcMw1LhxY73xxhsaPXq0AgMD5Xa7tWTJEq1cuVKbN29WUFCQgoKCNGTIEM2bN09t27ZVQECA9T3JyspSenq6WrVqpS+++ML6/OLi4rR69Wo99NBDcrlcCgwM1EUXXaT8/HwZhqHo6Gj17NlTAwYM0KhRo/TYY48pKChIN998s8LCwjRnzhylpqaqfv36OvfccxUREWG9hjPPPFMej0eTJk1Sv3791KpVK11yySVq27atXn31VbndbquO3W632rRpo2HDhnkFwJCQEIWEhFjv0W233WaFudDQUPXo0UNBQUFq3LixDMPQ5s2b1bJlS5133nl6/vnnNXHiRLVq1coKs40aNdIvv/yi5s2ba/jw4TIMQ0899ZQGDx6s5s2bq7i4WGVlZbryyivl8Xjkdrs1f/58FRYW6ptvvpHb7darr76q8PBwDR482PoOSwd388+dO1dr1qxRu3btFBkZqSZNmmj9+vVasGCB5s6dq/T0dLVo0UKBgYHq0qWLHnzwQc2cOVOtWrVSu3btFBERof79+6tPnz7q1q2b4uPjNWHCBE2YMEHNmjVTQECAJk6cqEceeUTBwcEaO3asdu/erZtuuskKnM8995xmz56tnJwc1a9fX1dffbXatm1rbQM8Ho+ioqJ0zz33aMCAAYqPj1dgYKD1o/3QAHLhhReqQ4cO+vrrr/Xtt98qKytLoaGhJywA3nLLLUpMTNSiRYv0n//8R9nZ2apXr562b9/u9Z3cunWrIiIilJaWph49emjVqlXasGGDFixYoM8//1z79+/XtddeK8Mw9Mknn+jtt99W8+bNNWrUKE2YMEEtW7bUa6+9ppycHN13330KDg7WLbfcIrfbrWeffdYrAJoz0507d9bbb7+tb7/91vphYZo0aZKWLl2qjRs36v3331ejRo00depU6/7c3Fzr8ywsLNQXX3xhfZ6mUaNGqXHjxta2pnfv3oqIiCAAnmQEwOPwzjvvqF69egoJCVGXLl105513auXKlUd8/FtvvaXY2Fjr34MGDTpsl2F1WVlZ6tatm9dt55xzjsaPHy/p4AxjixYtatzdVVRUJJfLpc2bN3vd3qNHD915552SDgZAwzCs2Sjp4C/5Ro0aHTMA/uMf/7Bu+89//iPDMPTDDz9Iqn0ANAxD4eHh1q/IhIQExcfHe21Aqx9X9/DDD+uMM86Qy+XSBx98oM6dO6tDhw5q27at9fhOnTpZB7z/+uuvSk5OVrdu3XT99ddbj5k0aZIVBNasWWMdg3jNNddIOnjSihmIAgMDtXHjRm3atEkhISHaunWr+vbtq7S0NF1wwQUKCQnRo48+qtatW0uSbrjhBmVmZmrQoEG67777FBkZqbS0NP322281zg6YAfDdd9+1ZmTGjh1r3X/oMYDJycl64403JP3RkCZNmqTOnTtLkkaPHn3Y5/N///d/MgzDmgU0A+DXX38tSdq/f79CQ0NlGIaWL18uSdYs0FdffSXpj2bTqlUra7ldu3aVy+XSnDlzJElDhgxRZmam1+fx5ZdfWrMOZgDs16+f13swcOBAxcTEaOjQodZtDRo0sOrDDIOGYejxxx+X9EfNDR8+3HqfzFm+Dz74QJJ09913q169emrVqpU141dSUiLDMJSeni5J6tixowzD0NKlSyUdnLW74oorFBoaqrfeektVVVWKioqyvidm/V9++eUKCwvzmtHv1auXRo4cqRtvvFGXX365UlNTdc011yg7O1upqan6+eefZRiG7r77bl1xxRUaOHCgvvrqK+u1ff311xoyZIhatGhhzTKnpqbqsssuU0BAgObMmWPddsYZZ1izwPPnz1eLFi1kGIZuvfVW67POzs62ZmIXL14st9utkpISa30/+OADazY/MjJSt9xyizIyMlRVVWUt15zFXrx4sSTp0ksvlWEYev31163lzJ07V1FRUdq1a9dRt4mLFy9WQECA9ZoLCwslSc8//7wiIyP19NNP17g9Cg8PV1hYmHbt2mWFpHHjxunss89WSEiItR3btGmTJGnEiBEaNGiQJOmvf/2rwsPDre+MadKkSWrfvr1cLpcVYtxutx544AFdccUVVn21b9/e+pvqAfCHH36QYRj65ptvrPvXr18vwzBqFQBDQkKsbZ85AgMDrQC4Z88eBQUFeb3Pv/32mxITE/Xwww9L8t6t+84778jtdlsB+tBedOgu4Lfeekv169dXSEjIYcdnmu/fpZdeam0HzACYkpJy2Gdk/iA6kocfftiayZcOflfNz9M0btw4derUSZK0e/duBQcHKy8vz7p/+/btCg0NJQCeZATA47R371599NFHuu+++9S5c2e53W7NnDlTkvTpp5/qwgsvVGJioiIiIqxf7Hv27JEktWrVSvfcc88Rl52VlaUbb7zR67Y+ffro2muvlST99NNPSk5OVuPGjXXddddp3rx51izPW2+95RWwqm9krrzySkmydhtVN2/ePLlcrmMGwOq7Inbs2CHDMPT5559Lqn0ArF+/vjULtHz5cmVnZysgIEB33323pIMznObGJTw8XB6PR3FxcYqKitIrr7yimJgYnXnmmdb7IUljx461dkWZG2SzCdY0Pv74Y2uW0dywDho0yAoJrVq1smaR3G63Ro4cqb59+6pz587W5xkUFKTAwEBrHV0ulzp27Kjzzz9fSUlJVrA5UgCMiIiQ2+3WvHnzZBiG127n6gHQfD3mrhdzl43H41HDhg0lSeedd95hDcacgTN/hWdkZCggIED79++3niclJUWhoaGaNWuWpD9ORDB3t5sNpPqMaFZWlurXr697771Xkqxdv+Z7Uf25qwdAcxdkeHi4Ro4cqQ4dOuivf/2rV1Mwd9mtX79ed9xxhyIjI9WrVy+v4y4Nw9BNN91kvU/NmjWzakOStdu9+vqYPzbM19+2bVu5XC7rvUhNTdXDDz+sDh066L777pMkJScnKygoyKv+r7/+eiv0P/fcczrrrLOsmbGgoCCdc8451rKys7N16aWXWsHqrbfe0i233KLzzz9fP/74ozUDvX//frVu3dranWzebr5/ZhB2uVzq37+/FQDNOqz+uEOD8xNPPKG0tDRJB0/UGDlypLVL3azZ7t27y+12W++RWUMul0vTp09XcXGxQkJCrOWYdu3apXbt2qlBgwa65ppr9PLLL+v999/32iZ26tRJ9erVk8vlspa/cOFCSQdne7p3737E7ZE5s2nWZd++ffX4448rMTHR2saZ75fb7Zbb7daZZ54pSXrzzTet9ywoKMh6Tea2pEGDBpo+fbr142bVqlVq2LChtU0zg6RZ72YAeffddxUYGKgDBw4c9n02v+MjR470qrvqdfvcc89Z2z5z9O/f3wqAK1eu9Aq1pn79+lnbu0ND3fTp0xUQEGD1hOq96PHHH7d+ZFfvReb7FxYWZh3CYn4/AgMDlZWV5RUAu3fvfthnZC7H9Pbbb6tr165q1KiR13ttys3NtT5P0+OPP27V1XfffSfDMA47MaxDhw4EwJOMAGjTiBEjlJKSYs0YjR07Vl999ZXWrl2rl156yesLe+aZZx4zAB5a8IdeUqWiokLvvfeeRo8erfj4eHXu3Fm//fab8vLy5Ha7tWbNmsM2NGVlZZJqPuja3M10rABY/SB483hI8/jC++67z+uXs3TwV2BNxwBWt3//frlcLl100UX66quvrI36I488onXr1un+++9XdHS0oqOjNXPmTMXExOiMM86wZoGkgwGw+i5Tc6M3ZMgQffLJJ9b49NNPtX79eq/HmBtuMwA2bdpUgwYNUuPGjdW4cWO9+OKL2rJli/r27av+/ftbG76MjAw9+eSTWr9+vZYuXarAwECtWrVKISEhOuuss6wAmJaWZs1gmaKjo5WcnKw2bdqod+/eh+0eqh4AzXV97bXXtH79enXs2FHZ2dlav369fvzxR0lS9+7dreBmft7mDEf1GcCAgACv5pWamqrQ0FArPJm7jMx1OVIAbNCggRWUWrZsqbS0NA0YMMCr3p577jmvADhhwgTrvi1btigzM1MTJ05UeHi4XnzxRSvout1uSbLCy3nnned1lrVhGNb3w/zRYdaGJF188cVq0KCBLr/88sPWx+12a//+/WrTps1hAXDatGnKzMy0TkxJTk6Wx+Pxqv+RI0cqMzNTc+bMUUhIiJ599ln17t1bPXr00PXXX6/MzExrWdV37Znv6ZgxY5SVleV1CMKBAwfUsmVLtWzZUhdeeKGioqI0YcIEq/E+9dRTMoyDZ6APGjTICoDPPfecdQxk9ddpBhtzVspssJdcconOPvts6wfW9OnT1aBBA3Xp0kUdO3a03v/p06dby9q8ebMyMzOVnJxc44kKv//+uz7++GONGzdO6enpatasmbWdi46OVkhIiG666SYlJCTo+++/96qt2267zQqAR9oeHXoSyLRp0xQfHy/DOHgc9rp165SXl6ebb75ZLVq0UP369fXjjz/ql19+sQJ7nz595PF4NGLECOs7079/fw0dOlSGYWjo0KGqqqpSbGys/vnPf8owDE2ZMsWr3s16mz9/fo0BsPqZ21u2bPH6PKrX7bF2AR8pBPXt29fa3tV0YsdPP/2k5557Tn/729/kcrlUr149bdq0yfox8NFHH3n1IvP9M48zf/TRR/X+++/riy++0GWXXaauXbt6BcCLLrrosM+oegA0t9sPPPCAvvnmG6/ttulYEwT//ve/CYB1hABo02OPPabY2Fi98847h20gzGPazC/ssGHDjrkL+FgBsDpzd+a3335rhYUvvvjiiMs/WQFw+vTpatiwodeZh4MHDz5mADxw4IBcLpfOO+88Pfroo9YMhbmxHDFihFcA7Ny5s8444wy1a9fOWsa5556rRo0aWe9zUlKS2rVrpwsuuKDG98B8PUcKgHfffbcSExOVmJhohQTzM0hKSpLb7VZAQIB++eUXa5nNmzfXhAkTZBgHd8mZu4A7duyocePGWY/buXOn3G63MjIytGXLFuuYrLffftt6jDmzZRiGtm3bpqSkJCuYXHTRRbr55pu9Xs+NN9542K6pQz8fcxewubtXkjWbYt5mnoBzaACs/su9a9euCgwMtHYBDx48WCkpKV6fh3TwTObqAfDQWdCBAweqd+/eGjZsmLX7KjAwUIGBgZKkjz76SG632wpbmzdvtnbRPfLII9b7dGgAnDBhgkJDQ9WyZUuv58vJybF2Zde0C/iBBx5QaGio9TkcLQDefPPNVm2ZDbxHjx7HHQDN937w4MGKj4+3dgFPmzZNK1euVEBAgMaNGyfDOLgLuHoAnD9/vpo1a2bNUprM77Jh/LELePPmzYqIiNDs2bP14YcfyjAOnkhjGIauvPJK1atXTzt37vT67KuqqtSvXz+1a9dOgwcPPuaZqnv27FFgYKDmzp2rbdu2yTAOzuJ/9tlnCggI0Ouvv+61/FmzZikqKkpPP/30cQVA83OZPXu219/s379fSUlJ1nGI1b8zM2bMUGRkpPXYp556yvo+PPXUU5IOzrJdddVVMgzD6+zlmnYB/+tf/7LuP55dwMcKgHv27FFwcPBhu4CTkpKsmj/Wmb0XXHCB3G63tXvY3IZIf/Si4OBgzZ49W7179/b6IX3gwAG1aNHiuAOgud2uztxum44VAHfv3q2goCBruyId3MsUFhZGADzJCIC1tG3bNp1//vl69dVXtXLlSv34449666231KhRIw0fPtz6FfPEE09ow4YNmj17tpKSkry+sGvXrlVwcLBGjRqllStX6ocfftD06dO9TgI5WgCcOXOm/vGPf6iwsFAbNmzQxIkTFRoaan3Jr776ajVp0kRz587Vjz/+qIKCAk2ZMsXa9XKyAuDq1avlcrk0ZcoUFRUV6ZlnnlG9evUOC4ANGza0LgOzevVqK7zcdNNN1i4WcybiySefVP369b0CYF5ennUSyHXXXaebbrrJ6ySQ8vJyvfjiiwoJCVFQUJAGDx6st956Sw899JCGDx/udQbgkQJgbm6udu7cqZ07dx72GQwdOtR6/lmzZqmoqEgrVqxQly5dFBISovT0dG3btk2xsbHq37+/srOz1aBBA02cOFHvv/++dfaqeRJIWVmZDMNQ586dvU6oMXetzpo1S48//rhCQ0P1xBNP6IorrlCbNm308MMP6/7779eBAwf09ddfyzAMXXjhhVq+fLk2bNiguXPnyjAO4udciQAADJZJREFUHgAu/TED2LFjR+sAdo/H4/X5mOHglltu0bp166xZkrCwMH3yyScqLCxUbGysIiMjrctBrFy5Uh6PRwEBARo2bJgWL16scePGKSIiwvo8agqA//znPxUQEKCbbrrJeg7zeCbpYAA544wz9Je//EWtWrXSgAEDdNZZZ3k10poCoHkSiNvt1qBBg/Txxx8rJydHgYGBmj59uvUdS09PV+vWrfXll18qISFBLVu2VLNmzaxja48WAM3LJX344Yfq16+fWrRooaioqOMOgF26dFH79u316quvKiAgwDoTdsKECXrvvfeUkZFh7barKQCaJ4Hk5ubq+++/1+rVq3X77bdbzfnAgQNq3bq1evTooYyMDJ199tlq06aNDOPgrs/Q0FBNnTpVzZs3tw4jmDFjhj777DN17NhRYWFhWrZsma688kr16tVLZWVl1iWSFixYoCeffFJLlixR586drWMPP/zwQ+Xl5cnlcqlp06Zav369MjMzreNNZ8yYoUWLFun9999XixYt1KJFC0VERGjDhg165513tGzZsqMGwNTUVE2cOFHR0dG6/PLLNX/+fC1cuFDDhw+X2+3WokWLdPfdd+umm26Sx+PR+PHjdf7556tt27Z6+eWX9dhjj2nVqlXWbs8vv/xS0sEZZzMwVb9qQk0ngZx55plavny5VqxYofPPP9/6bh5NbQKgJI0ZM0aJiYn64IMPvE4CMa8SYQbADRs26Pzzz1evXr00ffp0ff7555oyZYqCgoKUlpZm9SLDMPTwww/rmWeesX7w3X777YqNjVXPnj2VkJCgmTNn6q677lL37t0VFRV13AHQ3G6/+eabKioq8tpum2pziNANN9yglJQUa1vTp08fTgI5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\" width=\"640\">" + ], + "text/plain": [ + "<IPython.core.display.HTML object>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "df_impf = pd.read_csv('Impfquoten.csv')\n", "df_impf = df_impf[df_impf.Bundesland!=\"Deutschland\"].drop('Datum', axis=1) # Drop column 'Datum', row \"Deutschland\"\n", "df_impf = df_impf.set_index('Bundesland')\n", "#df_impf.columns\n", @@ -684,37 +2725,1048 @@ }, { "cell_type": "code", - "execution_count": 140, - "id": "ff16225f", + "execution_count": 8, + "id": "8e99105a", "metadata": {}, "outputs": [ { "data": { - "image/png": "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p060bduWUaNGAZCfn09ubm6yTdn3+fn5ZGdnc/nll9OlSxfeeOMNRo0aRdu2bWnXrh2//OUv2W+//Zg2bdpGdZ5zzjk89thjyfezZs1iypQpnHzyyYwfP56uXbvSrl07unbtyvjx48tdw+DBgzniiCN45JFHGDx4MKeeeiq9evXi0EMP5eSTT+a770oWuV+xYgXnnHMObdq0oU2bNvzhD39Ini8vL49f//rXHHnkkTRv3py77rqLp59+msMOO4wWLVrw3HPPJduGELjtttvo2LEjLVu25O233+aaa66hffv2tGnThhkzZiTb/uMf/+CSSy4hJyeHo48+mo8//hgoCeB69uxJv379yMnJYerUqYQQuP3225P9Pv/88xt9TpIkqWYxpJIkSUkLCldQXIlRVOsVx8iiNRuvS9W9e3emTJnCkiVLePzxx+nfv39y3x//+EcaNmzIuHHjKCgooFmzZvz+978H4Morr2TXXXdl8uTJTJ48mcGDB5fr9+233+aMM87gn//8J926dSu3b+nSpVx88cUMHTqUiRMn8uqrr3LRRRexdOlSABYtWkTXrl2ZNGkSN954I7/97W+Txy5atIh27doxbtw4/vKXv3D66aezZs2aLV7/1KlTOeOMM3j//fc59thjOf3003nwwQeZMmUKeXl5fPnllxUe179/f15//XWWLFkClIQ4p512Gunp6Zx88snccsstTJkyhVtvvZWTTz6ZtWvXJus8+OCDGT16NBdffDEAo0aN4rHHHmP69Ok0bNiQW265BYBbbrmFRCLB1KlTGTt2LEOGDOGNN95I1vD1118zcuRIPvjgA2688UamTZvG2LFjefbZZ7nqqqvK1bvbbrsxfvx4/vCHP/DTn/6UI444gkmTJtG/f39uu+22ZB3PPvss9913HxMnTmTQoEHlRoaNHj2awYMHM3HiRLKzswFo0KAB48eP54knnuCKK67Y4uctSZJ+2Hy6nyRJSqoVtv7/r2qF9I22hRA49dRTeeaZZ/jnP//JmDFjmDBhAgDDhw9n2bJlDBs2DIA1a9aQlZUFwKuvvsrEiRNJSyupo+xaUf/+97/517/+xb///W+aNWu20TnHjh3L559/zk9+8pNydcycOZMmTZpQr149evfuDZRMufv1r3+dbFe7dm3OOussALp160bdunWTo4A258ADD6Rr164AfPzxx9St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t956i7y8PJ588kkuuOACHnroIdLS0vjrX//K6NGjGTNmTHLK3XqffPIJU6ZMSfaxxx57kJaWRpMmTTjxxBMB2G233XjllVcIIVCrVi169uxJTk4OL730EscccwwvvPAC48ePp2HDhhx//PE89dRTXHDBBfzud7+jQYMGfPTRRyxcuJAOHTok17janDVr1jB8+HByc3MZNGgQ06dPJzc3l1/84hfJRe7XTxl85JFH+O1vf1vuiY8bfi8efvhhHnvsMfIOOpAFd9/FyjGjgQAxQXrD3Whw0s+o1+MY0suM0JB2Vo17dGXm4IqfVrqRtDQaHdae2k02/v14U+69915OOukk9t57b7p160bjxpuetr3ZOhs35tNPP6Vz586sWrWKp59+mtq1a7P33nvz61//mpycHPbff386duzI9OnTK+yjTp06DB06lIsvvphddtmFo48+mqZNm9Kw4daNJpNUcxhSSZJUk4R0qHM4FH8J6z6BuJr/TQFMQPreUOsgSGuQyip3nMTWPvEQSGw8KqFv377EGJk1axYvvvgitWvXBuDwww+nefPmQMmi8eufXDh8+HAmTJiQHEVVVFS0yX+0baqPsoqLixk0aBBvvvkm8+bNY926dcyYMYOHH36YSZMmcfzxxyfXgencuXNyxNQ777zD/fffD0CTJk34v//7v81e+ogRI8jOzk7Wdc0111TY7o033uCBBx5gxYoVm50+BPDmm2/ypz/9ieGXX8bSm24grlsHZaYSFS9exNKnnuC75/7JnrfcRu39W262P6m6S6tdi4Nuv4qPf3MnicLN/B4UAun1dqHldRdvtKui0H7ChAnJr9c/rALgtttuSx6z4XFlw/0WLVokR3uW/frmm2/e6Fw33HADN9xww0bb8/LyytUBJWtfrZ96/M477/DUU0+x9957b3SsJIEhlSRJNU8IkLFfya/EcoiFQBqk1YdQO9XV7Vjpu27lAaHCY9YvYPzcc89x1llnJZ+yVdHC71DyD8Prr7+ec889d4tn3FQfZd19990sWbKEjz76iMzMTC688EKaNWvGT3/6UyZNmrRRH6tXr07WsSmdO3dmzZo11K9fP/no+WOOOYZhw4Zttt758+dz1VVXMX78ePbff3/Gjh2bfOLghiZPnszFF1/Mc1deQZ2R+cRNTEuKa9YQ16xh3nXX0Oye+6jVdM/N1iBVd417dOXAW6/k0+vuJQJxTfmwKm2XTNJ3qUvbR28ns9keqSlyO3n++ee55557SCQSZGZm8vTTT5OW5qozkirm7w6SJNVkafUh/UeQ3rjmBVQAux4KoeInC1YopMOurTa5+5RTTuG4444rtxh8Rfr06cODDz7IkiVLgJLpc5MnT658HRtYunQpe+21F5mZmcyZMye5ttOW9OjRI7lg+6JFi3jxxReT+z744AMKCgqSAVVlrVq1itq1a7PnnnuSSCR46KGHKmw3Z84cTj75ZB5/6K80GfXuJgOqsuKqVSwZ8o+Ntrdo0SK5RlrZbdOmTeP888/f6muAkhEhr7766lYftz0NGDCAv/ylktPCtNP50U+OIvetR2l+0WnU/tHuhPR0Qu1a7HJQC35802V0fOtRdjmgearL/N4GDBjA5MmTmTp1KuPHj+fwww9PdUmSqjFHUkmSpJorszmk1YHijZ/uV6FaTQi1dt9sk9///vfk5ORscioclEzFWbhwYXKh90QiwaWXXkpWVlalSy/riiuu4JRTTqF9+/Y0b96cHj16VOq4G264gXPPPZdDDjmEFi1acNxxx23T+ctq2bIlp5xyCoceeij77rsv3bp14913392o3SOPPMKCBQv4xcUXU7xkKcTIDW0OpmuTJpvuPEZWf/ABxcuXk16//NPOVqxYkXzK4Ibn2VGKiorIyPCv16q82o13Y9+LTmPfi05LdSmSVC0En5hSXm5ubtxwHrWUn59f7ulQkqoH701tD7HwS/j2BYibXzuJUAv2PINQ+0c7prCd1Nbel3Ou+AXrvphd6fahbl2a/OIKdj3if4vXt2jRgsGDB3PzzTfz8ccfU7t2bVq0aMGrr77KL37xCwYOHEjv3r1ZtmwZv/rVr5gyZQqFhYV0796du+++m/T0dD766CPOOecc1q1bxyGHHMLMmTO5/vrr6d27N/PmzePyyy/nyy+/ZPXq1Zx++ulce+21yXOfd955/Oc//6Fly5b85je/YcCAAaxatYri4mIGDBjAwIEDefvtt7n++uspLCykqKiI6667jp///Ocln8GcOVxxxRXJhw+cfvrpXHPNNQwYMIDMzEw++eQTvvrqK7p27co//vEPQgj87W9/45577qFOnTokEgmeffZZWrduzccff8yVV17JwoULWbt2LVdeeSXnnHNOyWcXArfddhsvvvgiixYt4s47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gwYBMH/+fGrVqkXjxo0BCCGQnZ0NwHvvvccRRxxBVlYWLVu2ZN99/zcCa8iQIYQQaNy4cbK+u+66q9xaXvPmzaNv37506tSJtm3bcvvttwMlC+FfeumltG7dmqysLA4//HDuvfderrjiCu68804Ahg4dSgiBQw45hKuuuopevXrx73//m9mzZ5d78uLzzz/PLrvsQsuWLbn99tsJIbBixYpKfR4b+uabb/jZz35Gu3btaNu2LUOGDKmw3c0330zr1q3Jzs6mffv2LF26lMsuuwyAww47jOzsbJYuXcqyZcs4//zz6dSpE+3ateOXv/xlci22vLw8Xn31VaDke3zxxRdz9NFHc+CBB9K/f3+caSMplRxJJUmSpGolbZddSNtll1SXscMkPnwhOWJqi4oKiZ+PI/z48HKbV6xYwRNPPMHZZ5+9TTUUFRWRkVG5fxoUFRWxZvFyCMBW5BmxuJie3Xrw05NOAiArK4tOnTqx7777kpeXxxFHHEG/fv0IIfCzn/2MF154gcMOO4wVK1bQuHFjvvnmG6BkcfrOnTuz++67c/XVVzNgwADy8/PLPQmxf//+3HDDDRx11FGsXbuWHj160LFjR5o0acKIESP473//S1paGkuWLKF9+/Zcd911PP/88wwaNIjnnnuOunXrcuONN3LyySez5557csQRR/Dtt98m+//222+58MILadu2LTfccAOffvrpFq+/b9++5Wr85JNPkl9fccUVtGnThhdffJF58+bRoUMHOnToUG6K35IlS7jrrrv49ttvqVu3LsuXL6du3bo88MADPPjgg4wdOzb5pMnzzz+fbt268cgjj5BIJDjzzDN544036NGjx0Z1TZs2jREjRpCWlkb79u0ZMWIExx57bCW/q5K0fTmSSpIkSUqRuHoZ8esplT9gXSHFBcM32jx48GAGDx680SLpM2fOpEePHrRr144OHTrwr3/9K7kvhMCdd95JXl4eN998M3PmzKFHjx5kZWVx0kknlRuZNGDAAC6//HJ69uxJ586dSUtPI0HkH/G/3Bg/4MY4jrlxZbL9mDiPW+IEbo7j+WP8kHlxJTERefKfQ+nbty8A7777LrNnz6Z79+6899573HDDDRx88MG88cYbHHLIIRx22GFAyRMQO3XqRH5+fvL95ZdfzsyZM2nUqBFffPEFo0ePpk6dOqxbt44rr7ySESNG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\n", + "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_dpi_ratio', { dpi_ratio: fig.ratio });\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(\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", + " );\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('style', 'box-sizing: content-box;');\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; position: absolute; left: 0; top: 0; 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", + " canvas.setAttribute(\n", + " 'style',\n", + " 'width: ' + width + 'px; height: ' + height + 'px;'\n", + " );\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", + " return function (event) {\n", + " return fig.mouse_event(event, name);\n", + " };\n", + " }\n", + "\n", + " rubberband_canvas.addEventListener(\n", + " 'mousedown',\n", + " on_mouse_event_closure('button_press')\n", + " );\n", + " rubberband_canvas.addEventListener(\n", + " 'mouseup',\n", + " on_mouse_event_closure('button_release')\n", + " );\n", + " // Throttle sequential mouse events to 1 every 20ms.\n", + " rubberband_canvas.addEventListener(\n", + " 'mousemove',\n", + " on_mouse_event_closure('motion_notify')\n", + " );\n", + "\n", + " rubberband_canvas.addEventListener(\n", + " 'mouseenter',\n", + " on_mouse_event_closure('figure_enter')\n", + " );\n", + " rubberband_canvas.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", + " this.rubberband_canvas.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", + " var cursor = msg['cursor'];\n", + " switch (cursor) {\n", + " case 0:\n", + " cursor = 'pointer';\n", + " break;\n", + " case 1:\n", + " cursor = 'default';\n", + " break;\n", + " case 2:\n", + " cursor = 'crosshair';\n", + " break;\n", + " case 3:\n", + " cursor = 'move';\n", + " break;\n", + " }\n", + " fig.rubberband_canvas.style.cursor = 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", + " /* 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", + " evt.data.type = 'image/png';\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", + " evt.data\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", + "// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n", + "mpl.findpos = function (e) {\n", + " //this section is from http://www.quirksmode.org/js/events_properties.html\n", + " var targ;\n", + " if (!e) {\n", + " e = window.event;\n", + " }\n", + " if (e.target) {\n", + " targ = e.target;\n", + " } else if (e.srcElement) {\n", + " targ = e.srcElement;\n", + " }\n", + " if (targ.nodeType === 3) {\n", + " // defeat Safari bug\n", + " targ = targ.parentNode;\n", + " }\n", + "\n", + " // pageX,Y are the mouse positions relative to the document\n", + " var boundingRect = targ.getBoundingClientRect();\n", + " var x = e.pageX - (boundingRect.left + document.body.scrollLeft);\n", + " var y = e.pageY - (boundingRect.top + document.body.scrollTop);\n", + "\n", + " return { x: x, y: y };\n", + "};\n", + "\n", + "/*\n", + " * return a copy of an object with only non-object keys\n", + " * we need this to avoid circular references\n", + " * http://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", + " var canvas_pos = mpl.findpos(event);\n", + "\n", + " if (name === 'button_press') {\n", + " this.canvas.focus();\n", + " this.canvas_div.focus();\n", + " }\n", + "\n", + " var x = canvas_pos.x * this.ratio;\n", + " var y = canvas_pos.y * this.ratio;\n", + "\n", + " this.send_message(name, {\n", + " x: x,\n", + " y: y,\n", + " button: event.button,\n", + " step: event.step,\n", + " guiEvent: simpleKeys(event),\n", + " });\n", + "\n", + " /* This prevents the web browser from automatically changing to\n", + " * the text insertion cursor when the button is pressed. We want\n", + " * to control all of the cursor setting manually through the\n", + " * 'cursor' event from matplotlib */\n", + " event.preventDefault();\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.which === this._key) {\n", + " return;\n", + " } else {\n", + " this._key = event.which;\n", + " }\n", + " }\n", + " if (name === 'key_release') {\n", + " this._key = null;\n", + " }\n", + "\n", + " var value = '';\n", + " if (event.ctrlKey && event.which !== 17) {\n", + " value += 'ctrl+';\n", + " }\n", + " if (event.altKey && event.which !== 18) {\n", + " value += 'alt+';\n", + " }\n", + " if (event.shiftKey && event.which !== 16) {\n", + " value += 'shift+';\n", + " }\n", + "\n", + " value += 'k';\n", + " value += event.which.toString();\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 icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Left button pans, Right button zooms\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n", + "\n", + "mpl.extensions = [\"eps\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\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.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", + " // Pass the mpl event to the overridden (by mpl) onmessage function.\n", + " ws.onmessage(msg['content']['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(\"<div id='\" + id + \"'></div>\");\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", + " '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\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", + " '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\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 = '<i class=\"fa ' + image + ' fa-lg\"></i>';\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 = '<i class=\"fa fa-power-off icon-remove icon-large\"></i>';\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", + " var manager = IPython.notebook.keyboard_manager;\n", + " if (!manager) {\n", + " manager = IPython.keyboard_manager;\n", + " }\n", + "\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": [ - "<Figure size 1440x720 with 1 Axes>" + "<IPython.core.display.Javascript object>" ] }, - "metadata": { - "needs_background": "light" + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "<img src=\"data:image/png;base64,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/vWv1aZNm8h/i8q8DsUL5b59+zR79mx5nqcBAwZEXts1a9ZEzYok9erVS0cffXSJf0SQpKFDhyouLk7btm2TJP3pT39S7dq19c9//lOZmZl666239Mgjj+ipp54q89jRnm/x17hNmzYaPny43nnnHQ0dOlSe5+n2229X27ZtNXr0aL3zzjvq37+/PM/Tq6++WuqYB8v08uXL9cADD0TyW/y1KJrDgAEDNGvWLD3//PNq3ry5UlJSDrmgjxgxQp7n6ZprrlFGRoZefvllHXvssapXr55WrVolSVqzZo169+4tz/NK5H/fvn2SpJtuukm1atXS//3f/2n27NlKS0tT27Zt1aRJE36lAQAsRUEHgBA71IL+29/+tsRH0Dds2KBatWrpxhtvjFzWtm1bdezYUXl5eSWOeemll6pp06aREldUWq6//vpSj5+cnKy77rqr3OdQ1kfcJ0+eXKqMSf/7zfdnnnkmclnLli1Vo0YNrVy5stRxPM9TYmJiiUKTn5+vtm3b6rjjjotcVpGCvm7dOtWoUUN//OMfy31ORe/WHvhR6nbt2uniiy8u9ZjTpk3T0qVL1axZM51zzjn68ccfD+l1OPAd38p+xP2NN96Q53l6++23I5fl5+erWbNmuvzyyyOXnXjiierZs2eFjllceQX9H//4R4nbdujQQZ7n6bXXXotclpeXp0aNGumyyy4rdcyKZLooq1lZWZHLtm/froSEBPXq1avE4y9atEie5x1SQd++fbsSExN1ySWXlLjdN998o/j4eF177bWRy8r6iPuSJUuivi4bN25UYmKihg4dWuo+AADzKOgAEGKHWtAff/zxUrft1KmTWrduLUlavXp15HZ5eXklxjPPPCPP8yIf1S0qLa+//nqpY55//vmqX7++hg8friVLlmj//v2lblNWQf/jH/+o+vXra//+/aXmkJKSoiuvvDJy25YtW6pjx45RXwPP83TppZeWurzotdu4cWOJ16a8gv7vf/9bnudp8eLFUR+rSKdOnZSSklLq8quvvlpt27aN/F30mDfeeKOSk5N19dVXR949PZTX4XALetExr7nmmshlGRkZ8jxPGRkZkctuuOGGyNcIMjMzS7yLX57yCvqB/7hyzTXXKCYmRnv37i1x+RlnnKGTTz651DEPlmkpekGfOXOmPM/T9OnTS92/ZcuWh1TQi475yiuvlDpmt27d1KRJk8jfZRX0+++/XzExMdq8eXOp/+6/+93vdNppp5W6DwDAPAo6AITY8OHD5XlemR93bdOmjS644ILI30VFYuLEiaVue9VVV6l+/fqSpPfffz/qd2OLj4ULF0r6X2kp+kh5cVu3btWdd96pli1byvM8JScnq0+fPvrhhx8itymroF9wwQXlPv75558fuW3Lli1LvVtZpKgAH+jZZ5+V53latmxZidemvIL+t7/9TZ7n6Ztvvon6WEXKOklc3759SzzXosds2LChatSooQULFhzW63C4BV2ShgwZooSEhMjPj11xxRVq2rRpibOd7969Ww8++KDatGkjz/OUkJCgHj16RD66XZbyCvqB/8jUt29fJSUllTrGga9tRTMtRS/oEyZMkOd5ev/990vd//TTTz+kgl50zPfee6/UMQcMGKCaNWtG/i6roN94443l/nc/9thjS90HAGAeBR0AQuz555+X53n673//W+q6wsJC1a1bt8THsSv6buNXX30lz/P0l7/8RVlZWVHHTz/9JCl66Ynm66+/1lNPPaWkpKQSH/Muq6BfffXVOvLII8t8/K+++ipy26KTxEVj6h30yhT0CRMmqHv37qpdu7bmzJlzyK9DVRT0L7/8Up7n6dlnn1V2dnaJE+5Fs2nTJo0fP15NmjRRmzZtyj12dRZ0P95BL/q6QfHXXJKmTZtWqXfQi3+6oqyCfu+99yomJkbvv/9+1P/un332Wan7AADMo6ADQIitWbNGMTExUb+PWlQSip/QrajMnHzyyVG/rztgwIDIZccff3yZ70oXV9GCXqRnz55q1KhR5O/LLrtMjRs3LnW7op/E+uCDDw56zIMV9LK+g168vFWkoK9fv141atRQnz59yp1PZQv6tGnTtH//fl155ZWKj49Xenp65DaVeR0OLOg//fSTPM+r9PeVTz/9dJ122ml6+umnoxbSaO666y55nqecnJwyb1OdBb0imY6W1ezs7Ap/B73oe+EHFu8+ffpE/Q76H/7whxK327hxo+Lj40v8o9ngwYPleV6prwkUfYrlwF9NAADYjYIOACF3xx13KCYmRgMHDlR6errmzJmjv/3tb0pOTtYpp5yi3NzcyG0PPOP1W2+9pUmTJum4445TnTp1Spzhe968eYqPj9dFF12ktLQ0LViwQDNmzNCIESPUu3fvyO3KKug7duxQx44d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\" width=\"1000\">" + ], + "text/plain": [ + "<IPython.core.display.HTML object>" + ] }, + "metadata": {}, "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "Text(58, 1.01, 'Korrelation = -0.809')" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ - "#Colors:\n", - "cmap = cm.get_cmap('Spectral')\n", - "\n", - "fig, ax = plt.subplots(figsize=(20,10))\n", - "plot1 = df_total.plot.scatter(x=\"Impfquote\",y=\"Übersterblichkeit\",label=\"Bundesland\",title=\"Übersterblichkeit vs Impfquote\", grid=True,\n", + "fig, ax = plt.subplots(figsize=(10,7))\n", + "plot1 = df_total.plot.scatter(x=\"Impfquote\",y=\"Übersterblichkeit\",title=\"Übersterblichkeit vs Impfquote\", grid=True,\n", " ax=ax, style='o', legend=False, s=150, fontsize=18,\n", " color=range(len(df_total)), colormap='Spectral')\n", "#ax.legend(plot1,[\"1\",\"2\"],fancybox=True)\n", "#df_total.head()\n", + "laender_short={\"Schleswig-Holstein\":\"SH\",\n", + "\"Hamburg\":\"HH\",\n", + "\"Niedersachsen\":\"NI\",\n", + "\"Bremen\":\"HB\",\n", + "\"Nordrhein-Westfalen\":\"NRW\",\n", + "\"Hessen\":\"HE\",\n", + "\"Rheinland-Pfalz\":\"RP\",\n", + "\"Baden-Württemberg\":\"BW\",\n", + "\"Bayern\":\"BY\",\n", + "\"Saarland\":\"SA\",\n", + "\"Berlin\":\"BE\",\n", + "\"Brandenburg\":\"BB\",\n", + "\"Mecklenburg-Vorpommern\":\"MV\",\n", + "\"Sachsen\":\"SA\",\n", + "\"Sachsen-Anhalt\":\"S-AN\",\n", + "\"Thüringen\":\"TH\",\n", + "}\n", + "c=0\n", + "correlation = df_total.corr(method=\"pearson\")\n", + "\n", "for k, v in df_total.iterrows():\n", - " ax.annotate(k, v,\n", + " c += 1\n", + " ax.annotate(laender_short[k], v,\n", " xytext=(9,-3), textcoords='offset points',\n", - " family='sans-serif', fontsize=11, color='black')" + " family='sans-serif', fontsize=11)\n", + "ax.set(title='Übersterblichkeit vs Impfquote',\n", + " ylabel='Todesfälle KW1-42 (2021)\\nverglichen mit Durchschnitt 2016-2019',\n", + " xlabel=\"Impfquote (2 Impfungen, Stand 30.11.2021)\\nDaten von DESTATIS, sowie RKI\\n(c)CC-BY\")\n", + "ax.text(58,1.01,\"Korrelation = %0.3f\"%correlation[\"Übersterblichkeit\"][\"Impfquote\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 171, + "id": "426b3884", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "-0.808719600395588" + ] + }, + "execution_count": 171, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\n" ] } ], diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..2f244ac814036ecd9ba9f69782e89ce6b1dca9eb --- /dev/null +++ b/LICENSE @@ -0,0 +1,395 @@ +Attribution 4.0 International + +======================================================================= + +Creative Commons Corporation ("Creative Commons") is not a law firm and +does not provide legal services or legal advice. Distribution of +Creative Commons public licenses does not create a lawyer-client or +other relationship. Creative Commons makes its licenses and related +information available on an "as-is" basis. Creative Commons gives no +warranties regarding its licenses, any material licensed under their +terms and conditions, or any related information. Creative Commons +disclaims all liability for damages resulting from their use to the +fullest extent possible. + +Using Creative Commons Public Licenses + +Creative Commons public licenses provide a standard set of terms and +conditions that creators and other rights holders may use to share +original works of authorship and other material subject to copyright +and certain other rights specified in the public license below. The +following considerations are for informational purposes only, are not +exhaustive, and do not form part of our licenses. + + Considerations for licensors: Our public licenses are + intended for use by those authorized to give the public + permission to use material in ways otherwise restricted by + copyright and certain other rights. Our licenses are + irrevocable. Licensors should read and understand the terms + and conditions of the license they choose before applying it. + Licensors should also secure all rights necessary before + applying our licenses so that the public can reuse the + material as expected. Licensors should clearly mark any + material not subject to the license. This includes other CC- + licensed material, or material used under an exception or + limitation to copyright. More considerations for licensors: + wiki.creativecommons.org/Considerations_for_licensors + + Considerations for the public: By using one of our public + licenses, a licensor grants the public permission to use the + licensed material under specified terms and conditions. If + the licensor's permission is not necessary for any reason--for + example, because of any applicable exception or limitation to + copyright--then that use is not regulated by the license. Our + licenses grant only permissions under copyright and certain + other rights that a licensor has authority to grant. Use of + the licensed material may still be restricted for other + reasons, including because others have copyright or other + rights in the material. A licensor may make special requests, + such as asking that all changes be marked or described. + Although not required by our licenses, you are encouraged to + respect those requests where reasonable. More_considerations + for the public: + wiki.creativecommons.org/Considerations_for_licensees + +======================================================================= + +Creative Commons Attribution 4.0 International Public License + +By exercising the Licensed Rights (defined below), You accept and agree +to be bound by the terms and conditions of this Creative Commons +Attribution 4.0 International Public License ("Public License"). To the +extent this Public License may be interpreted as a contract, You are +granted the Licensed Rights in consideration of Your acceptance of +these terms and conditions, and the Licensor grants You such rights in +consideration of benefits the Licensor receives from making the +Licensed Material available under these terms and conditions. + + +Section 1 -- Definitions. + + a. Adapted Material means material subject to Copyright and Similar + Rights that is derived from or based upon the Licensed Material + and in which the Licensed Material is translated, altered, + arranged, transformed, or otherwise modified in a manner requiring + permission under the Copyright and Similar Rights held by the + Licensor. For purposes of this Public License, where the Licensed + Material is a musical work, performance, or sound recording, + Adapted Material is always produced where the Licensed Material is + synched in timed relation with a moving image. + + b. Adapter's License means the license You apply to Your Copyright + and Similar Rights in Your contributions to Adapted Material in + accordance with the terms and conditions of this Public License. + + c. Copyright and Similar Rights means copyright and/or similar rights + closely related to copyright including, without limitation, + performance, broadcast, sound recording, and Sui Generis Database + Rights, without regard to how the rights are labeled or + categorized. For purposes of this Public License, the rights + specified in Section 2(b)(1)-(2) are not Copyright and Similar + Rights. + + d. Effective Technological Measures means those measures that, in the + absence of proper authority, may not be circumvented under laws + fulfilling obligations under Article 11 of the WIPO Copyright + Treaty adopted on December 20, 1996, and/or similar international + agreements. + + e. Exceptions and Limitations means fair use, fair dealing, and/or + any other exception or limitation to Copyright and Similar Rights + that applies to Your use of the Licensed Material. + + f. Licensed Material means the artistic or literary work, database, + or other material to which the Licensor applied this Public + License. + + g. Licensed Rights means the rights granted to You subject to the + terms and conditions of this Public License, which are limited to + all Copyright and Similar Rights that apply to Your use of the + Licensed Material and that the Licensor has authority to license. + + h. Licensor means the individual(s) or entity(ies) granting rights + under this Public License. + + i. Share means to provide material to the public by any means or + process that requires permission under the Licensed Rights, such + as reproduction, public display, public performance, distribution, + dissemination, communication, or importation, and to make material + available to the public including in ways that members of the + public may access the material from a place and at a time + individually chosen by them. + + j. Sui Generis Database Rights means rights other than copyright + resulting from Directive 96/9/EC of the European Parliament and of + the Council of 11 March 1996 on the legal protection of databases, + as amended and/or succeeded, as well as other essentially + equivalent rights anywhere in the world. + + k. You means the individual or entity exercising the Licensed Rights + under this Public License. Your has a corresponding meaning. + + +Section 2 -- Scope. + + a. License grant. + + 1. Subject to the terms and conditions of this Public License, + the Licensor hereby grants You a worldwide, royalty-free, + non-sublicensable, non-exclusive, irrevocable license to + exercise the Licensed Rights in the Licensed Material to: + + a. reproduce and Share the Licensed Material, in whole or + in part; and + + b. produce, reproduce, and Share Adapted Material. + + 2. Exceptions and Limitations. For the avoidance of doubt, where + Exceptions and Limitations apply to Your use, this Public + License does not apply, and You do not need to comply with + its terms and conditions. + + 3. Term. The term of this Public License is specified in Section + 6(a). + + 4. Media and formats; technical modifications allowed. The + Licensor authorizes You to exercise the Licensed Rights in + all media and formats whether now known or hereafter created, + and to make technical modifications necessary to do so. The + Licensor waives and/or agrees not to assert any right or + authority to forbid You from making technical modifications + necessary to exercise the Licensed Rights, including + technical modifications necessary to circumvent Effective + Technological Measures. For purposes of this Public License, + simply making modifications authorized by this Section 2(a) + (4) never produces Adapted Material. + + 5. Downstream recipients. + + a. Offer from the Licensor -- Licensed Material. Every + recipient of the Licensed Material automatically + receives an offer from the Licensor to exercise the + Licensed Rights under the terms and conditions of this + Public License. + + b. No downstream restrictions. You may not offer or impose + any additional or different terms or conditions on, or + apply any Effective Technological Measures to, the + Licensed Material if doing so restricts exercise of the + Licensed Rights by any recipient of the Licensed + Material. + + 6. No endorsement. Nothing in this Public License constitutes or + may be construed as permission to assert or imply that You + are, or that Your use of the Licensed Material is, connected + with, or sponsored, endorsed, or granted official status by, + the Licensor or others designated to receive attribution as + provided in Section 3(a)(1)(A)(i). + + b. Other rights. + + 1. Moral rights, such as the right of integrity, are not + licensed under this Public License, nor are publicity, + privacy, and/or other similar personality rights; however, to + the extent possible, the Licensor waives and/or agrees not to + assert any such rights held by the Licensor to the limited + extent necessary to allow You to exercise the Licensed + Rights, but not otherwise. + + 2. Patent and trademark rights are not licensed under this + Public License. + + 3. To the extent possible, the Licensor waives any right to + collect royalties from You for the exercise of the Licensed + Rights, whether directly or through a collecting society + under any voluntary or waivable statutory or compulsory + licensing scheme. In all other cases the Licensor expressly + reserves any right to collect such royalties. + + +Section 3 -- License Conditions. + +Your exercise of the Licensed Rights is expressly made subject to the +following conditions. + + a. Attribution. + + 1. If You Share the Licensed Material (including in modified + form), You must: + + a. retain the following if it is supplied by the Licensor + with the Licensed Material: + + i. identification of the creator(s) of the Licensed + Material and any others designated to receive + attribution, in any reasonable manner requested by + the Licensor (including by pseudonym if + designated); + + ii. a copyright notice; + + iii. a notice that refers to this Public License; + + iv. a notice that refers to the disclaimer of + warranties; + + v. a URI or hyperlink to the Licensed Material to the + extent reasonably practicable; + + b. indicate if You modified the Licensed Material and + retain an indication of any previous modifications; and + + c. indicate the Licensed Material is licensed under this + Public License, and include the text of, or the URI or + hyperlink to, this Public License. + + 2. You may satisfy the conditions in Section 3(a)(1) in any + reasonable manner based on the medium, means, and context in + which You Share the Licensed Material. For example, it may be + reasonable to satisfy the conditions by providing a URI or + hyperlink to a resource that includes the required + information. + + 3. If requested by the Licensor, You must remove any of the + information required by Section 3(a)(1)(A) to the extent + reasonably practicable. + + 4. If You Share Adapted Material You produce, the Adapter's + License You apply must not prevent recipients of the Adapted + Material from complying with this Public License. + + +Section 4 -- Sui Generis Database Rights. + +Where the Licensed Rights include Sui Generis Database Rights that +apply to Your use of the Licensed Material: + + a. for the avoidance of doubt, Section 2(a)(1) grants You the right + to extract, reuse, reproduce, and Share all or a substantial + portion of the contents of the database; + + b. if You include all or a substantial portion of the database + contents in a database in which You have Sui Generis Database + Rights, then the database in which You have Sui Generis Database + Rights (but not its individual contents) is Adapted Material; and + + c. You must comply with the conditions in Section 3(a) if You Share + all or a substantial portion of the contents of the database. + +For the avoidance of doubt, this Section 4 supplements and does not +replace Your obligations under this Public License where the Licensed +Rights include other Copyright and Similar Rights. + + +Section 5 -- Disclaimer of Warranties and Limitation of Liability. + + a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE + EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS + AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF + ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, + IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, + WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, + ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT + KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT + ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. + + b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE + TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, + NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, + INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, + COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR + USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN + ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR + DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR + IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. + + c. The disclaimer of warranties and limitation of liability provided + above shall be interpreted in a manner that, to the extent + possible, most closely approximates an absolute disclaimer and + waiver of all liability. + + +Section 6 -- Term and Termination. + + a. This Public License applies for the term of the Copyright and + Similar Rights licensed here. However, if You fail to comply with + this Public License, then Your rights under this Public License + terminate automatically. + + b. Where Your right to use the Licensed Material has terminated under + Section 6(a), it reinstates: + + 1. automatically as of the date the violation is cured, provided + it is cured within 30 days of Your discovery of the + violation; or + + 2. upon express reinstatement by the Licensor. + + For the avoidance of doubt, this Section 6(b) does not affect any + right the Licensor may have to seek remedies for Your violations + of this Public License. + + c. For the avoidance of doubt, the Licensor may also offer the + Licensed Material under separate terms or conditions or stop + distributing the Licensed Material at any time; however, doing so + will not terminate this Public License. + + d. Sections 1, 5, 6, 7, and 8 survive termination of this Public + License. + + +Section 7 -- Other Terms and Conditions. + + a. The Licensor shall not be bound by any additional or different + terms or conditions communicated by You unless expressly agreed. + + b. Any arrangements, understandings, or agreements regarding the + Licensed Material not stated herein are separate from and + independent of the terms and conditions of this Public License. + + +Section 8 -- Interpretation. + + a. For the avoidance of doubt, this Public License does not, and + shall not be interpreted to, reduce, limit, restrict, or impose + conditions on any use of the Licensed Material that could lawfully + be made without permission under this Public License. + + b. To the extent possible, if any provision of this Public License is + deemed unenforceable, it shall be automatically reformed to the + minimum extent necessary to make it enforceable. If the provision + cannot be reformed, it shall be severed from this Public License + without affecting the enforceability of the remaining terms and + conditions. + + c. No term or condition of this Public License will be waived and no + failure to comply consented to unless expressly agreed to by the + Licensor. + + d. Nothing in this Public License constitutes or may be interpreted + as a limitation upon, or waiver of, any privileges and immunities + that apply to the Licensor or You, including from the legal + processes of any jurisdiction or authority. + + +======================================================================= + +Creative Commons is not a party to its public +licenses. Notwithstanding, Creative Commons may elect to apply one of +its public licenses to material it publishes and in those instances +will be considered the “Licensor.” The text of the Creative Commons +public licenses is dedicated to the public domain under the CC0 Public +Domain Dedication. Except for the limited purpose of indicating that +material is shared under a Creative Commons public license or as +otherwise permitted by the Creative Commons policies published at +creativecommons.org/policies, Creative Commons does not authorize the +use of the trademark "Creative Commons" or any other trademark or logo +of Creative Commons without its prior written consent including, +without limitation, in connection with any unauthorized modifications +to any of its public licenses or any other arrangements, +understandings, or agreements concerning use of licensed material. For +the avoidance of doubt, this paragraph does not form part of the +public licenses. + +Creative Commons may be contacted at creativecommons.org. diff --git a/README b/README index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..68cd2e6ed7196ca4595d8008011181d9563168ca 100644 --- a/README +++ b/README @@ -0,0 +1,18 @@ +Datenquellen +============ + +Daten zur �bersterblichkeit +Datasource https://www.destatis.de/DE/Themen/Gesellschaft-Umwelt/Bevoelkerung/Sterbefaelle-Lebenserwartung/Tabellen/sonderauswertung-sterbefaelle.html?nn=209016 +Stand 22.11.21 + +Daten zu den Impfungen von +https://github.com/robert-koch-institut/COVID-19-Impfungen_in_Deutschland +erh�ltlich unter der Creative Commons Namensnennung 4.0 International Lizenz +Stand 30.11.21 + +Lizenz +====== +Die Scripte, sowie die Ergebnisse werden unter der +Creative Commons Attribution 4.0 International (CC BY 4.0) +https://creativecommons.org/licenses/by/4.0/ +ver�ffentlicht \ No newline at end of file