{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Basic plotting with Pandas and Matplotlib\n", "\n", "```{attention}\n", "Finnish university students are encouraged to use the CSC Notebooks platform.
\n", "\"CSC\n", "\n", "Others can follow the lesson and fill in their student notebooks using Binder.
\n", "\"Binder\n", "```\n", "\n", "As we're now familiar with some of the features of [Pandas](https://pandas.pydata.org/), we will wade into visualizing our data in Python using the built-in plotting options available directly in Pandas.\n", "Much like the case of Pandas being built upon [NumPy](https://numpy.org/), plotting in Pandas takes advantage of plotting features from the [Matplotlib](https://matplotlib.org/) plotting library.\n", "Plotting in Pandas provides a basic framework for visualizing our data, but as you'll see we will sometimes need to also use features from Matplotlib to enhance our plots. In particular, we will use features from the the `pyplot` module in Matplotlib, which provides [MATLAB](https://www.mathworks.com/products/matlab.html)-like plotting.\n", "\n", "Toward the end of the lesson we will also briefly explore creating interactive plots using the [Pandas-Bokeh](https://github.com/PatrikHlobil/Pandas-Bokeh) plotting backend, which allows us to produce plots similar to those available in the [Bokeh plotting library](https://docs.bokeh.org/en/latest/index.html) using plotting syntax similar to that used normally in Pandas. This is an optional part of the lesson, but will allow you to see an example for further exploration of interactive plotting using Pandas-Bokeh." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Input data\n", "\n", "In the lesson this week we are using some of the same weather observation data from Finland [downloaded from NOAA](https://www7.ncdc.noaa.gov/CDO/cdopoemain.cmd?datasetabbv=DS3505&countryabbv=&georegionabbv=&resolution=40) that we used in Lesson 6. In this case we'll focus on weather observation station data from the Helsinki-Vantaa airport.\n", "\n", "## Downloading the data\n", "\n", "```{attention}\n", "It is recommended to use the Geo-Python Lite blueprint for this lesson.\n", "```\n", "\n", "Just like last week, the first step for today's lesson is to get the data. Unlike last week, we'll all download and use the same data.\n", "\n", "You can download the data by opening a new terminal window in Jupyter Lab by going to **File** -> **New** -> **Terminal** in the Jupyter Lab menu bar. Once the terminal is open, you will need to navigate to the directory for Lesson 7 by typing\n", "\n", "```bash\n", "cd notebooks/L7/\n", "```\n", "\n", "or the equivalent command to navigate to the location of the Lesson 7 files on your computer (for those running Jupyter on their own computers).\n", "\n", "\n", "You can now confirm you're in the correct directory by typing\n", "\n", "```bash\n", "ls\n", "```\n", "\n", "You should see something like the following output:\n", "\n", "```bash\n", "advanced-plotting.ipynb matplotlib.ipynb\n", "img metadata\n", "```\n", "\n", "If so, you're in the correct directory and you can download the data files by typing\n", "\n", "```bash\n", "wget https://davewhipp.github.io/data/Finland-weather-data-L7.tar.gz\n", "```\n", "\n", "After the download completes, you can extract the data files by typing\n", "\n", "```bash\n", "tar zxvf Finland-weather-data-L7.tar.gz\n", "```\n", "\n", "At this stage you should have a new directory called `data` that contains the data for this week's lesson. You can confirm this by typing\n", "\n", "```bash\n", "ls data\n", "```\n", "\n", "You should see something like the following:\n", "\n", "```bash\n", "029740.txt 6367598020644inv.txt\n", "3505doc.txt 6367598020644stn.txt\n", "```\n", "\n", "Now you should be all set to proceed with the lesson!\n", "\n", "### Binder users\n", "\n", "It is not recommended to complete this lesson using Binder.\n", "\n", "## About the data\n", "\n", "As part of the download there are a number of files that describe the weather data. These *metadata* files include:\n", "\n", "- A list of stations: [data/6367598020644stn.txt](metadata/6367598020644stn.txt)\n", "- Details about weather observations at each station: [data/6367598020644inv.txt](metadata/6367598020644inv.txt)\n", "- A data description (i.e., column names): [data/3505doc.txt](metadata/3505doc.txt)\n", "\n", "The input data for this week are separated with varying number of spaces (i.e., fixed width). The first lines and columns of the data look like following:\n", "\n", "``` \n", " USAF WBAN YR--MODAHRMN DIR SPD GUS CLG SKC L M H VSB MW MW MW MW AW AW AW AW W TEMP DEWP SLP ALT STP MAX MIN PCP01 PCP06 PCP24 PCPXX SD\n", "029740 99999 195201010000 200 23 *** 15 OVC 7 2 * 5.0 63 ** ** ** ** ** ** ** 6 36 32 989.2 ***** ****** *** *** ***** ***** ***** ***** **\n", "029740 99999 195201010600 220 18 *** 8 OVC 7 2 * 2.2 63 ** ** ** ** ** ** ** 6 37 37 985.9 ***** ****** *** 34 ***** ***** ***** ***** **\n", "029740 99999 195201011200 220 21 *** 5 OVC 7 * * 3.8 59 ** ** ** ** ** ** ** 5 39 36 988.1 ***** ****** *** *** ***** ***** ***** ***** **\n", "029740 99999 195201011800 250 16 *** 722 CLR 0 0 0 12.5 02 ** ** ** ** ** ** ** 5 36 27 991.9 ***** ****** 39 *** ***** ***** ***** ***** **\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Getting started\n", "\n", "Let's start by importing Pandas and reading our data file." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import pandas as pd" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "```{admonition} Datetime in Python\n", "For the lesson this week we will be using a datetime index for our weather observations.\n", "We skipped over the datetime data type in Lesson 6, but you can find [a brief introduction to datetime in Lesson 6](https://geo-python-site.readthedocs.io/en/latest/notebooks/L6/advanced-data-processing-with-pandas.html#datetime-optional-for-lesson-6).\n", "```\n", "\n", "Just as we did last week, we'll read our data file by passing a few parameters to the Pandas `read_csv()` function. In this case, however, we'll include a few additional parameters in order to read the data with a *datetime index*. Let's read the data first, then see what happened." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "fp = r'data/029740.txt'\n", "\n", "data = pd.read_csv(fp, delim_whitespace=True, \n", " na_values=['*', '**', '***', '****', '*****', '******'],\n", " usecols=['YR--MODAHRMN', 'TEMP', 'MAX', 'MIN'],\n", " parse_dates=['YR--MODAHRMN'], index_col='YR--MODAHRMN')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "So what's different here? Well, we have added two new parameters: `parse_dates` and `index_col`.\n", "\n", "- `parse_dates` takes a Python list of column name(s) containing date data that Pandas will parse and convert to the *datetime* data type. For many common date formats this parameter will automatically recognize and convert the date data.\n", "- `index_col` is used to state a column that should be used to index the data in the DataFrame. In this case, we end up with our date data as the DataFrame index. This is a very useful feature in Pandas as we'll see below.\n", "\n", "Having read in the data, let's have a quick look at what we have using `data.head()`." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
TEMPMAXMIN
YR--MODAHRMN
1952-01-01 00:00:0036.0NaNNaN
1952-01-01 06:00:0037.0NaN34.0
1952-01-01 12:00:0039.0NaNNaN
1952-01-01 18:00:0036.039.0NaN
1952-01-02 00:00:0036.0NaNNaN
\n", "
" ], "text/plain": [ " TEMP MAX MIN\n", "YR--MODAHRMN \n", "1952-01-01 00:00:00 36.0 NaN NaN\n", "1952-01-01 06:00:00 37.0 NaN 34.0\n", "1952-01-01 12:00:00 39.0 NaN NaN\n", "1952-01-01 18:00:00 36.0 39.0 NaN\n", "1952-01-02 00:00:00 36.0 NaN NaN" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As mentioned above, you can now see that the index column for our DataFrame (the first column) contains date values related to each row in the DataFrame." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Basic x-y plot\n", "\n", "Now we're ready for our first plot. We can run one command first to configure the plots to display nicely in our Jupyter notebooks." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "OK, so let’s get to plotting! We can start by using the basic line plot in Pandas to look at our temperature data." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "ax = data.plot()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If all goes well, you should see the plot above.\n", "\n", "OK, so what happened here?\n", "\n", "1. We first created the plot object using the `plot()` method of the `data` DataFrame. Without any parameters given, this makes the plot of all columns in the DataFrame as lines of different color on the y-axis with the index, time in this case, on the x-axis.\n", "2. In case we want to be able to modify the plot or add anything, we assign the plot object to the variable `ax`. We can check its type below.\n", "\n", "In fact, let's check the type of the `ax` variable..." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "matplotlib.axes._subplots.AxesSubplot" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(ax)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "OK, so it looks like we have some kind of plot data type that is part of Matplotlib. Clearly, Pandas is using Matplotlib for generating our plots.\n", "\n", "### Selecting our plotted data\n", "\n", "Now, let's make a few small changes to our plot and plot the data again. First, let's only plot the observed temperatures in the `data['TEMP']` column, and let's restrict ourselves to observations from the afternoon of October 1, 2019 (the last day in our dataset). We can do this by selecting the desired data column and date range first, then plotting our selection." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "oct1_temps = data['TEMP'].loc[data.index >= '201910011200']\n", "ax = oct1_temps.plot()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "So, what did we change?\n", "\n", "1. Well, we selected only the `'TEMP'` column now by using `data['TEMP']` instead of `data`.\n", "2. We've added a restriction to the date range using `loc[]` to select only rows where the index value `data.index` is greater than `'201910011200'`. In that case, the number in the string is in the format `'YYYYMMDDHHMM'`, where `YYYY` is the year, `MM` is the month, `DD` is the day, `HH` is the hour, and `MM` is the minute. Now we have all observations from noon onward on October 1, 2019.\n", "3. By saving this selection to the DataFrame `oct1_temps` we're able to now use `oct1_temps.plot()` to plot only our selection. This is cool, but we can do even better..." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Basic plot formatting\n", "\n", "We can make our plot look a bit nicer and provide more information by using a few additional plotting options to Pandas/Matplotlib." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0, 0.5, 'Temperature [°F]')" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "ax = oct1_temps.plot(style='ro--', title='Helsinki-Vantaa temperatures')\n", "ax.set_xlabel('Date')\n", "ax.set_ylabel('Temperature [°F]')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we see our temperature data as a red dashed line with circles showing the data points.\n", "This comes from the additional `style='ro--'` used with `oct1_temps.plot()`.\n", "In this case, `r` tells the `oct1_temps.plot()` function to use red color for the lines and symbols, `o` tells it to show circles at the points, and `--` says to use a dashed line.\n", "You can use `help(oct1_temps.plot)` to find out more about formatting plots or have a look at the [documentation on the Pandas website](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.plot.line.html#pandas.DataFrame.plot.line).\n", "We have also added a title using the `title` parameter, but note that axis labels are assigned using the `set_xlabel()` and `set_ylabel()` methods.\n", "As you can see in this case, by assigning the plot axes to the variable `ax`" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Help on PlotAccessor in module pandas.plotting._core object:\n", "\n", "class PlotAccessor(pandas.core.base.PandasObject)\n", " | PlotAccessor(data)\n", " | \n", " | Make plots of Series or DataFrame using the backend specified by the\n", " | option ``plotting.backend``. By default, matplotlib is used.\n", " | \n", " | Parameters\n", " | ----------\n", " | data : Series or DataFrame\n", " | The object for which the method is called\n", " | x : label or position, default None\n", " | Only used if data is a DataFrame.\n", " | y : label, position or list of label, positions, default None\n", " | Allows plotting of one column versus another. Only used if data is a\n", " | DataFrame.\n", " | kind : str\n", " | - 'line' : line plot (default)\n", " | - 'bar' : vertical bar plot\n", " | - 'barh' : horizontal bar plot\n", " | - 'hist' : histogram\n", " | - 'box' : boxplot\n", " | - 'kde' : Kernel Density Estimation plot\n", " | - 'density' : same as 'kde'\n", " | - 'area' : area plot\n", " | - 'pie' : pie plot\n", " | - 'scatter' : scatter plot\n", " | - 'hexbin' : hexbin plot\n", " | figsize : a tuple (width, height) in inches\n", " | use_index : bool, default True\n", " | Use index as ticks for x axis\n", " | title : string or list\n", " | Title to use for the plot. If a string is passed, print the string\n", " | at the top of the figure. If a list is passed and `subplots` is\n", " | True, print each item in the list above the corresponding subplot.\n", " | grid : bool, default None (matlab style default)\n", " | Axis grid lines\n", " | legend : False/True/'reverse'\n", " | Place legend on axis subplots\n", " | style : list or dict\n", " | matplotlib line style per column\n", " | logx : bool or 'sym', default False\n", " | Use log scaling or symlog scaling on x axis\n", " | .. versionchanged:: 0.25.0\n", " | \n", " | logy : bool or 'sym' default False\n", " | Use log scaling or symlog scaling on y axis\n", " | .. versionchanged:: 0.25.0\n", " | \n", " | loglog : bool or 'sym', default False\n", " | Use log scaling or symlog scaling on both x and y axes\n", " | .. versionchanged:: 0.25.0\n", " | \n", " | xticks : sequence\n", " | Values to use for the xticks\n", " | yticks : sequence\n", " | Values to use for the yticks\n", " | xlim : 2-tuple/list\n", " | ylim : 2-tuple/list\n", " | rot : int, default None\n", " | Rotation for ticks (xticks for vertical, yticks for horizontal\n", " | plots)\n", " | fontsize : int, default None\n", " | Font size for xticks and yticks\n", " | colormap : str or matplotlib colormap object, default None\n", " | Colormap to select colors from. If string, load colormap with that\n", " | name from matplotlib.\n", " | colorbar : bool, optional\n", " | If True, plot colorbar (only relevant for 'scatter' and 'hexbin'\n", " | plots)\n", " | position : float\n", " | Specify relative alignments for bar plot layout.\n", " | From 0 (left/bottom-end) to 1 (right/top-end). Default is 0.5\n", " | (center)\n", " | table : bool, Series or DataFrame, default False\n", " | If True, draw a table using the data in the DataFrame and the data\n", " | will be transposed to meet matplotlib's default layout.\n", " | If a Series or DataFrame is passed, use passed data to draw a\n", " | table.\n", " | yerr : DataFrame, Series, array-like, dict and str\n", " | See :ref:`Plotting with Error Bars ` for\n", " | detail.\n", " | xerr : DataFrame, Series, array-like, dict and str\n", " | Equivalent to yerr.\n", " | mark_right : bool, default True\n", " | When using a secondary_y axis, automatically mark the column\n", " | labels with \"(right)\" in the legend\n", " | `**kwds` : keywords\n", " | Options to pass to matplotlib plotting method\n", " | \n", " | Returns\n", " | -------\n", " | :class:`matplotlib.axes.Axes` or numpy.ndarray of them\n", " | If the backend is not the default matplotlib one, the return value\n", " | will be the object returned by the backend.\n", " | \n", " | Notes\n", " | -----\n", " | - See matplotlib documentation online for more on this subject\n", " | - If `kind` = 'bar' or 'barh', you can specify relative alignments\n", " | for bar plot layout by `position` keyword.\n", " | From 0 (left/bottom-end) to 1 (right/top-end). Default is 0.5\n", " | (center)\n", " | \n", " | Method resolution order:\n", " | PlotAccessor\n", " | pandas.core.base.PandasObject\n", " | pandas.core.accessor.DirNamesMixin\n", " | builtins.object\n", " | \n", " | Methods defined here:\n", " | \n", " | __call__(self, *args, **kwargs)\n", " | Call self as a function.\n", " | \n", " | __init__(self, data)\n", " | Initialize self. See help(type(self)) for accurate signature.\n", " | \n", " | area(self, x=None, y=None, **kwargs)\n", " | Draw a stacked area plot.\n", " | \n", " | An area plot displays quantitative data visually.\n", " | This function wraps the matplotlib area function.\n", " | \n", " | Parameters\n", " | ----------\n", " | x : label or position, optional\n", " | Coordinates for the X axis. By default uses the index.\n", " | y : label or position, optional\n", " | Column to plot. By default uses all columns.\n", " | stacked : bool, default True\n", " | Area plots are stacked by default. Set to False to create a\n", " | unstacked plot.\n", " | **kwds : optional\n", " | Additional keyword arguments are documented in\n", " | :meth:`DataFrame.plot`.\n", " | \n", " | Returns\n", " | -------\n", " | matplotlib.axes.Axes or numpy.ndarray\n", " | Area plot, or array of area plots if subplots is True.\n", " | \n", " | See Also\n", " | --------\n", " | DataFrame.plot : Make plots of DataFrame using matplotlib / pylab.\n", " | \n", " | Examples\n", " | --------\n", " | Draw an area plot based on basic business metrics:\n", " | \n", " | .. plot::\n", " | :context: close-figs\n", " | \n", " | >>> df = pd.DataFrame({\n", " | ... 'sales': [3, 2, 3, 9, 10, 6],\n", " | ... 'signups': [5, 5, 6, 12, 14, 13],\n", " | ... 'visits': [20, 42, 28, 62, 81, 50],\n", " | ... }, index=pd.date_range(start='2018/01/01', end='2018/07/01',\n", " | ... freq='M'))\n", " | >>> ax = df.plot.area()\n", " | \n", " | Area plots are stacked by default. To produce an unstacked plot,\n", " | pass ``stacked=False``:\n", " | \n", " | .. plot::\n", " | :context: close-figs\n", " | \n", " | >>> ax = df.plot.area(stacked=False)\n", " | \n", " | Draw an area plot for a single column:\n", " | \n", " | .. plot::\n", " | :context: close-figs\n", " | \n", " | >>> ax = df.plot.area(y='sales')\n", " | \n", " | Draw with a different `x`:\n", " | \n", " | .. plot::\n", " | :context: close-figs\n", " | \n", " | >>> df = pd.DataFrame({\n", " | ... 'sales': [3, 2, 3],\n", " | ... 'visits': [20, 42, 28],\n", " | ... 'day': [1, 2, 3],\n", " | ... })\n", " | >>> ax = df.plot.area(x='day')\n", " | \n", " | bar(self, x=None, y=None, **kwargs)\n", " | Vertical bar plot.\n", " | \n", " | A bar plot is a plot that presents categorical data with\n", " | rectangular bars with lengths proportional to the values that they\n", " | represent. A bar plot shows comparisons among discrete categories. One\n", " | axis of the plot shows the specific categories being compared, and the\n", " | other axis represents a measured value.\n", " | \n", " | Parameters\n", " | ----------\n", " | x : label or position, optional\n", " | Allows plotting of one column versus another. If not specified,\n", " | the index of the DataFrame is used.\n", " | y : label or position, optional\n", " | Allows plotting of one column versus another. If not specified,\n", " | all numerical columns are used.\n", " | **kwds\n", " | Additional keyword arguments are documented in\n", " | :meth:`DataFrame.plot`.\n", " | \n", " | Returns\n", " | -------\n", " | matplotlib.axes.Axes or np.ndarray of them\n", " | An ndarray is returned with one :class:`matplotlib.axes.Axes`\n", " | per column when ``subplots=True``.\n", " | \n", " | See Also\n", " | --------\n", " | DataFrame.plot.barh : Horizontal bar plot.\n", " | DataFrame.plot : Make plots of a DataFrame.\n", " | matplotlib.pyplot.bar : Make a bar plot with matplotlib.\n", " | \n", " | Examples\n", " | --------\n", " | Basic plot.\n", " | \n", " | .. plot::\n", " | :context: close-figs\n", " | \n", " | >>> df = pd.DataFrame({'lab':['A', 'B', 'C'], 'val':[10, 30, 20]})\n", " | >>> ax = df.plot.bar(x='lab', y='val', rot=0)\n", " | \n", " | Plot a whole dataframe to a bar plot. Each column is assigned a\n", " | distinct color, and each row is nested in a group along the\n", " | horizontal axis.\n", " | \n", " | .. plot::\n", " | :context: close-figs\n", " | \n", " | >>> speed = [0.1, 17.5, 40, 48, 52, 69, 88]\n", " | >>> lifespan = [2, 8, 70, 1.5, 25, 12, 28]\n", " | >>> index = ['snail', 'pig', 'elephant',\n", " | ... 'rabbit', 'giraffe', 'coyote', 'horse']\n", " | >>> df = pd.DataFrame({'speed': speed,\n", " | ... 'lifespan': lifespan}, index=index)\n", " | >>> ax = df.plot.bar(rot=0)\n", " | \n", " | Instead of nesting, the figure can be split by column with\n", " | ``subplots=True``. In this case, a :class:`numpy.ndarray` of\n", " | :class:`matplotlib.axes.Axes` are returned.\n", " | \n", " | .. plot::\n", " | :context: close-figs\n", " | \n", " | >>> axes = df.plot.bar(rot=0, subplots=True)\n", " | >>> axes[1].legend(loc=2) # doctest: +SKIP\n", " | \n", " | Plot a single column.\n", " | \n", " | .. plot::\n", " | :context: close-figs\n", " | \n", " | >>> ax = df.plot.bar(y='speed', rot=0)\n", " | \n", " | Plot only selected categories for the DataFrame.\n", " | \n", " | .. plot::\n", " | :context: close-figs\n", " | \n", " | >>> ax = df.plot.bar(x='lifespan', rot=0)\n", " | \n", " | barh(self, x=None, y=None, **kwargs)\n", " | Make a horizontal bar plot.\n", " | \n", " | A horizontal bar plot is a plot that presents quantitative data with\n", " | rectangular bars with lengths proportional to the values that they\n", " | represent. A bar plot shows comparisons among discrete categories. One\n", " | axis of the plot shows the specific categories being compared, and the\n", " | other axis represents a measured value.\n", " | \n", " | Parameters\n", " | ----------\n", " | x : label or position, default DataFrame.index\n", " | Column to be used for categories.\n", " | y : label or position, default All numeric columns in dataframe\n", " | Columns to be plotted from the DataFrame.\n", " | **kwds\n", " | Keyword arguments to pass on to :meth:`DataFrame.plot`.\n", " | \n", " | Returns\n", " | -------\n", " | :class:`matplotlib.axes.Axes` or numpy.ndarray of them\n", " | \n", " | See Also\n", " | --------\n", " | DataFrame.plot.bar: Vertical bar plot.\n", " | DataFrame.plot : Make plots of DataFrame using matplotlib.\n", " | matplotlib.axes.Axes.bar : Plot a vertical bar plot using matplotlib.\n", " | \n", " | Examples\n", " | --------\n", " | Basic example\n", " | \n", " | .. plot::\n", " | :context: close-figs\n", " | \n", " | >>> df = pd.DataFrame({'lab':['A', 'B', 'C'], 'val':[10, 30, 20]})\n", " | >>> ax = df.plot.barh(x='lab', y='val')\n", " | \n", " | Plot a whole DataFrame to a horizontal bar plot\n", " | \n", " | .. plot::\n", " | :context: close-figs\n", " | \n", " | >>> speed = [0.1, 17.5, 40, 48, 52, 69, 88]\n", " | >>> lifespan = [2, 8, 70, 1.5, 25, 12, 28]\n", " | >>> index = ['snail', 'pig', 'elephant',\n", " | ... 'rabbit', 'giraffe', 'coyote', 'horse']\n", " | >>> df = pd.DataFrame({'speed': speed,\n", " | ... 'lifespan': lifespan}, index=index)\n", " | >>> ax = df.plot.barh()\n", " | \n", " | Plot a column of the DataFrame to a horizontal bar plot\n", " | \n", " | .. plot::\n", " | :context: close-figs\n", " | \n", " | >>> speed = [0.1, 17.5, 40, 48, 52, 69, 88]\n", " | >>> lifespan = [2, 8, 70, 1.5, 25, 12, 28]\n", " | >>> index = ['snail', 'pig', 'elephant',\n", " | ... 'rabbit', 'giraffe', 'coyote', 'horse']\n", " | >>> df = pd.DataFrame({'speed': speed,\n", " | ... 'lifespan': lifespan}, index=index)\n", " | >>> ax = df.plot.barh(y='speed')\n", " | \n", " | Plot DataFrame versus the desired column\n", " | \n", " | .. plot::\n", " | :context: close-figs\n", " | \n", " | >>> speed = [0.1, 17.5, 40, 48, 52, 69, 88]\n", " | >>> lifespan = [2, 8, 70, 1.5, 25, 12, 28]\n", " | >>> index = ['snail', 'pig', 'elephant',\n", " | ... 'rabbit', 'giraffe', 'coyote', 'horse']\n", " | >>> df = pd.DataFrame({'speed': speed,\n", " | ... 'lifespan': lifespan}, index=index)\n", " | >>> ax = df.plot.barh(x='lifespan')\n", " | \n", " | box(self, by=None, **kwargs)\n", " | Make a box plot of the DataFrame columns.\n", " | \n", " | A box plot is a method for graphically depicting groups of numerical\n", " | data through their quartiles.\n", " | The box extends from the Q1 to Q3 quartile values of the data,\n", " | with a line at the median (Q2). The whiskers extend from the edges\n", " | of box to show the range of the data. The position of the whiskers\n", " | is set by default to 1.5*IQR (IQR = Q3 - Q1) from the edges of the\n", " | box. Outlier points are those past the end of the whiskers.\n", " | \n", " | For further details see Wikipedia's\n", " | entry for `boxplot `__.\n", " | \n", " | A consideration when using this chart is that the box and the whiskers\n", " | can overlap, which is very common when plotting small sets of data.\n", " | \n", " | Parameters\n", " | ----------\n", " | by : string or sequence\n", " | Column in the DataFrame to group by.\n", " | **kwds : optional\n", " | Additional keywords are documented in\n", " | :meth:`DataFrame.plot`.\n", " | \n", " | Returns\n", " | -------\n", " | :class:`matplotlib.axes.Axes` or numpy.ndarray of them\n", " | \n", " | See Also\n", " | --------\n", " | DataFrame.boxplot: Another method to draw a box plot.\n", " | Series.plot.box: Draw a box plot from a Series object.\n", " | matplotlib.pyplot.boxplot: Draw a box plot in matplotlib.\n", " | \n", " | Examples\n", " | --------\n", " | Draw a box plot from a DataFrame with four columns of randomly\n", " | generated data.\n", " | \n", " | .. plot::\n", " | :context: close-figs\n", " | \n", " | >>> data = np.random.randn(25, 4)\n", " | >>> df = pd.DataFrame(data, columns=list('ABCD'))\n", " | >>> ax = df.plot.box()\n", " | \n", " | density = kde(self, bw_method=None, ind=None, **kwargs)\n", " | \n", " | hexbin(self, x, y, C=None, reduce_C_function=None, gridsize=None, **kwargs)\n", " | Generate a hexagonal binning plot.\n", " | \n", " | Generate a hexagonal binning plot of `x` versus `y`. If `C` is `None`\n", " | (the default), this is a histogram of the number of occurrences\n", " | of the observations at ``(x[i], y[i])``.\n", " | \n", " | If `C` is specified, specifies values at given coordinates\n", " | ``(x[i], y[i])``. These values are accumulated for each hexagonal\n", " | bin and then reduced according to `reduce_C_function`,\n", " | having as default the NumPy's mean function (:meth:`numpy.mean`).\n", " | (If `C` is specified, it must also be a 1-D sequence\n", " | of the same length as `x` and `y`, or a column label.)\n", " | \n", " | Parameters\n", " | ----------\n", " | x : int or str\n", " | The column label or position for x points.\n", " | y : int or str\n", " | The column label or position for y points.\n", " | C : int or str, optional\n", " | The column label or position for the value of `(x, y)` point.\n", " | reduce_C_function : callable, default `np.mean`\n", " | Function of one argument that reduces all the values in a bin to\n", " | a single number (e.g. `np.mean`, `np.max`, `np.sum`, `np.std`).\n", " | gridsize : int or tuple of (int, int), default 100\n", " | The number of hexagons in the x-direction.\n", " | The corresponding number of hexagons in the y-direction is\n", " | chosen in a way that the hexagons are approximately regular.\n", " | Alternatively, gridsize can be a tuple with two elements\n", " | specifying the number of hexagons in the x-direction and the\n", " | y-direction.\n", " | **kwds\n", " | Additional keyword arguments are documented in\n", " | :meth:`DataFrame.plot`.\n", " | \n", " | Returns\n", " | -------\n", " | matplotlib.AxesSubplot\n", " | The matplotlib ``Axes`` on which the hexbin is plotted.\n", " | \n", " | See Also\n", " | --------\n", " | DataFrame.plot : Make plots of a DataFrame.\n", " | matplotlib.pyplot.hexbin : Hexagonal binning plot using matplotlib,\n", " | the matplotlib function that is used under the hood.\n", " | \n", " | Examples\n", " | --------\n", " | The following examples are generated with random data from\n", " | a normal distribution.\n", " | \n", " | .. plot::\n", " | :context: close-figs\n", " | \n", " | >>> n = 10000\n", " | >>> df = pd.DataFrame({'x': np.random.randn(n),\n", " | ... 'y': np.random.randn(n)})\n", " | >>> ax = df.plot.hexbin(x='x', y='y', gridsize=20)\n", " | \n", " | The next example uses `C` and `np.sum` as `reduce_C_function`.\n", " | Note that `'observations'` values ranges from 1 to 5 but the result\n", " | plot shows values up to more than 25. This is because of the\n", " | `reduce_C_function`.\n", " | \n", " | .. plot::\n", " | :context: close-figs\n", " | \n", " | >>> n = 500\n", " | >>> df = pd.DataFrame({\n", " | ... 'coord_x': np.random.uniform(-3, 3, size=n),\n", " | ... 'coord_y': np.random.uniform(30, 50, size=n),\n", " | ... 'observations': np.random.randint(1,5, size=n)\n", " | ... })\n", " | >>> ax = df.plot.hexbin(x='coord_x',\n", " | ... y='coord_y',\n", " | ... C='observations',\n", " | ... reduce_C_function=np.sum,\n", " | ... gridsize=10,\n", " | ... cmap=\"viridis\")\n", " | \n", " | hist(self, by=None, bins=10, **kwargs)\n", " | Draw one histogram of the DataFrame's columns.\n", " | \n", " | A histogram is a representation of the distribution of data.\n", " | This function groups the values of all given Series in the DataFrame\n", " | into bins and draws all bins in one :class:`matplotlib.axes.Axes`.\n", " | This is useful when the DataFrame's Series are in a similar scale.\n", " | \n", " | Parameters\n", " | ----------\n", " | by : str or sequence, optional\n", " | Column in the DataFrame to group by.\n", " | bins : int, default 10\n", " | Number of histogram bins to be used.\n", " | **kwds\n", " | Additional keyword arguments are documented in\n", " | :meth:`DataFrame.plot`.\n", " | \n", " | Returns\n", " | -------\n", " | class:`matplotlib.AxesSubplot`\n", " | Return a histogram plot.\n", " | \n", " | See Also\n", " | --------\n", " | DataFrame.hist : Draw histograms per DataFrame's Series.\n", " | Series.hist : Draw a histogram with Series' data.\n", " | \n", " | Examples\n", " | --------\n", " | When we draw a dice 6000 times, we expect to get each value around 1000\n", " | times. But when we draw two dices and sum the result, the distribution\n", " | is going to be quite different. A histogram illustrates those\n", " | distributions.\n", " | \n", " | .. plot::\n", " | :context: close-figs\n", " | \n", " | >>> df = pd.DataFrame(\n", " | ... np.random.randint(1, 7, 6000),\n", " | ... columns = ['one'])\n", " | >>> df['two'] = df['one'] + np.random.randint(1, 7, 6000)\n", " | >>> ax = df.plot.hist(bins=12, alpha=0.5)\n", " | \n", " | kde(self, bw_method=None, ind=None, **kwargs)\n", " | Generate Kernel Density Estimate plot using Gaussian kernels.\n", " | \n", " | In statistics, `kernel density estimation`_ (KDE) is a non-parametric\n", " | way to estimate the probability density function (PDF) of a random\n", " | variable. This function uses Gaussian kernels and includes automatic\n", " | bandwidth determination.\n", " | \n", " | .. _kernel density estimation:\n", " | https://en.wikipedia.org/wiki/Kernel_density_estimation\n", " | \n", " | Parameters\n", " | ----------\n", " | bw_method : str, scalar or callable, optional\n", " | The method used to calculate the estimator bandwidth. This can be\n", " | 'scott', 'silverman', a scalar constant or a callable.\n", " | If None (default), 'scott' is used.\n", " | See :class:`scipy.stats.gaussian_kde` for more information.\n", " | ind : NumPy array or integer, optional\n", " | Evaluation points for the estimated PDF. If None (default),\n", " | 1000 equally spaced points are used. If `ind` is a NumPy array, the\n", " | KDE is evaluated at the points passed. If `ind` is an integer,\n", " | `ind` number of equally spaced points are used.\n", " | **kwds : optional\n", " | Additional keyword arguments are documented in\n", " | :meth:`pandas.%(this-datatype)s.plot`.\n", " | \n", " | Returns\n", " | -------\n", " | matplotlib.axes.Axes or numpy.ndarray of them\n", " | \n", " | See Also\n", " | --------\n", " | scipy.stats.gaussian_kde : Representation of a kernel-density\n", " | estimate using Gaussian kernels. This is the function used\n", " | internally to estimate the PDF.\n", " | \n", " | Examples\n", " | --------\n", " | Given a Series of points randomly sampled from an unknown\n", " | distribution, estimate its PDF using KDE with automatic\n", " | bandwidth determination and plot the results, evaluating them at\n", " | 1000 equally spaced points (default):\n", " | \n", " | .. plot::\n", " | :context: close-figs\n", " | \n", " | >>> s = pd.Series([1, 2, 2.5, 3, 3.5, 4, 5])\n", " | >>> ax = s.plot.kde()\n", " | \n", " | A scalar bandwidth can be specified. Using a small bandwidth value can\n", " | lead to over-fitting, while using a large bandwidth value may result\n", " | in under-fitting:\n", " | \n", " | .. plot::\n", " | :context: close-figs\n", " | \n", " | >>> ax = s.plot.kde(bw_method=0.3)\n", " | \n", " | .. plot::\n", " | :context: close-figs\n", " | \n", " | >>> ax = s.plot.kde(bw_method=3)\n", " | \n", " | Finally, the `ind` parameter determines the evaluation points for the\n", " | plot of the estimated PDF:\n", " | \n", " | .. plot::\n", " | :context: close-figs\n", " | \n", " | >>> ax = s.plot.kde(ind=[1, 2, 3, 4, 5])\n", " | \n", " | For DataFrame, it works in the same way:\n", " | \n", " | .. plot::\n", " | :context: close-figs\n", " | \n", " | >>> df = pd.DataFrame({\n", " | ... 'x': [1, 2, 2.5, 3, 3.5, 4, 5],\n", " | ... 'y': [4, 4, 4.5, 5, 5.5, 6, 6],\n", " | ... })\n", " | >>> ax = df.plot.kde()\n", " | \n", " | A scalar bandwidth can be specified. Using a small bandwidth value can\n", " | lead to over-fitting, while using a large bandwidth value may result\n", " | in under-fitting:\n", " | \n", " | .. plot::\n", " | :context: close-figs\n", " | \n", " | >>> ax = df.plot.kde(bw_method=0.3)\n", " | \n", " | .. plot::\n", " | :context: close-figs\n", " | \n", " | >>> ax = df.plot.kde(bw_method=3)\n", " | \n", " | Finally, the `ind` parameter determines the evaluation points for the\n", " | plot of the estimated PDF:\n", " | \n", " | .. plot::\n", " | :context: close-figs\n", " | \n", " | >>> ax = df.plot.kde(ind=[1, 2, 3, 4, 5, 6])\n", " | \n", " | line(self, x=None, y=None, **kwargs)\n", " | Plot Series or DataFrame as lines.\n", " | \n", " | This function is useful to plot lines using DataFrame's values\n", " | as coordinates.\n", " | \n", " | Parameters\n", " | ----------\n", " | x : int or str, optional\n", " | Columns to use for the horizontal axis.\n", " | Either the location or the label of the columns to be used.\n", " | By default, it will use the DataFrame indices.\n", " | y : int, str, or list of them, optional\n", " | The values to be plotted.\n", " | Either the location or the label of the columns to be used.\n", " | By default, it will use the remaining DataFrame numeric columns.\n", " | **kwds\n", " | Keyword arguments to pass on to :meth:`DataFrame.plot`.\n", " | \n", " | Returns\n", " | -------\n", " | :class:`matplotlib.axes.Axes` or :class:`numpy.ndarray`\n", " | Return an ndarray when ``subplots=True``.\n", " | \n", " | See Also\n", " | --------\n", " | matplotlib.pyplot.plot : Plot y versus x as lines and/or markers.\n", " | \n", " | Examples\n", " | --------\n", " | \n", " | .. plot::\n", " | :context: close-figs\n", " | \n", " | >>> s = pd.Series([1, 3, 2])\n", " | >>> s.plot.line()\n", " | \n", " | .. plot::\n", " | :context: close-figs\n", " | \n", " | The following example shows the populations for some animals\n", " | over the years.\n", " | \n", " | >>> df = pd.DataFrame({\n", " | ... 'pig': [20, 18, 489, 675, 1776],\n", " | ... 'horse': [4, 25, 281, 600, 1900]\n", " | ... }, index=[1990, 1997, 2003, 2009, 2014])\n", " | >>> lines = df.plot.line()\n", " | \n", " | .. plot::\n", " | :context: close-figs\n", " | \n", " | An example with subplots, so an array of axes is returned.\n", " | \n", " | >>> axes = df.plot.line(subplots=True)\n", " | >>> type(axes)\n", " | \n", " | \n", " | .. plot::\n", " | :context: close-figs\n", " | \n", " | The following example shows the relationship between both\n", " | populations.\n", " | \n", " | >>> lines = df.plot.line(x='pig', y='horse')\n", " | \n", " | pie(self, **kwargs)\n", " | Generate a pie plot.\n", " | \n", " | A pie plot is a proportional representation of the numerical data in a\n", " | column. This function wraps :meth:`matplotlib.pyplot.pie` for the\n", " | specified column. If no column reference is passed and\n", " | ``subplots=True`` a pie plot is drawn for each numerical column\n", " | independently.\n", " | \n", " | Parameters\n", " | ----------\n", " | y : int or label, optional\n", " | Label or position of the column to plot.\n", " | If not provided, ``subplots=True`` argument must be passed.\n", " | **kwds\n", " | Keyword arguments to pass on to :meth:`DataFrame.plot`.\n", " | \n", " | Returns\n", " | -------\n", " | matplotlib.axes.Axes or np.ndarray of them\n", " | A NumPy array is returned when `subplots` is True.\n", " | \n", " | See Also\n", " | --------\n", " | Series.plot.pie : Generate a pie plot for a Series.\n", " | DataFrame.plot : Make plots of a DataFrame.\n", " | \n", " | Examples\n", " | --------\n", " | In the example below we have a DataFrame with the information about\n", " | planet's mass and radius. We pass the the 'mass' column to the\n", " | pie function to get a pie plot.\n", " | \n", " | .. plot::\n", " | :context: close-figs\n", " | \n", " | >>> df = pd.DataFrame({'mass': [0.330, 4.87 , 5.97],\n", " | ... 'radius': [2439.7, 6051.8, 6378.1]},\n", " | ... index=['Mercury', 'Venus', 'Earth'])\n", " | >>> plot = df.plot.pie(y='mass', figsize=(5, 5))\n", " | \n", " | .. plot::\n", " | :context: close-figs\n", " | \n", " | >>> plot = df.plot.pie(subplots=True, figsize=(6, 3))\n", " | \n", " | scatter(self, x, y, s=None, c=None, **kwargs)\n", " | Create a scatter plot with varying marker point size and color.\n", " | \n", " | The coordinates of each point are defined by two dataframe columns and\n", " | filled circles are used to represent each point. This kind of plot is\n", " | useful to see complex correlations between two variables. Points could\n", " | be for instance natural 2D coordinates like longitude and latitude in\n", " | a map or, in general, any pair of metrics that can be plotted against\n", " | each other.\n", " | \n", " | Parameters\n", " | ----------\n", " | x : int or str\n", " | The column name or column position to be used as horizontal\n", " | coordinates for each point.\n", " | y : int or str\n", " | The column name or column position to be used as vertical\n", " | coordinates for each point.\n", " | s : scalar or array_like, optional\n", " | The size of each point. Possible values are:\n", " | \n", " | - A single scalar so all points have the same size.\n", " | \n", " | - A sequence of scalars, which will be used for each point's size\n", " | recursively. For instance, when passing [2,14] all points size\n", " | will be either 2 or 14, alternatively.\n", " | \n", " | c : str, int or array_like, optional\n", " | The color of each point. Possible values are:\n", " | \n", " | - A single color string referred to by name, RGB or RGBA code,\n", " | for instance 'red' or '#a98d19'.\n", " | \n", " | - A sequence of color strings referred to by name, RGB or RGBA\n", " | code, which will be used for each point's color recursively. For\n", " | instance ['green','yellow'] all points will be filled in green or\n", " | yellow, alternatively.\n", " | \n", " | - A column name or position whose values will be used to color the\n", " | marker points according to a colormap.\n", " | \n", " | **kwds\n", " | Keyword arguments to pass on to :meth:`DataFrame.plot`.\n", " | \n", " | Returns\n", " | -------\n", " | :class:`matplotlib.axes.Axes` or numpy.ndarray of them\n", " | \n", " | See Also\n", " | --------\n", " | matplotlib.pyplot.scatter : Scatter plot using multiple input data\n", " | formats.\n", " | \n", " | Examples\n", " | --------\n", " | Let's see how to draw a scatter plot using coordinates from the values\n", " | in a DataFrame's columns.\n", " | \n", " | .. plot::\n", " | :context: close-figs\n", " | \n", " | >>> df = pd.DataFrame([[5.1, 3.5, 0], [4.9, 3.0, 0], [7.0, 3.2, 1],\n", " | ... [6.4, 3.2, 1], [5.9, 3.0, 2]],\n", " | ... columns=['length', 'width', 'species'])\n", " | >>> ax1 = df.plot.scatter(x='length',\n", " | ... y='width',\n", " | ... c='DarkBlue')\n", " | \n", " | And now with the color determined by a column as well.\n", " | \n", " | .. plot::\n", " | :context: close-figs\n", " | \n", " | >>> ax2 = df.plot.scatter(x='length',\n", " | ... y='width',\n", " | ... c='species',\n", " | ... colormap='viridis')\n", " | \n", " | ----------------------------------------------------------------------\n", " | Methods inherited from pandas.core.base.PandasObject:\n", " | \n", " | __repr__(self)\n", " | Return a string representation for a particular object.\n", " | \n", " | __sizeof__(self)\n", " | Generates the total memory usage for an object that returns\n", " | either a value or Series of values\n", " | \n", " | ----------------------------------------------------------------------\n", " | Methods inherited from pandas.core.accessor.DirNamesMixin:\n", " | \n", " | __dir__(self)\n", " | Provide method name lookup and completion\n", " | Only provide 'public' methods.\n", " | \n", " | ----------------------------------------------------------------------\n", " | Data descriptors inherited from pandas.core.accessor.DirNamesMixin:\n", " | \n", " | __dict__\n", " | dictionary for instance variables (if defined)\n", " | \n", " | __weakref__\n", " | list of weak references to the object (if defined)\n", "\n" ] } ], "source": [ "help(oct1_temps.plot)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Embiggening\\* the plot\n", "\n", "While the plot sizes we're working with are OK, it would be nice to have them displayed a bit larger.\n", "Fortunately, there is an easy way to make the plots larger in Jupyter notebooks.\n", "First, we need to import the [Matplotlib pyplot library](https://matplotlib.org/api/pyplot_api.html), then we can make the default plot size larger by running the Python cell below." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "\n", "plt.rcParams['figure.figsize'] = [12, 6]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The cell above sets the default plot size to be 12 inches wide by 6 inches tall.\n", "Feel free to change these values if you prefer.\n", "\n", "To test whether this is working as expected, simply re-run one of the earlier cells that generated a plot.\n", "\n", "\\* To [embiggen](https://www.lexico.com/definition/embiggen) means to enlarge.\n", "It's a perfectly [cromulent](https://www.lexico.com/definition/cromulent) word." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Other common plot formatting operations\n", "\n", "#### Adding text to the plot\n", "\n", "Adding text to plots can be done using `ax.text()`.\n", "\n", "```python\n", "ax.text(x, y, 'Text to display')\n", "```\n", "\n", "This would display \"Text to display\" at the location *x*, *y* on the plot.\n", "We'll see how to do this in a live example in just a second.\n", "\n", "#### Changing the axis ranges\n", "\n", "Changing the plot axes can be done using the `xlim` and `ylim` parameters of the `plot()` function\n", "\n", "```python\n", "df.plot(xlim=[xmin, xmax], ylim=[ymin, ymax])\n", "```\n", "\n", "where `xmin` should be the minimum bound of the x-axis, `xmax` should be the maximum bound, and the same goes for the y-axis with `ymin` and `ymax`.\n", "\n", "#### Dealing with datetime axes\n", "\n", "One issue we will encounter with both placing text on the plot and changing the axis ranges is our datetime index for our DataFrame. In order to do either thing, we need to define x-values using a datetime object. The easiest way to do this is to use the Pandas `pd.to_datetime()` function, which converts a character string date to a datetime object. For example, we can convert 13:00 on October 1, 2019 from the character string `'201910011300'` to a datetime equivalent by typing" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Timestamp('2019-10-01 13:00:00')" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pd.to_datetime('201910011300')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "With this datetime issue in mind, let's now consider a modified version of the plot above, we can\n", "\n", "1. Limit our time range to 12:00 to 15:00 on October 1, 2019\n", "2. Only look at temperatures between 40-46° Fahrenheit\n", "3. Add text to note the coldest part of the early afternoon." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(2019-10-01 12:05:00, 42.0, '<- Coldest temperature in early afternoon')" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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YeVfc801vPbaaxVWfirNmzfn119/3eRyxo0bx1577UW3bt0q/H0SERGRsosiuc6MFuuffoJeveDkk6FpU8gq/0tfs2YNK1asKPUcd6dXr1507dqVuXPnMmvWLG644QYWLFiwsZFvlExJrteuXVvisY1JGt2d/PyyzQB53XXXccghh5Sr/I1VnrjK4oEHHuDuu+9m0qRJG/U+lfa+i4iIyMaLIrk+OIIyKtZjj0HLlvDKK3DzzfDOO7DnnmV++ueff87FF1/MnnvuWWoLNMCkSZPYbLPNOPvsswv3tW3bli5duuDuXHrppbRu3Zo2bdowduzYYs9ftWoVffv2JTs7mxNPPJFVq1YVHps4cSJ//vOfad++PX369GH58uUAXHHFFbRs2ZLs7GwuueQS3n33XV544QUuvfRS2rZty9y5cwvLSHVs7ty5HHHEEXTo0IEuXbrwxRdfAHD66adzzjnn0K1bN3bZZRemTJnCwIED2WuvvTj99NMLy9xyyy25+OKLad++PQcffDALFy4EKLXciy66iG7dunH55Zfz4Ycfst9++9GuXTv2228/vvzyS9asWcM111zD2LFjadu2LWPHjmXo0KHcfPPNhddt3bo18+fPZ/78+ey1116ce+65tG/fnu+++67E9yrZ6aefzvjx44HQonzttdfSvn172rRpUxhrsry8PC699FI6depEdnY29913HwDLly/n4IMPLnzu888/D5AyrgJXX301t912W+HjIUOGcPvttxe75rHHHkuHDh1o1aoVo0aNAsI/BW+//TZnn302f//734u9TytWrGDgwIF06tSJdu3aFcbz8MMP06dPH4466igOO+wwJk+eTNeuXTn++ONp0aIF/fr1w90BeP3112nXrh1t2rRh4MCBrF69utT9ZXn/REREqgV3rzJfHTp08JQuvdS9Sxf32bNTH09h+fLl/uCDD/r+++/v++23n48ePdqXLl26wefddtttfuGFF6Y8Nn78eD/kkEN87dq1/vPPP/uOO+7oP/74o8+bN89btWrl7u633HKLDxgwwN3dP/74Y69Ro4bn5OT4woULvUuXLr58+XJ3d//Xv/7lw4YN80WLFvkee+zh+fn57u7++++/u7t7//79fdy4cSnjKHqse/fuPjvx3rz//vverVu3wvNOPPFEz8/P9+eee87r1avnn3zyiefl5Xn79u19+vTp7u4O+H//+193dx82bJifd955Gyy3R48evnbtWnd3X7Jkiefm5rq7+6uvvuq9e/d2d/eHHnqosCx392uvvdZHjBhR+LhVq1Y+b948nzdvnpuZv/fee+7uJb5Xpb0PzZo189tvv93d3e+66y4/44wzip1/3333+fXXX+/u7n/88Yd36NDBv/76a8/NzfUlS5YUXnvXXXf1/Pz8YnEVXGfhwoU+b948b9eunbu75+Xl+S677OK//vprsWsuWrTI3d1XrlzprVq1KjznoIMO8pycnJTv05VXXumPPfaYu4efh913392XL1/uDz30kO+www6FZU6aNMnr16/v3333nefl5Xnnzp39rbfe8lWrVnnTpk39yy+/dHf3U0891UeOHFni/rK+fyIiIlUFMNVLyEejGNAYCTOrAUwFfnD3nmY2AjgKWAPMBQa4++IyFeYOo0fDHntA167wz39CzZrl6gqy3XbbkZ2dzf3330+LFi3K/XpSefvttznppJOoUaMGjRs35qCDDiInJ4fs7OzCc958800uuOACALKzswuPvf/++8yaNYv9998fCF1U/vznP1O/fn1q167NmWeeSY8ePejZs2e5Ylq+fDnvvvsuffr0KdxX0BoJcNRRR2FmtGnThsaNG9OmTRsAWrVqxfz582nbti1ZWVmceOKJAJxyyin07t17g+X26dOHGjVqALBkyRL69+/PnDlzMDNyc3PL9RoAmjVrRufOnYGS36sN6d27NwAdOnTgmWeeKXZ84sSJfPLJJ4Wt3UuWLGHOnDk0bdqUq666ijfffJOsrCx++OGHwm5AyXEla968OQ0bNmT69OksWLCAdu3a0bBhw2Ln3X777Tz77LMAfPfdd8yZMyfleUXjfOGFFwpb+f/44w++/fZbAA499FC23nrrwnP32WcfmjZtCoRPWObPn0+9evXYeeed2WOPPQDo378/d911F926dUu5/8ILLyzT+yciIlIdpE1yDQwGPgfqJx6/Clzp7mvN7N/AlcDlpZYwbRrssANstVVYaXHAgJBcb8T0euPHj+eBBx6gV69enHTSSfTv359mzZoB8MEHH3DWWWcB4SP6o48+uvB5rVq1Kky+ivLER+4bYla8G7u7c+ihh/LEE08UO/bhhx/y+uuv8+STT3LnnXfyxhtvlOk6APn5+Wy11VbMmDEj5fFatWoBkJWVVbhd8LikfrtmtsFy69atW7h99dVX061bN5599lnmz59P165dUz6nZs2a6/Vb/uOPP1KWV9p7VZqC11ejRo2Ur83dueOOOzj88MPX2//www+zcOFCpk2bxmabbUbz5s0LY0uOq6gzzzyThx9+mJ9//pmBAwcWOz558mRee+013nvvPerUqUPXrl3Xe80lcXeefvpp9izS9emDDz4oFk9ynRa87pJ+Tjf087uh909ERKQ6iKLP9SYzs6ZAD+D+gn3uPtHDsuoA7wNNy1TYjz+GxHrgQHjggY2O6bDDDmPs2LG8/fbbNGjQgGOOOYZDDjmE+fPns++++zJjxgxmzJixXmIN0L17d1avXs3o0aML9+Xk5DBlyhQOPPBAxo4dS15eHgsXLuTNN99kn332We/5Bx54IGPGjAFg5syZfPLJJwB07tyZd955h6+++gqAlStXMnv2bJYvX86SJUv4y1/+wq233lqYzNarV49ly5alfG3Jx+rXr8/OO+/MuHHjgJBAffzxx+V6r/Lz8wv/oXj88cc54IADylXukiVL2GGHHYCQqKaKE0Jr70cffQTARx99xLx581KWV9J7takOP/xw7rnnnsKW9dmzZ7NixQqWLFnCtttuy2abbcakSZP45ptvylRer169+N///kdOTk6xhB3C+/KnP/2JOnXq8MUXX/D++++nLKfo+3T44Ydzxx13FCbD06dPL9frbNGiBfPnzy98/x577DEOOuigEveLiIjIOmmRXAO3ApcBJU2nMBD4v3KV+PrrkKIFuLwaNmzI4MGDmTFjBjfccENhV4aSmBnPPvssr776KrvuuiutWrVi6NChbL/99vTq1Yvs7Gz23ntvunfvzk033USTJk3We/4555zD8uXLyc7O5qabbipMvhs1asTDDz/MSSedRHZ2Np07d+aLL75g2bJl9OzZk+zsbA466CBGjhwJQN++fRkxYgTt2rVbb0BjqmNjxozhgQceYO+996ZVq1aFA+DKqm7dunz22Wd06NCBN954g2uuuQagzOVedtllXHnlley///7k5eUV7u/WrRuzZs0qHKh33HHH8dtvv9G2bVvuueeewu4JRZX0Xm2qM888k5YtW9K+fXtat27NWWedxdq1a+nXrx9Tp06lY8eOjBkzpszdiDbffHO6devGCSeckPLn6ogjjmDt2rVkZ2dz9dVXp+xeAsXfp6uvvprc3Fyys7Np3bo1V199dbleZ+3atXnooYfo06cPbdq0ISsri7PPPrvE/SIiIrKOlbWrQoUFYNYT+Iu7n2tmXYFL3L1n0vEhQEegt6cI1swGAYMAOkCHqesOQIRTn0nJttxyy5SzcUjp8vPzad++PePGjWP33XePOxwREREpIzOb5u4dUx1Lh5br/YGjzWw+8CTQ3cz+C2Bm/YGeQL9UiTWAu49y947FXuBOO1Vo0CKbYtasWey2224cfPDBSqxFRESqkNhbrpMlt1yb2RHAf4CD3H1hWZ7f0cynAtSpA6NGQb9+FResiIiIiFRL6d5yXZI7gXrAq2Y2w8zuLdOzmjVTYi0iIiIisUinqfhw98nA5MT2buUuoEMHmDp1w+eJiIiIiFSAdG65FhERERHJKEquRUREREQiouRaRERERCQiSq5FRERERCKi5FpEREREJCJKrkVEREREIqLkWkREREQkIkquRUREREQiouRaRERERCQiSq5FRERERCKi5FpEREREJCJKrkVEREREIqLkWkREREQkIkquRUREREQiouRaRERERCQiSq5FRERERCKi5FpEREREJCJKrkVEREREIqLkWkREREQkIkquRUREREQiouRaRERERCQiSq5FRERERCKi5FpEREREJCJKrkVEREREIqLkWkREREQkIkquRUREREQiouRaRERERCQiSq5FRERERCKi5FpEREREJCJKrkVEREREIqLkWkREREQkIkquRUREREQiouRaRERERCQiSq5FRERERCKi5FpEREREJCJKrkVEREREIqLkWkREREQkIkquRUREREQiouRaRERERCQiSq5FRERERCKSNsm1mdUws+lmNiHxuI+ZfWZm+WbWMe74REREREQ2JG2Sa2Aw8HnS45lAb+DNeMIRERERESmftEiuzawp0AO4v2Cfu3/u7l/GF5WIiIiISPmkRXIN3ApcBuTHHYiIiIiIyMaKPbk2s57AL+4+bSOfP8jMpprZ1IULF0YcnYiIiIhI2cWeXAP7A0eb2XzgSaC7mf23rE9291Hu3tHdOzZq1KiiYhQRERER2aDYk2t3v9Ldm7p7c6Av8Ia7nxJzWCIiIiIi5RZ7cl0SM+tlZt8DfwZeMrNX4o5JRERERKQ0NeMOIJm7TwYmJ7afBZ6NMx4RERERkfJI25ZrEREREZFMo+RaRERERCQiSq5FRERERCKi5FpEREREJCJKrkVEREREIqLkWkREREQkIkquRUREREQiouRaRERERCQiSq5FRERERCKi5FpEREREJCJKrkVEREREIqLkWkREREQkIkquRUREREQiouRaRERERCQiSq5FRERERCKi5FpEREREJCJKrkVEREREIqLkWkREREQkIkquRUREREQiouRaRERERCQiSq5FRERERCKi5FpEREREJCJKrkVEREREIqLkWkREREQkIkquRUREREQiouRaRERERCQiSq5FRERERCKi5FpEREREJCJKrkVEREREIqLkWkREREQkIkquRUREREQiouRaRERERCQiSq5FRERERCKi5FpEREREJCJKrkVEREREIqLkWkREREQkIkquRUREREQiouRaRERERCQiSq5FRERERCKi5FpEREREJCJpk1ybWQ0zm25mExKPtzazV81sTuL7n+KOUURERESkNGmTXAODgc+THl8BvO7uuwOvJx6LiIiIiKSttEiuzawp0AO4P2n3McAjie1HgGMrOy4RERERkfJIi+QauBW4DMhP2tfY3X8CSHzfNo7ARERERETKqmbcAZhZT+AXd59mZl034vmDgEGJh6vNbGaU8Uml2Qb4Ne4gZKOp/jKb6i9zqe4ym+ovc+1Z0gFz98oMpHgAZjcCpwJrgdpAfeAZoBPQ1d1/MrPtgMnuXuILSZQ11d07VnTMEj3VXWZT/WU21V/mUt1lNtVf5iqt7mLvFuLuV7p7U3dvDvQF3nD3U4AXgP6J0/oDz8cUooiIiIhImcSeXJfiX8ChZjYHODTxWEREREQkbcXe5zqZu08GJie2FwEHl7OIURGHJJVHdZfZVH+ZTfWXuVR3mU31l7lKrLvY+1yLiIiIiFQV6dwtREREREQko2RUcm1m9eKOQTae6i9zqe4ym+ovs6n+MpfqLrNtbP1lRHJtZnXN7E7gaTM72cx2jjsmKTvVX+ZS3WU21V9mU/1lLtVdZtvU+suI5Bq4jjD/9T+BdmjmkEyj+stcqrvMpvrLbKq/zKW6y2ybVH9pn1yb2ZZAPeBGd38TGA5kmdk/4o1MSmNmlvheF9VfRtK9l5l071UNuv8yj+69qiGKey/tkmsza2Fm95rZYDOr7+7LCcuDngzg7ouBfwPHm1mTOGOV4sxsNzO7D7jEzLZ39xVAE8ICQaq/NKZ7L7Pp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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "start_time = pd.to_datetime('201910011200')\n", "end_time = pd.to_datetime('201910011500')\n", "cold_time = pd.to_datetime('201910011205')\n", "\n", "ax = oct1_temps.plot(style='ro--', title='Helsinki-Vantaa temperatures',\n", " xlim=[start_time, end_time], ylim=[40.0, 46.0])\n", "ax.set_xlabel('Date')\n", "ax.set_ylabel('Temperature [°F]')\n", "ax.text(cold_time, 42.0, '<- Coldest temperature in early afternoon')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Check your understanding\n", "\n", "Create a line plot similar to our examples above with the following attributes:\n", " \n", "- Temperature data from 18:00-24:00 on October 1, 2019\n", "- A dotted black line connecting the observations (do not show the data points)\n", "- A title that reads \"Evening temperatures on October 1, Helsinki-Vantaa\"\n", "- A text label indicating the warmest temperature in the evening" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "tags": [ "hide-cell" ] }, "outputs": [ { "data": { "text/plain": [ "Text(2019-10-01 21:20:00, 43.0, 'Warmest time of the evening ->')" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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LSIiIiISEBXXIiIiIiIBUXEtIiIiIhIQFdciIiIiIgFRcS0iIiIiEhAV1yIiIiIiAVFxLSIiIiISEBXXIiIiIiIBUXEtIiIiIhIQFdciIiIiIgFRcS0iInHn6quv5sEHH4wt9+vXj0suuSS2/Ne//pV//etfYUTbzh133FHmxw4//PDKjrOdc845h5SUFB544IHt1r/zzjvMnj07tty3b1+mTJlSpdnKY+TIkbzwwgthxxApMxXXIiISdw4//HAmTpwIQEFBAatXr+b777+PPT5x4kSOOOKIMrXl7hQUFFRKzvIU14WvpyqsXLmSiRMnMnPmTK6++urtHiteXMe7Sy+9lAsuuCDwdrdt28amTZsCb1dExbWIiMSdI444IlaMfv/993Tt2pVGjRqxbt06tm7dypw5czjkkEPYuHEjxxxzDD169CA5OZl3330XgEWLFnHQQQcxbNgwevTowdKlS2nYsCHXXXcdhx56KMceeyyTJk2ib9++tG/fnvfeew+A/Px8rr32Wnr27ElKSgqPP/44ACtWrOCoo46ie/fudO3alfHjx3P99dezZcsWunfvzrnnnrtd/pIea9iwIQDjxo3j6KOPZuDAgXTq1Inrr7+el156iV69epGcnMz8+fMBWLVqFWeccQY9e/akZ8+eZGRk/OY45eTkcNFFF5GcnMwhhxzC559/DsDxxx9PVlYW3bt3Z/z48bHtJ06cyHvvvce1115L9+7dY/t6/fXX6dWrF506dYptX9qxKG7UqFH06tWL7t27M3ToUPLz83nssccYPnx4bJvnnnuOP//5z6VuX3h8brrpJrp160afPn34+eefARgxYgT33XcfEOllv+66636TdfPmzQwcOJCUlBTOOussevfuvdPe+HXr1nHwwQczdOhQJk+evMNtRcrF3avN7dBDD3UREake2rRp44sXL/aRI0f6Y4895jfffLN/8MEHPmHCBD/yyCPd3T03N9c3bNjg7u6rVq3yDh06eEFBgS9cuNDNzL/66qtYe4B/+OGH7u4+YMAAP+6443zbtm0+ffp079atm7u7P/74437rrbe6u3tOTo4feuihvmDBAr/vvvv8tttuc3f3vLw8/+WXX9zdvUGDBqXmL/5Y4fLnn3/ujRs39uXLl3tOTo7vt99+/ve//93d3R988EG/8sor3d39nHPO8fHjx7u7++LFi71z586/2cd9993nF154obu7z5kzx1u1auVbtmzxhQsX+sEHH1xirkGDBvnrr78eWz766KP9L3/5i7u7f/DBB37MMcfs8FgUNXv2bO/fv79v27bN3d0vu+wyf/755z0rK8s7dOgQ2+6EE07w8ePHl7q9e+T9ee+999zd/dprr43t+x//+Iffe++9O8x67733+pAhQ9zdfdasWZ6YmOiTJ08u8fUXlZOT4y+//LIfd9xx3r17d//3v//ta9as2enzRNzdgSleQj1aK+TaPsbMEoEpwDJ3729mtwKnAgVAFnChuy8PM6OIiFSdwt7riRMn8pe//IVly5YxceJEGjduHBu/7O7ceOONfPnllyQkJLBs2bJYj2ebNm3o06dPrL3atWtzwgknAJCcnEydOnVISkoiOTmZRYsWAfDJJ58wc+ZM3njjDQA2bNjADz/8QM+ePRk8eDC5ubkMGDCA7t27V+i19ezZkxYtWgDQoUMHjj/++Fiuwt7nsWPHbjd845dffiE7O5tGjRrF1k2YMCHWI9y5c2fatGnDvHnz2GOPPcqV5/TTTwfg0EMP3emxaNeuXex5n376KVOnTqVnz54AbNmyhX333ZemTZvSvn17vv76aw444ADmzp3LEUccwSOPPFLi9hB5f/r37x/LMWbMmDJnnTBhAldeeSUAXbt2JSUlpUyvu06dOpx99tmcffbZLFmyhMsvv5zhw4ezYMEC9ttvvzK1IVJc3BTXwJXAHKDwN8K97v43ADO7Avg7cGlI2UREpIoVjrueNWsWXbt2pVWrVtx///3sscceDB48GICXXnqJVatWMXXqVJKSkmjbti05OTkANGjQYLv2kpKSMDMAEhISqFOnTux+Xl4eECnWH3roIfr16/ebPF9++SUffPAB559/Ptdee22FxgEX7ntHWQoKCvjqq6+oV69eqe1EOs8qrnD/iYmJZToWRfc/aNAg7rzzzt88dtZZZ/Haa6/RuXNnTjvtNMxsh9sXfX+K5ihr1p355ptvGDp0KAC33HILp5xyCgBZWVm8+OKLvPDCC7Rs2ZL//ve/NGvWbKftiZQmLsZcm1lL4CTgqcJ17v5LkU0aAMH8BhERkd3CEUccwejRo9lrr71ITExkr732Yv369Xz11VccdthhQKQ3dd999yUpKYnPP/+cxYsXV2if/fr147HHHiM3NxeAefPmsWnTJhYv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IaCZQaT6UnEtIiIile6XX34hJyeH2rVrhx1FpFJpWIiIiIhUmsKhIGlpaUybNi12wRiR6kqfcBEREakU+fn5nH322TzzzDMAKqylRtCnXERERCpFTk4O69evJzs7O+woIlUmboaFmFkiMAVY5u79zexMYARwENDL3aeEmU9ERETKp0GDBnz44YfqsZYaJZ4+7VcCc4osfwecDnwZThwRERHZFWPGjGHAgAFkZ2eTmJiomUGkRomL4trMWgInAU8VrnP3Oe4+N7xUIiIisiuWLl3K0qVLw44hEoq4KK6BB4HhQEHYQURERHYHy5cvp2XLlmzYsAGAf/3rXzRq1IicnBwA7rrrLho1akRBQeS/1ltuuYU999wz9vybb76ZZs2axZaHDx9Oq1atYstXXnklHTp0iC0PGzaMgw46KLZ8ySWX0K1bt9jy+eefT8+ePQEYPHgw33zzDY0aNQryJYvsFkIfc21m/YEsd59qZn134flDgCEArVu3DjidiIhIfFq0aBF5eXmsXLmSxo0b061bN4YMGUJiYiIAPXr0YMiQIbHte/bsyR//+MfYcu/evcnPz48tH3744dvNQX3kkUfSpEmT2PJRRx1FixYtYsu/+93vaN++fWz52GOPJTk5ObZcq1boJYZIKCzsy4+a2Z3A+UAeUBfYA3jL3c+LPj4OuKYsJzSmpqb6lCk671FEREREKpeZTXX31OLrQx8W4u43uHtLd28LnA18VlhYi4iIyG8VFBQQdueYiJQs9OK6NGZ2mpn9BBwGfGBm/ws7k4iISDz47LPPaNu2LbNmzQo7iogUE1cDotx9HDAuev9t4O0w84iIiMSjhg0b0qtXr+3GPItIfIir4lpERER2rk+fPrz++uthxxCREsTtsBARERH5rY0bN/LLL7+EHUNESlHh4trM1u7kts7MZgcRVkREpKYbNWoUe++9N0uWLAk7ioiUIIhhIYuB30xDUoQBkwPYj4iISI13+OGHM2LEiO0u+CIi8SOI4vosd8/f0QZmdlYA+xEREanxUlJSSElJCTuGiJQiiDHXjXe2gbvPC2A/IiIiNdrChQuZPn265rgWiWNBFNePF94xswkBtCciIiIleOSRR+jduzebNm0KO4qIlCKIYSFW5H6DANoTERGREvz1r3/lmGOOoWHDhmFHEZFSBFFcJ5hZIyK94IX3YwW3u2u+IBER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X/GIla+goIDbb7+dESNGUJ3m/RYRKcnSpUv55JNPqF9/139FF16a+/3336dDhw589913QcWrsVq1akXr1q3DjiEiFVThMddmdhEwGOgOFD3FORt41t1fr9AOyqE8Y66LW79+PXl5eeyzzz7k5eWRmJior+dERHbihx9+4O9//ztPPfWU5sMWkRql0q/QaGYD3f21QBrbRRUprgsVFBRw/vnn06hRIx577DEV2CIiZbRt2zbef/99XVmwnHJycgCoW7duyElEpDyqYp7r18ysn5n9xcxuLLwF1X5VMTPatm1LmzZtVFiLSLWzceNG0tLS+OijjwJv+/HHHyc9PZ2pU6cG3nZ19uqrr7L33nuzYMGCsKOISACCnOf6UWBP4CjgWSJXaPw6qPariplx++23x5bnzJlDkyZNaN68eYipRESCsXr1ahISEkhICPJ89ohhw4bRqVMnDj300MDbrs6Sk5O5/PLLadeuXdhRRCQAQQ4LmenuKWY2w927mVkj4E13Pz6QHZRBEMNCisrPz6dr167stddemgtbRKQcvv/+e66//nqee+459t5777DjiIgErirmuc4p/NfMmgNrgLYBtl/lEhMTefHFF0lKSlJhLSJSDj/++CPfffcdGzduVHG9A8uWLSMnJ4cOHTqEHUVEAhLk94IfmtmewH1EZg1ZBLwRYPuhSE1NpVu3bgA88MADvPLKKyEnEhHZdb///e+54YYbKn0/p556KpmZmbRp0wZ3Z/HixZW+z93RyJEj6dSpExs2bAg7iogEJJDi2swSgI/cfX106r12QLK773YnNJYmLy+Pd999l3fffVdzYYvIbqtdu3ZVdg5JnTp1AHjiiSfo0qWL5sIuwcUXX8zLL79M48aNw44iIgEJcsz11+7eJ5DGdlHQY66LKzpd0oYNG2jYsCGJiYmVtj8Rkepg5cqVPPLII/zzn/+slBMpRUTCUOlT8QFjzOzUANuLO3Xr1qVu3brk5uZy4okncu6554YdSUSkzAoKCkLZb/Pmzbn11ltJSEhgzZo13H///aFliSfffPMNH3zwAfn5+WFHEZEABVlcXw68bWZbzGytma0zs7UBth83kpKSOOecc0hPTw87iohImV1zzTUcfPDBoQ5te/HFF7nxxhuZM2dOaBnixcMPP8zFF1+sE+ZFqpkgZwvZJ8C24t7ll18euz927Fhat25Np06dQkwkIrJjPXv2pG7duqEWc1deeSX9+vXjoIMOAiJTntbU4XVPPvkk8+fP11AZkWomsDHXAGZ2NtDe3e8ws5ZAM3evskt1VfaY65Lk5uZy4IEH0rFjRz755JMq3beIyO7sf//7H9dddx2jR4+mZcuWYccRESmXSp/n2sweBpKIXKHxDmAzMBLoGdQ+4lFSUhJjxoyhfv36ALi7vuITkbizdetW3J26deuGHSWmTp06NGnSpEbOlDFq1CjWrl3LFVdcEXYUEQlYkN9FHe7uQ4leTMbd1wK1d/YkM6trZpPMbIaZfW9m/4yu72ZmX5nZLDN738z2CDBroDp06ECLFi1wd4YMGcIDDzwQdiQRke189NFHNGrUiJkzZ4YdJaZv37589tlnNGrUiLy8PL755puwI1WZ0aNH8+qrr4YdQ0QqQZDFdW50vmsHMLO9gbKcDr4V+D937wZ0B04wsz7AU8D17p4MvA1cG2DWSpGbm8vatWtZv3592FFERLZzwAEHcN1119GxY8ewo2yn8Ju+u+++myOOOIJ58+aFnKhqvPLKKxpKKFJNBTnP9QXAaUAq8AwwEPinu5f5koZmVh+YAFwGjAEau7ubWSvgf+7eZUfPD2PMdXEFBQWYGWbGokWLaNasGfXq1Qs1k4hIvMvOzubtt9/mggsuCDuKiEiZVPo81+7+AnAzkcufrwXOLGthbWaJZjYdyALGuPs3wHfAKdFNzgRaBZW1MiUkJGBmbN26lWOPPZY77rgDgG3btpGens7bb78NwKZNm0hPT2f06NEAbNiwgfT0dD7++GMA1qxZQ3p6OmPHjgXg559/Jj09nXHjxgGwbNky0tPTmTBhAgCLFi0iPT099rXqjz/+SHp6OlOnRs4nzczMJD09nRkzZgAwa9Ys0tPTmT17NgDTpk0jPT091ms0adIk0tPTWbhwIQATJ04kPT2dpUuXAvDll1+Snp7OihUrKulIikiQfvjhh7ieT7lRo0axwnrevHkcf/zxrFmzBoCPP/6Y9PT02CXCR48eTXp6Ops2bQLgnXfeIT09na1btwLwxhtvkJ6eHnu9L7/8MgMHDozt68UXX+QPf/hDbPnZZ5/drqh/4oknuPjii2PLjz76KEOHDo0t//vf/95uxqj777+fq666KrZ89913c80118SWb7/9dq6//vrY8rHHHstNN91U7mMkIruHoOf/SQRygW3ladvd8929O9AS6GVmXYHBwJ/MbCrQKNrmb5jZEDObYmZTVq1aVeEXEJQ6depwzz330K5dOyByomNmZmbsP4uCggIyMzNZuzYyFXh+fj6ZmZmsW7cOiFxuPTMzMzbEZNu2bWRmZvLLL78AkZOTMjMzyc7OLnE5JyeHzMxMNm7cCMCWLVvIzMyM/We0efNmMjMz2bx5MxAp9jMzM9myZQsAGzduJDMzM3ZVyuzsbDIzM2P/ef3yyy9kZmaybVuJb4uIxJHVq1fTqVOn3eZ8kC+//JIVK1aQm5sLwPr168nMzCQvLw+AdevWkZmZGSue16xZQ2ZmZmz+7tWrV5OZmRlrb9WqVcydOze2nJWVtd3wk59//pkffvghtrxy5Up+/PHH2PKKFSuYP39+qcvLly9nwYIFseVly5bFOiYAli5dyuLFi2PLbdq0qZEncYrUFEEOC7kJ+AOR8dEGnAq85O53lrOdfwCb3P2+Ius6AaPcvdeOnhsPw0JqotzcXMyMWrWCnDZdRIKSnZ3Nm2++SZ8+fejcuXPYcUREqoWquPz5eUBPd7/Z3W8CegE7HTxnZk3NbM/o/XrAsUCmme0bXZdAZLjJyACzSkCysrJITk7miSeeCDuKiJSiUaNGXHjhhSqsRUSqQJDF9WK2nze7FrCglG2LagF8bmYzgclExlyPBs4xs3lAJrAceDbArBKQpk2bcuSRR8bdDAQi8qtp06axfPnysGOIiNQIQQ4LeYvIBWP+R2Q6vuOJzPzxM4C7/yWQHe2AhoWIiPxWly5d6NixI++9917YUUREqo1Kv0Ij8EH0VujrANuWOJebm8vIkSPp168fnTp1CjuOiBTx9NNPk5iYGHYMEZEaIbDi2t2fDqot2f2sXbuWm266iTVr1jBixIiw44hIEYcddljYEUREaozAimszOwG4FWgTbdcAd/e9gtqHxK9mzZoxY8YM2rZtG3YUESli5syZrFmzhqOPPpqEhKBnXxURkeKC/E37MDAU2B9oCuwT/VdqiHbt2mFmrFu3Lq4vViFSkzz66KOcfvrpscuMi4hI5QqyuP4JmO7uudGLwuS7uyqsGmbhwoV07NiRp556KuwoIgLceuut/O9//1NxLSJSRYI8oXE48L6ZjQO2Fq509/8EuA+Jc23btmXw4MEcfvjhYUcRESLTZTZtqi8RRUSqSpDF9T+JXPp8T6AgwHZlN2Jm3HvvvWHHEBEil+H+4IMPOO2001Rgi4hUkSCL633d/dAA25Pd2Pr167nlllsYNmyYLjAjEpIvv/ySoUOHcthhh6m4FhGpIkGOuf7UzP4vwPZkN7ZlyxaefvppPv3007CjiNRYZ599NvPnz+eggw4KO4qISI0RZM/1H4FrzGwzsA1NxVejtWjRgoULF7LXXnr7RcJiZrRv3z7sGCIiNUqQPdf7AElAYzQVn0CssJ4/f76m5hOpYu7O3/72N7755puwo4iI1CiBFdfRaffOBK6L3m8BdA+qfdk9zZgxg86dO/Pss8+GHUWkRsnKyuKee+5h6tSpYUcREalRgrxC48NEeq6PAu4ANgMjgZ5B7UN2PykpKdx66630798/7CgiNUqzZs3YuHEjeXl5YUcREalRghxzfbi79zCzaQDuvtbMagfYvuyGzIzrr78+7BgiNVJSUhJJSUlhxxARqVGCHHOda2YJgAOY2d5ovmuJWrJkCWeeeSYLFiwIO4pIjXDXXXcxcuTIsGOIiNQ4FS6uzayw9/sR4E2gqZn9E5gA3F3R9qV6SExMZMKECcycOTPsKCI1wqeffsr48ePDjiEiUuOYu1esAbNv3b1H9P7BwLFEpuEb6+7fVTxi2aWmpvqUKVOqcpdSDlu3bqVOnTphxxCpMQoKCkhICPILShERKWRmU909tfj6IMZcW+Edd/8e+D6ANqUaKiysJ06cSO/evUlMTAw5kUj1psJaRKTqBVFcNzWzv5T2oLv/K4B9SDXxxRdf0LdvX1588UXOO++8sOOIVEujRo3i448/5plnnqF2bZ1XLiJSlYIorhOBhhTpwRYpzVFHHcVTTz3FGWecEXYUkWorKyuLuXPnqrAWEQlBoGOuw6Yx1yIiIiJSFUobcx3EgDz1WEu5zZo1i8MOO4xFixaFHUVEREQkMEEU18cE0IbUMHvuuScbNmzgp59+CjuKSLUybdo0+vTpw7Rp08KOIiJSI1V4zLW7rw0iiNQsrVq14vvvv8dMX3yIBGnr1q3Uq1ePPffcM+woIiI1UujzNJlZXTObZGYzzOz76AVoMLPuZva1mU03sylm1ivsrBIsM6OgoIC33nqLggJdzFMkCH369OHzzz+nXbt2YUcREamRQi+uga3A/7l7N6A7cIKZ9QHuAf7p7t2Bv0eXpZp5//33OeOMMxg9enTYUUREREQqLPTi2iM2RheTojeP3vaIrm8MLA8hnlSyk08+mdGjR3PyySeHHUVkt5efn0+bNm14+OGHw44iIlJjhV5cA5hZoplNB7KAMe7+DXAVcK+ZLQXuA24IM6NUjoSEBE466aTYEBHZ/cyePZtt27aFHUOATZs2cfzxx9O2bduwo4iI1FhxUVy7e350+EdLoJeZdQUuA65291bA1cDTJT3XzIZEx2RPWbVqVdWFlkCNGzeOTp06sWTJkrCjSDls2bKF4447jkGDBoUdRYA99tiDJ598kv79+4cdRUSkxoqL4rqQu68HxgEnAIOAt6IPvQ6UeEKjuz/h7qnuntq0adMqySnBa9++Pa1bt2bjxo0731jiRr169Xjqqae48soreeSRRxg/fnzYkWo0fYMgIhK+IC5/XiFm1hTIdff1ZlYPOBa4m8gY66OJFNv/B/wQWkipdK1bt+azzz4LO4bsgt///vds2bKFs846i5NPPpkjjzwy7Eg11sknn0xiYiIffvhh2FFERGqs0ItroAXwvJklEulJf83dR5vZeuDfZlYLyAGGhBlSqsbGjRt54YUXuPTSS0lIiKsvVqSYP/3pTyQnJ3PppZdSr149vv76a5o3bx52rBrt9NNP19zxIiIhC724dveZwCElrJ8AHFr1iSRM7777bqxoUw9o/Nq2bRs//vgje+21V2xdixYtAFi/fj21atWiYcOGYcWrsYYOHRp2BBGRGs/cPewMgUlNTfUpU6aEHUMqoKCggGnTpnHoofq7Kt65O/n5+dSq9evf6OvWrePAAw/k4osv5s477wwxXc2zYcMGkpKSqF+/fthRRERqBDOb6u6pxdfre3eJKwkJCbHCevPmzSGnkZJMmjSJtWvXYmbbFdYATZo0Yfjw4Zx11lkhpau5HnroIRo3bsymTZvCjiIiUqOFPixEpCRvvPEGl156KdOnT6dly5Zhx5GovLw8Bg4cSKdOnfjkk09K3Oaaa66p4lQCcNxxx1G/fn0aNGgQdhQRkRpNxbXEpdTUVE444QSdnBVnatWqxfvvv09eXt4Ot9u4cSMjRozglFNO4aijjqqidDVb79696d27d9gxRERqPBXXEpfatm3LqFGjwo4hRbg7ZkZycvJOt01ISOCNN95gn332UXFdBbZs2cKCBQs48MADfzNUR0REqpbGXEtcW7p0KSNGjKA6nXi7uxo8eDDXX399mbatX78+3333XZm3l4qZPHkyXbt2LXWojoiIVB0V1xLXxowZw1133cWsWbPCjlKjFRQUULduXWrXrl3m5xROxTd//nyys7MrK5oAnTt35oUXXqBPnz5hRxERqfE0FZ/Etfz8fJYtW0br1q3DjiL8OjSkrJYtW0aHDh0YPnw4t9xySyUmExERqVqaik92S4mJibHCOisrK+Q0NdMXX3zB3LlzAcp9gun+++/PQw89xGWXXVYZ0STqs88+Y/ny5WHHEBERVFzLbuKRRx6hQ4cOKiCqmLtz+eWXM2jQoF0e9/7HP/4xdvVGCd7WrVvp168fDz30UNhRREQEzRYiu4nf//73LFu2jEaNGoUdpUYxM8aOHcuaNWsqNC1iVlYWw4YN46qrriItLS3AhJKYmMiECRPYe++9w44iIiKouJbdRPv27bnjjjvCJQgiCwAAHlhJREFUjlGj5ObmkpSURLNmzWjW7P/bu/Pwqsqz3+PfOwMQI6MMpXVEQKpW0eJwbBWcKji0Hqc6lfr6Fiwepa+CUrGKWF/j4a0CPSLOdUARqUgvsYDgUEBKBRQUJNE2iFawMgQkAQMk9/ljrcRtmkiGvffaK/l9rmtdZq893fFH9rr3s5/9rG5Neqz8/HxWrVpFcXGxmusky8nJ0frWIiIZRNNCJFaWL1/O8OHDtTRfGgwZMoRLLrkkKf+vq5rrwYMHJ6EySfTqq6+yYMGCqMsQEZGQmmuJlXfeeYdp06axbt26qEtp1tydww8/nKOOOippZ8msOrnJwoULKSsrS8pjCtxxxx2MHj066jJERCSkpfgkVioqKigrK6Ndu3ZRlyKNUFRURJ8+fbjnnnsYNWpU1OU0C5s2bWLLli307t076lJERFqUupbi05xriZXs7GzatWuHu/PBBx9w2GGHRV1SszN37lxycnI4/fTTk/7Yhx12GNOnT+fss89O+mO3VJ07d6Zz585RlyEiIiFNC5FYuu222+jXrx+fffZZ1KU0O/fccw8jRoygsrIyJY9/0UUXsc8++2jefBIsW7aMyZMns2PHjqhLERGRkJpriaWrrrqK++67jy5dukRdSrMze/ZsZsyYQVZW6l4e/vGPf3D88cezZMmSlD1HSzBr1iyGDx9OdnZ21KWIiEhIzbXEUs+ePRkyZIiaiiQqLS2loqKCNm3a0KNHj5Q+V7du3cjKymLbtm0pfZ7mbsyYMXz88ce0bt066lJERCSk5lpibdasWQwePFhTDJJg+PDhnHTSSezZsyflz7XvvvuyZMkSzjrrrJQ/V3NmZjr7pYhIhlFzLbH2z3/+kxUrVrBp06aoS4m9QYMGcfHFF1cvmZdqZkZlZSXPPvus5gw3wsaNG7nxxhtZs2ZN1KWIiEgCLcUnsVZRUQGg6SExtXTpUo4//ngmT57ML3/5y6jLiZXFixdz+umnM2fOHPr37x91OSIiLY6W4pNmqaqpLi8vZ8WKFToNdCO8/PLLfPbZZ1x11VVpf5Ny3HHH8cYbb3DyySen9Xmbg5NOOont27dHXYaIiNSgaSHSLAwfPpwzzzyTkpKSqEuJnWeffZaJEydGNm+9f//+ZGVlsXv37kieP85ycnLSNo1HRETqJ/Lm2szamNlbZrbSzFab2dhw/zQzWxFuH5nZiqhrlcx10003MWPGDDp27Bh1KbEzZcoU5s2bF2mT9vbbb9OjRw/eeuutyGqIm2uuuYZp06ZFXYaIiNSQCUMe5cBp7l5qZrnAIjOb7e4/rbqBmd0LaM0uqVPPnj3p2bNn1GXESklJCTk5ObRt25Zu3bpFWkuvXr04+uijNQpbT7t372bx4sUcdNBBUZciIiI1RH4k8+Cz6NLwYm64VX8+bWYGXAKclv7qJG4eeughZs+ezYsvvkjwT0fqUlBQwLRp0ygqKqJNmzaR1tK2bVtmzZoVaQ1xkpuby3vvvRd1GSIiUovIp4UAmFl2OO3jc2Ceu/8t4eqTgX+5+4d13HeomS0zs2UbN25MR7mSwSoqKqioqKCsrCzqUjJW1dzqwYMHc8UVV0TeWCcqKytj3LhxWpqvDhUVFUyaNIkZM2ZEXYqIiNQho5biM7MOwIvA9e6+Ktw3Gfi7u9+7t/trKT5xd41Y18Hdufbaa2nTpg3jx4+v3pdJ/78WLFhA//79mT59OhdddFHU5WScyspKTjjhBPr06cPTTz8ddTkiIi1aXUvxZcTIdRV33wq8AQwEMLMc4AJA39qReqlqFDdu3Mi8efMiriYzVL2BNjNatWpFbm7u1/ZlklNOOYXVq1ersU7wySefcO2117Jjxw6ysrKYO3cuTz31VNRliYhIHSJvrs2sSzhijZnlAWcAheHVZwCF7v7PqOqTeLruuuu47LLL2LlzZ9SlROq9997j2GOPpbAw+JOaMGEC48aNy7imOtHhhx8OwLZt+g4zwNq1a3nyySerV1Lp1KlTRucnItLSRd5cA92B183sXWApwZzrqm82XQpMjawyia2CggIWLlxIXl5e1KVEompkulu3bphZ9enh49KUvfrqq+y///4sX7486lIiMWPGDB566CEgGM3/+OOPGTBgQLRFiYhIvWTCaiHvAsfUcd1V6a1GmosePXpU/1xRUdGiTo8+btw4li9fzrRp0+jatSvLly+PTVNd5bjjjuOnP/0pnTt3jrqUSDz77LOsX7+eIUOGkJWVxX777Rd1SSIiUk+ZMHItkjK33nor55xzTmRnH0yXxN/PzMjKyqK8vLz6cty0a9eORx99tMWs41xSUsKIESPYsGEDAI888ggLFiwgK0sv0SIicaNXbmnW9t9/f3r16tWsT629fv16TjvtNObPnw/AyJEjmTp1Kq1bt464sqZbv349I0aM4Msvv4y6lJTasmULkydPrv4SbseOHXVCHRGRmNKrtzRrw4YNi7qElKlaRq9Tp07s2LGDrVu3AvEcqa5LUVERkyZN4rzzzmt2c47ffPNNFixYwC233MKhhx7KunXr6NKlS9RliYhIE2nkWlqE1atXM3PmzKjLSJqpU6dyxhlnsGfPHtq0acOSJUua5fJ1p556KuvWrWt2jTXAzJkzefDBB9m+fTuAGmsRkWZCzbW0CDfffDM33ngje/bsibqUJqmaW52bm0tlZSVbtmwBmtdodU3dunUD4OOPP464kqYpLy+noKCAFStWADBmzBjef/992rZtG3FlIiKSTGqupUWYPHkyS5cuje081rKyMi699FIee+wxAC688EJee+01unbtGnFl6fHcc8/Ro0cP3nnnnahLabSdO3cyfvz46k9Q9t13X/Lz8yOuSkREki2enYZIAx144IHVP5eVlcWuqdlnn30oKSmpnkLQnEeqazNw4EBGjx7NoYceGnUpDVJYWMjTTz/NXXfdRYcOHXjvvfeqR+JFRKR50si1tCiXX345F1xwQSyW5nvjjTc46aST+OKLLzAz5syZww033BB1WZHo0KEDd955J+3atYu6lAZ57bXXmDRpEsXFxQBqrEVEWgA119KinHrqqQwcODAWzXV+fj6lpaWsX78eaHmj1bV59913ufLKKzN2ab7Kykr+8Ic/MGfOHACGDh3Khx9+GLsRdxERaTyLQ5NRX/369fNly5ZFXYZIo1RWVjJy5Ejatm3L2LFjga+W25PAvHnzuOKKK3jllVfo27dv1OX8m927d9O3b1/69u3LM888E3U5IiKSQma23N371dyvkWtpkebOncvUqVOjLuNrsrKy2LJlS/V61aDR6prOPPNM1q5dm1GN9YYNGxg1ahS7du0iNzeX+fPnM2XKlKjLEhGRiKi5lhbH3bn33nuZMGFC5NNDVq9ezcknn8xHH30EwOOPP87EiRMjrSnT5efn4+68/fbbUZcCwMqVKxk/fjxLliwBoHv37npTJCLSgqm5lhbHzHjqqadYuHBh5E1Qu3bt+Pzzz6vXcM7K0p9kfdx///3069ePVatWRfL8s2fPrh6dHjhwIGvXruWUU06JpBYREcksWopPWqRvfetbAOzZs4etW7fSuXPntD33xIkTWb16NQ8//DAHHHAAa9asUVPdQFdeeSWtW7emT58+aX9ud2fChAmUlJRwxRVXYGZ85zvfSXsdIiKSmXRElxbL3RkwYACDBw9O6/Nu2bKFzz//nF27dgEarW6Mjh07MnTo0LSdFGj79u3cfvvtbN68ufqTj0WLFkX+yYeIiGQeHdWlxTIzhg4dytChQ1M693r9+vWcc845/PWvfwWC017PnDmTVq1apew5W4r58+czcOBAysvLU/o869ato6CggJdffhkI1qtWfiIiUhs119KiDR48mPPPPz+lI5Dt2rXjo48+Yt26dYBGqpOpoqKCTz75hE8//TTpj718+XImTZoEwJFHHklxcXHaP+UQEZH40TrX0uJVVlby8MMPk5eXx89//vOkPOYf//hHnnnmGV544QWysrKoqKggOzs7KY8tX5eq/7fDhg3jpZdeoqioiPz8/KQ/voiIxJvWuRapg5kxffp0XnrppaQ9ZmlpKRs2bGDz5s0AaqxTKDs7m/LycubNm9ekx9m9ezcTJ06ksLAQgIKCAlavXq3GWkREGkTNtbR4ZsaLL77I9OnTG/0YpaWlXH311Tz33HNAMN1k8eLFdOnSJVllyjcoKCioXhKvsUpKSrj99turTy7UoUMH2rdvn6wSRUSkhdBSfCIE86IBtm3bRmlpaYOXVsvLy2PNmjV897vfBTSvOt2GDx/OiSeeyCGHHNKg+xUXFzN9+nRGjRpF165dWblyJQcddFCKqhQRkZZAHYBIaM+ePXz/+99n2LBh9br9okWLGDhwIDt37iQ7O5tFixZx0003pbhKqU2nTp0YOHAgQINWfnnhhRf47W9/W/1l04MPPljL64mISJOouRYJ5eTkcPfdd3PHHXfU6/YVFRUUFxdXN2aaVx29KVOmcOKJJ1avIV6TuzNt2jQWLFgABCPeRUVFGq0WEZGkiby5NrM2ZvaWma00s9VmNjbhuuvNrCjcPy7KOqVluOSSSzj22GNrva6yspJbb72Ve++9F4D+/fvz/vvvR3KWQKndfvvtR6dOndi6dWut1+/atYvRo0fz4IMPAtC6dWudXVFERJIqE+ZclwOnuXupmeUCi8xsNpAH/AQ4yt3LzaxrpFVKi7Fr1y5+85vf0Lt3b37xi19U78/KyqKwsJCuXb/6p5iuMwRK/QwaNIhBgwZ9bd/mzZt54IEHuOWWW2jdujXz58/nwAMPjKhCERFp7iIfufZAaXgxN9wcGAbc4+7l4e0+j6hEaWFyc3NZtmwZa9asobCwkEGDBrFhwwYApk2bxuTJkyOuUPZm06ZNPP/88wC8/vrrjB07tvoMmYcccoim8IiISMpkxLCbmWUDy4GewCR3/5uZ9QZONrP/Br4ERrr70ijrlJbBzJg7dy65ubl8+OGHrFq1iqKiIrp3766R6pi4++67eeeddzj33HO58MILKSwspGfPnlGXJSIiLUDkI9cA7l7h7n2B/YHjzexIgsa/I3AicBPwvNXyNX4zG2pmy8xs2caNG9NatzRfubm5APTq1Yvi4mIGDBgQbUHSILfeeit9+/YlLy8PM1NjLSIiaZNxpz83szFAGXAGwbSQN8L9/wBOdPc6O2id/lxERERE0iFjT39uZl3MrEP4cx5BU10IzAROC/f3BloBm6KqU0RERERkbzJhAml34Mlw3nUW8Ly7zzKzVsDjZrYK2AX83DNtmF1EREREJEHkzbW7vwscU8v+XcCV6a9IRERERKRxIp8WIiIiIiLSXKi5FhERERFJEjXXIiIiIiJJouZaRERERCRJ1FyLiIiIiCSJmmsRERERkSRRcy0iIiIikiRqrkVEREREkkTNtYiIiIhIkqi5FhERERFJEjXXIiIiIiJJouZaRERERCRJ1FyLiIiIiCSJmmsRERERkSRRcy0iIiIikiRqrkVEREREkkTNtYiIiIhIkqi5FhERERFJEjXXIiIiIiJJouZaRERERCRJ1FyLiIiIiCSJmmsRERERkSRRcy0iIiIikiRqrkVEREREkiTy5trM2pjZW2a20sxWm9nYcP8dZvapma0It7OjrlVERERE5JvkRF0AUA6c5u6lZpYLLDKz2eF14939dxHWJiIiIiJSb5E31+7uQGl4MTfcPLqKREREREQaJ/JpIQBmlm1mK4DPgXnu/rfwquvM7F0ze9zMOkZYooiIiIjIXlkwcJwZzKwD8CJwPbAR2EQwiv1boLu7X13LfYYCQ8OLRwKr0lOtpEBngswlfpRdvCm/eFN+8aXs4u0wd29bc2dGNdcAZjYGKEuca21mBwOz3P3Ivdx3mbv3S22FkirKL76UXbwpv3hTfvGl7OKtrvwinxZiZl3CEWvMLA84Ayg0s+4JN/vfaERaRERERDJc5F9oBLoDT5pZNkGz/7y7zzKzp82sL8G0kI+AayKsUURERERkryJvrt39XeCYWvb/rBEP93DTK5IIKb/4UnbxpvziTfnFl7KLt1rzy7g51yIiIiIicRX5nGsRERERkeYiVs21mR1kZgdGXYc0jpl9K+oapHHMrLuZWdR1SOOYWZuoa5DGM7NuUdcgjWNm3zaz1lHXIY3T2GNfLJprM8szs/HAbIIvPw4L98ei/pYuzG8CMMfMxpvZT6KuSerHzFqb2WTgL8DDZnZB1DVJ/ZlZvpk9DIwxs/3CfXqTFBNmtm/Vsc/MHtLfX3yE2d1H0Lc8amaXh/vVt8RAU499cQl5OPBtdz8cuAP4LwB3r4yyKKm3/wN0cfe+wEzgbjPrGXFNUj8/JjiBU29gFnCnmfWOuCaph3C0+k7gh0Bb4FQA1xdtYsHM9geeJjhOn01wkB8XaVFSL2b2HeAJoBXwA+BPwChQ3xIjTTr2ZXRzHZ4WPQsw4N1w97eBl82sT3SVSX2E+WUD7Qn+ceLufwHKCEbS2kdZn9TOzPZJuOgEZ0vF3f8EzAGuqVqbXjJPQn7lwGTgFOBD4Ptmdmh4G41eZygzyw9/3Ak85u6/cvfPgOeBFWZ2VHTVyTdJyG4rMMLdr3P3UqAbMNPMuoS3y+jeq6Uys30TLjbp2JdxAZvZYWb2oJnluXtF+C5vPXCgmS0E/i+wHZhvZmfqIJFZasmvguDfWT8zOzp8cSkEegM9wvsowwxgZr3M7CmCj8B+HJ7UaRew1cy+Hd7sf4BjgSPC+yi7DFEzP6Ctu//d3TcBrwNt0Oh1xkrI76Fw6txO4OWEmxxA8JpZFEV9Urca2f0YyHb3deGUyF8BvwbyCQYGD3f3Sr12Zg4z62lmzwNPmNk54ZukncAXjT32ZVRzbWY/JPgYbChwY8JVU4CbgQ3A8e4+BigAbtBBInN8Q36/B74EfgPMA6YCrwDDQAf6TGBmPyP46PKvwGvATwg+il4EfBc4ysxaufu/CD6evgGUXaaoJb/zgPOrrg/PJ/A+cISZfT+SIqVOdeR3UY2/r1bAR+5eHkGJUodv+ttz953An939AHcfSTD6OTG8Tq+dGSD8FGEC8B5B/3IucBswH+gDHN2YY1/kJ5GpYTNwNUEjNsfMnnH3jwiG5/cFPgWqPvJ8FLjYzPZz981RFCv/ptb8wn+Ut5rZAUCZu28JP7o+EIJ3gHqhidy/gFHu/hIEn0AA3wqzmgdcAGwB3gKeA0aYWa67746sYklUW377hD/nuPseYC7Bx9MnmNmZwGJ3XxBVwfI1NfPrw1f5ZYefAB4D/CPcNwT4W/imSaL1TX975u4fJhzjniAYqMgLG2+JXneCaTx3u3uFmS0DXgy3J4BLCHqbBh37Mmrk2t3XAH93978TjHCODfc78BnQCxhiZlcRHCiWAtuiqVZqqiu/hPlln4bN2ikEI9ufhPdTYx0xd38FeMXMqt5wf0nw/QaA+wmy+rWZjSB4gSlWY505vim/sLHG3T8mGKS4C7iU4M2SZIBa8tvJV/lVhPtOB/YzsxeAywkylojt5W/PzSwr/O//Ah4neFOrxjpDuPunQD/gzITLDwBj3X068AFwS0OPfZE01+FczrpUfeR1M/ADMzsdql9gRhMc5C8GHnT3m6oOHJI+Dc0v4dvRWWZ2MfAYMMnd/5jKOuXffVN27l6e8PfUE1ge7q8gmG82geDTht+5e0Gqa5V/18D8VtS473HAz4Hr3b2vu69KXaVSm6bkB+wPnABMdfdT3f2DFJUptWhCdh3M7E6Chu0Bd9eKLxEws05m1i7hsiW8IbqHYNpqlZkE862PC6+7jwYe+9LeXJvZPcDzZnZMePlrNYTv8LLdfTvBiNkN4e0uAz509wfc/Rx3fy7dtUuT88smmH/Wy92fTXPpLd7esqvaF07Z2Qd4M3wBOosg2gXhygVT0lu5QNPyM7PW7r7U3bu7+zNpLl1o8t8fwDh3P0KDEunXhOx+BJQA09z9GHd/Pq2FCwBmdhvwJsGXve+o2p3whuhpYJeZVS3zvJXg06OdHljY0GNfWptrM/sFcBbBslAXQJ1rPlaG100gGP3cBpxG+GYjTeVKDU3M73SCb1CXpalcSVDf7MJ97cPtHOBvwMnoby9STczvFJRfpJqY34DwC1Wvp69iqdLU7IBcd1+drnrlKxacROt/gCMJsrgd+C8zO9gTVmwJP529CfiVmZ1vZleG92n0muSW6umuZtbJ3beEP3ckWI6mB3AF8Cd3/3PCZP/E+7UnGKY/Cxjm7m+mtFCplfKLryZkdx7Bt9//CPw/d1+Y5tIF5Rd3yi++lF28VeUXTvv4IbCoapTazB4B/urujyfcPitstn9CsNzeqcBod1/U6BpS1VyHzdW9wOEES+n9perdW3jdVcChwG/c/Yua/1DDj12OdH0bOhLKL76SkF0+cKW7P5T24kX5xZzyiy9lF2818nsGmOfuH4T9iAO5BIth3ODuKxLul/QVy1I5LeQWgjm2/wl0BB6uusLdtxGsCWnAReG+r/1i7l6pxixSyi++Gp1d+A6+TAeHSCm/eFN+8aXs4q1mfn+A6ik7OcBugkUXPk28U7Iba0hBcx1O4q/6BuYz7r7G3f+bYLL42ISbriI4a9j3zOwmMxumOYHRU37xlYzs6phDL2mg/OJN+cWXsou3OvK7i4T8PFg+7xBgj7tvNLMLzOzSVNXU5Oa6ZkPlgT0E6zwmngnsWuDacP4S7r6D4B3gpQRn9CtOxbsH+WbKL76UXbwpv3hTfvGl7OKtsfkRrGW9jwWnqh9FcP6U1HD3Rm9AqxqXDcgKfz4W2AjkJVz/CHBz+HN7oBgY2ZQatCm/lrgpu3hvyi/em/KL76bs4r01Mr9bwp9/TXBGzSGprrPRI9dmdj3wlpndaWY/rnFdtru/DbxKsHB6lSJgPVTPX+rj7r9rbA3SeMovvpRdvCm/eFN+8aXs4q0J+X0S/jwXONjdH0l1rY1qrs2sP3AlcDXwPnC7mf3AA5UenJ/9EIKzgfU0s9Hh3JbBwI6qx3H3XU3/FaShlF98Kbt4U37xpvziS9nFWxPz+xLA3d/xNJ16PmfvN/mKhWsBAp2BOeG7hLfD+SyTgaPMrBvwO6AXwcknricYqr+a4FztM5L5C0j9Kb/4UnbxpvziTfnFl7KLtyTl90LaC9/bvBGCBnwkcEDCvouA12vcbiXBu4ojgOGpnMuirf6b8ovvpuzivSm/eG/KL76bsov31hzy29sv+D3gbYIJ4FNrXFcI/Czh8rnAyzVukx31L9iSN+UX303ZxXtTfvHelF98N2UX76255Le3OdebgN8DfYCDzexHCdfdCNxlZm3Cy+uBQjPLteBsOHhwvnaJjvKLL2UXb8ov3pRffCm7eGsW+e319OdmlufuO83sGuAydx+QcN0TBGe7mQ9cDHzh7r9IXbnSUMovvpRdvCm/eFN+8aXs4q055LfX5rr6hmZ5wIvAn9399+G+9sAPgf8A1rj7bakqVJpG+cWXsos35Rdvyi++lF28xTm/ejfXAGZ2FnCnu59gZt8DPvPgNJKtXMvTZDzlF1/KLt6UX7wpv/hSdvEW1/watM61u88FSsysHCioun8m/4LyFeUXX8ou3pRfvCm/+FJ28RbX/Oq9znU4WfxO4LvAdZ6GM9xI8ii/+FJ28ab84k35xZeyi7c459fQaSGDgNfcvTx1JUmqKL/4UnbxpvziTfnFl7KLt7jm16DmWkRERERE6tagOdciIiIiIlI3NdciIiIiIkmi5lpEREREJEnUXIuIiIiIJImaaxERERGRJFFzLSLSDJlZhZmtMLPVZrbSzG4M1439pvscbGaXp6tGEZHmSM21iEjztNPd+7r7EcCZwNnAmL3c52BAzbWISBNonWsRkWbIzErdfd+Eyz2ApUBn4CDgaSA/vPo6d19sZksIzoa2FngS+D1wDzAAaA1McveH0vZLiIjEkJprEZFmqGZzHe4rAfoA24FKd//SzHoBU929n5kNAEa6+7nh7YcCXd39LjNrDbwJXOzua9P6y4iIxEhO1AWIiEjaWPjfXOB+M+sLVAC967j9j4CjzOyi8HJ7oBfByLaIiNRCzbWISAsQTgupAD4nmHv9L+Bogu/efFnX3YDr3X1uWooUEWkG9IVGEZFmzsy6AA8C93swF7A9sMHdK4GfAdnhTbcDbRPuOhcYZma54eP0NrN8RESkThq5FhFpnvLMbAXBFJA9BF9gvC+87gHgBTO7GHgdKAv3vwvsMbOVwBPARIIVRN42MwM2Auen6xcQEYkjfaFRRERERCRJNC1ERERERCRJ1FyLiIiIiCSJmmsRERERkSRRcy0iIiIikiRqrkVEREREkkTNtYiIiIhIkqi5FhERERFJEjXXIiIiIiJJ8v8BntbeUz1IkNQAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Solution\n", "# Define start, end, and cold times\n", "start_time = pd.to_datetime('201910011800')\n", "end_time = pd.to_datetime('201910020000')\n", "warm_time = pd.to_datetime('201910012120')\n", "\n", "# Plot data (add x, y limits)\n", "ax = oct1_temps.plot(style='k:', title='Evening temperatures on October 1, Helsinki-Vantaa',\n", " xlim=[start_time, end_time], ylim=[35.0, 44.0])\n", "ax.set_xlabel('Date')\n", "ax.set_ylabel('Temperature [°F]')\n", "\n", "# Display text on plot\n", "ax.text(warm_time, 43.0, 'Warmest time of the evening ->')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Bar plots in Pandas\n", "\n", "In addition to line plots, there are many other options for plotting in Pandas.\n", "Bar plots are one option, which can be used quite similarly to line plots with the addition of the `kind=bar` parameter.\n", "Note that it is easiest to plot our selected time range for a bar plot by selecting the dates in our data series first, rather than adjusting the plot limits. Pandas sees bar plot data as categorical, so the date range is more difficult to define for x-axis limits. For the y-axis, we can still define its range using the `ylim=[ymin, ymax]` parameter. Similarly, text placement on a bar plot is more difficult, and most easily done using the index value of the bar where the text should be placed." ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0, 42.1, 'Coldest \\ntemp \\nv')" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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hx56KJttthkzZszgIx/5CL/85S8566yzOPjgg9lqq6245ZZbuv+LS5IkaUJ7mh8Cro2In9Da0/w64KKI+DxAZn6oi+sbGNdccw2vfOUrx7zu+9//PldeeSVXXXUVd999NzNnzmSnnXZ62m2+/OUv89znPperr76aq6++mm222QaAu+++m09+8pP89Kc/ZdVVV+Uzn/kMn//85/nABz7AGWecwQ033EBEcP/997PWWmuxxx57MHv2bPbaa6+u/86SJElqmcjQfE77nxEXd2ktQ+uiiy7ibW97G5MnT2b99dfn1a9+NZdeeikzZsxYeJsLL7yQD37wgwDMmDFj4XUXX3wx1113HTvuuCMAjz32GDvssANrrLEGK6+8Mu9+97uZNWsWs2fP7v0vJkmSJGBiHzn3jV4sZNBtvvnmfPe73x3zusyc0GNExJj3fe1rX8t3vvOdRa675JJL+NnPfsYpp5zCsccey/nnn79ki5YkSdIyMZFPz3hDRFwaEXdGxL0RcV9E3NuLxQ2SXXfdlUcffZSvfe1rC49deumlXHDBBey0006ceuqpPPnkk9x1111ceOGFbLfddk+7/0477cS3v/1toLXV4+qrrwZg++235xe/+AU333wzAA899BC//e1vefDBB/nrX//K7rvvzjHHHMOVV14JwOqrr86CBQt68StLkiSpbSJvBDwWOBB4PjAFWK/9v8uViOCMM87gvPPO48UvfjGbb745c+fOZaONNuLNb34zM2bM4BWveAW77rorRx11FBtssMHT7v++972PBx98kBkzZnDUUUctHKqnTJnCN7/5Td72trcxY8YMtt9+e2644QYWLFjA7NmzmTFjBq9+9av5whe+AMCcOXM4+uij2XrrrX0joCRJUo9MZE/zn4ArM/Opbi9m0G200UacdtppY1539NFHc/TRRz/t2PTp07nmmtaXJ66yyiqccsopY95311135dJLL13k+CWXXLLIsR133NGPnJMkSeqxiQzNhwA/jIh5wKMjBzPzi91alCRJkjRIJjI0H07rK7TXApb7s82SJEla/kxkaH5eZo79AcWSJEnScmAibwT8WUTs2vWVDLj777+f4447rt/LkCRJUh9MZGh+D/DTiHhwef7IOYdmSZKk5ddEhub1gBWBNVmOP3Lu0EMP5ZZbbmGrrbbi4IMPBlqfmDFz5kxmzJjBJz7x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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "oct1_afternoon = oct1_temps.loc[oct1_temps.index <= '201910011500']\n", "ax = oct1_afternoon.plot(kind='bar', title='Helsinki-Vantaa temperatures',\n", " ylim=[40, 46])\n", "ax.set_xlabel('Date')\n", "ax.set_ylabel('Temperature [°F]')\n", "ax.text(0, 42.1, 'Coldest \\ntemp \\nv')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You can find more about how to format bar charts on the [Pandas documentation website](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.plot.bar.html)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Saving your plots as image files\n", "\n", "Saving plots created using Pandas can be done in several ways.\n", "The recommendation for use outside of Jupyter notebooks is to use Matplotlib's `plt.savefig()` function.\n", "When using `plt.savefig()`, you simply give a list of commands to generate a plot and include `plt.savefig()` with some parameters as the last command in the Python cell.\n", "The file name is required, and the image format will be determined based on the listed file extension.\n", "\n", "Matplotlib plots can be saved in a number of useful file formats, including PNG, PDF, and EPS.\n", "PNG is a nice format for raster images, and EPS is probably easiest to use for vector graphics.\n", "Let's check out an example and save our lovely bar plot." ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "image/png": "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hx56KJttthkzZszgIx/5CL/85S8566yzOPjgg9lqq6245ZZbuv+LS5IkaUJ7mh8Cro2In9Da0/w64KKI+DxAZn6oi+sbGNdccw2vfOUrx7zu+9//PldeeSVXXXUVd999NzNnzmSnnXZ62m2+/OUv89znPperr76aq6++mm222QaAu+++m09+8pP89Kc/ZdVVV+Uzn/kMn//85/nABz7AGWecwQ033EBEcP/997PWWmuxxx57MHv2bPbaa6+u/86SJElqmcjQfE77nxEXd2ktQ+uiiy7ibW97G5MnT2b99dfn1a9+NZdeeikzZsxYeJsLL7yQD37wgwDMmDFj4XUXX3wx1113HTvuuCMAjz32GDvssANrrLEGK6+8Mu9+97uZNWsWs2fP7v0vJkmSJGBiHzn3jV4sZNBtvvnmfPe73x3zusyc0GNExJj3fe1rX8t3vvOdRa675JJL+NnPfsYpp5zCsccey/nnn79ki5YkSdIyMZFPz3hDRFwaEXdGxL0RcV9E3NuLxQ2SXXfdlUcffZSvfe1rC49deumlXHDBBey0006ceuqpPPnkk9x1111ceOGFbLfddk+7/0477cS3v/1toLXV4+qrrwZg++235xe/+AU333wzAA899BC//e1vefDBB/nrX//K7rvvzjHHHMOVV14JwOqrr86CBQt68StLkiSpbSJvBDwWOBB4PjAFWK/9v8uViOCMM87gvPPO48UvfjGbb745c+fOZaONNuLNb34zM2bM4BWveAW77rorRx11FBtssMHT7v++972PBx98kBkzZnDUUUctHKqnTJnCN7/5Td72trcxY8YMtt9+e2644QYWLFjA7NmzmTFjBq9+9av5whe+AMCcOXM4+uij2XrrrX0joCRJUo9MZE/zn4ArM/Opbi9m0G200UacdtppY1539NFHc/TRRz/t2PTp07nmmtaXJ66yyiqccsopY95311135dJLL13k+CWXXLLIsR133NGPnJMkSeqxiQzNhwA/jIh5wKMjBzPzi91alCRJkjRIJjI0H07rK7TXApb7s82SJEla/kxkaH5eZo79AcWSJEnScmAibwT8WUTs2vWVDLj777+f4447rt/LkCRJUh9MZGh+D/DTiHhwef7IOYdmSZKk5ddEhub1gBWBNVmOP3Lu0EMP5ZZbbmGrrbbi4IMPBlqfmDFz5kxmzJjBJz7x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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "ax = oct1_afternoon.plot(kind='bar', title='Helsinki-Vantaa temperatures',\n", " ylim=[40, 46])\n", "ax.set_xlabel('Date')\n", "ax.set_ylabel('Temperature [°F]')\n", "ax.text(0, 42.1, 'Coldest \\ntemp \\nv')\n", "\n", "plt.savefig('bar-plot.png')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If you refresh your **Files** tab on the left side of the JupyterLab window you should now see `bar-plot.png` listed.\n", "We could try to save another version in higher resolution with a minor change to our plot commands above." ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "image/png": "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hx56KJttthkzZszgIx/5CL/85S8566yzOPjgg9lqq6245ZZbuv+LS5IkaUJ7mh8Cro2In9Da0/w64KKI+DxAZn6oi+sbGNdccw2vfOUrx7zu+9//PldeeSVXXXUVd999NzNnzmSnnXZ62m2+/OUv89znPperr76aq6++mm222QaAu+++m09+8pP89Kc/ZdVVV+Uzn/kMn//85/nABz7AGWecwQ033EBEcP/997PWWmuxxx57MHv2bPbaa6+u/86SJElqmcjQfE77nxEXd2ktQ+uiiy7ibW97G5MnT2b99dfn1a9+NZdeeikzZsxYeJsLL7yQD37wgwDMmDFj4XUXX3wx1113HTvuuCMAjz32GDvssANrrLEGK6+8Mu9+97uZNWsWs2fP7v0vJkmSJGBiHzn3jV4sZNBtvvnmfPe73x3zusyc0GNExJj3fe1rX8t3vvOdRa675JJL+NnPfsYpp5zCsccey/nnn79ki5YkSdIyMZFPz3hDRFwaEXdGxL0RcV9E3NuLxQ2SXXfdlUcffZSvfe1rC49deumlXHDBBey0006ceuqpPPnkk9x1111ceOGFbLfddk+7/0477cS3v/1toLXV4+qrrwZg++235xe/+AU333wzAA899BC//e1vefDBB/nrX//K7rvvzjHHHMOVV14JwOqrr86CBQt68StLkiSpbSJvBDwWOBB4PjAFWK/9v8uViOCMM87gvPPO48UvfjGbb745c+fOZaONNuLNb34zM2bM4BWveAW77rorRx11FBtssMHT7v++972PBx98kBkzZnDUUUctHKqnTJnCN7/5Td72trcxY8YMtt9+e2644QYWLFjA7NmzmTFjBq9+9av5whe+AMCcOXM4+uij2XrrrX0joCRJUo9MZE/zn4ArM/Opbi9m0G200UacdtppY1539NFHc/TRRz/t2PTp07nmmtaXJ66yyiqccsopY95311135dJLL13k+CWXXLLIsR133NGPnJMkSeqxiQzNhwA/jIh5wKMjBzPzi91alCRJkjRIJjI0H07rK7TXApb7s82SJEla/kxkaH5eZo79AcWSJEnScmAibwT8WUTs2vWVDLj777+f4447rt/LkCRJUh9MZGh+D/DTiHhwef7IOYdmSZKk5ddEhub1gBWBNVmOP3Lu0EMP5ZZbbmGrrbbi4IMPBlqfmDFz5kxmzJjBJz7x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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "ax = oct1_afternoon.plot(kind='bar', title='Helsinki-Vantaa temperatures',\n", " ylim=[40, 46])\n", "ax.set_xlabel('Date')\n", "ax.set_ylabel('Temperature [°F]')\n", "ax.text(0, 42.1, 'Coldest \\ntemp \\nv')\n", "\n", "plt.savefig('bar-plot-hi-res.pdf', dpi=600)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Interactive plotting with Pandas-Bokeh (optional)\n", "\n", "One of the cool things in Jupyter notebooks is that our plots need not be static. We can easily create plots that are interactive, allowing us to view data values by mousing over them, or click to enable/disable plotting of some data. There are several ways we can do this, but we'll utilize the [Pandas-Bokeh plotting backend](https://github.com/PatrikHlobil/Pandas-Bokeh), which allows us to create interactive plots with little additional effort.\n", "\n", "To get started, we need to import Pandas-Bokeh and configure our notebook to use it for plotting out Pandas data." ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n", " \n", " Loading BokehJS ...\n", "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "\n", "(function(root) {\n", " function now() {\n", " return new Date();\n", " }\n", "\n", " var force = true;\n", "\n", " if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n", " root._bokeh_onload_callbacks = [];\n", " root._bokeh_is_loading = undefined;\n", " }\n", "\n", " var JS_MIME_TYPE = 'application/javascript';\n", " var HTML_MIME_TYPE = 'text/html';\n", " var EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n", " var CLASS_NAME = 'output_bokeh rendered_html';\n", "\n", " /**\n", " * Render data to the DOM node\n", " */\n", " function render(props, node) {\n", " var script = document.createElement(\"script\");\n", " node.appendChild(script);\n", " }\n", "\n", " /**\n", " * Handle when an output is cleared or removed\n", " */\n", " function handleClearOutput(event, handle) {\n", " var cell = handle.cell;\n", "\n", " var id = cell.output_area._bokeh_element_id;\n", " var server_id = cell.output_area._bokeh_server_id;\n", " // Clean up Bokeh references\n", " if (id != null && id in Bokeh.index) {\n", " Bokeh.index[id].model.document.clear();\n", " delete Bokeh.index[id];\n", " }\n", "\n", " if (server_id !== undefined) {\n", " // Clean up Bokeh references\n", " var cmd = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n", " cell.notebook.kernel.execute(cmd, {\n", " iopub: {\n", " output: function(msg) {\n", " var id = msg.content.text.trim();\n", " if (id in Bokeh.index) {\n", " Bokeh.index[id].model.document.clear();\n", " delete Bokeh.index[id];\n", " }\n", " }\n", " }\n", " });\n", " // Destroy server and session\n", " var cmd = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n", " cell.notebook.kernel.execute(cmd);\n", " }\n", " }\n", "\n", " /**\n", " * Handle when a new output is added\n", " */\n", " function handleAddOutput(event, handle) {\n", " var output_area = handle.output_area;\n", " var output = handle.output;\n", "\n", " // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n", " if ((output.output_type != \"display_data\") || (!output.data.hasOwnProperty(EXEC_MIME_TYPE))) {\n", " return\n", " }\n", "\n", " var toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n", "\n", " if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n", " toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n", " // store reference to embed id on output_area\n", " output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n", " }\n", " if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n", " var bk_div = document.createElement(\"div\");\n", " bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n", " var script_attrs = bk_div.children[0].attributes;\n", " for (var i = 0; i < script_attrs.length; i++) {\n", " toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n", " toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n", " }\n", " // store reference to server id on output_area\n", " output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n", " }\n", " }\n", "\n", " function register_renderer(events, OutputArea) {\n", "\n", " function append_mime(data, metadata, element) {\n", " // create a DOM node to render to\n", " var toinsert = this.create_output_subarea(\n", " metadata,\n", " CLASS_NAME,\n", " EXEC_MIME_TYPE\n", " );\n", " this.keyboard_manager.register_events(toinsert);\n", " // Render to node\n", " var props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n", " render(props, toinsert[toinsert.length - 1]);\n", " element.append(toinsert);\n", " return toinsert\n", " }\n", "\n", " /* Handle when an output is cleared or removed */\n", " events.on('clear_output.CodeCell', handleClearOutput);\n", " events.on('delete.Cell', handleClearOutput);\n", "\n", " /* Handle when a new output is added */\n", " events.on('output_added.OutputArea', handleAddOutput);\n", "\n", " /**\n", " * Register the mime type and append_mime function with output_area\n", " */\n", " OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n", " /* Is output safe? */\n", " safe: true,\n", " /* Index of renderer in `output_area.display_order` */\n", " index: 0\n", " });\n", " }\n", "\n", " // register the mime type if in Jupyter Notebook environment and previously unregistered\n", " if (root.Jupyter !== undefined) {\n", " var events = require('base/js/events');\n", " var OutputArea = require('notebook/js/outputarea').OutputArea;\n", "\n", " if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n", " register_renderer(events, OutputArea);\n", " }\n", " }\n", "\n", " \n", " if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n", " root._bokeh_timeout = Date.now() + 5000;\n", " root._bokeh_failed_load = false;\n", " }\n", "\n", " var NB_LOAD_WARNING = {'data': {'text/html':\n", " \"
\\n\"+\n", " \"

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

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

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

\\n\"+\n \"
    \\n\"+\n \"
  • re-rerun `output_notebook()` to attempt to load from CDN again, or
  • \\n\"+\n \"
  • use INLINE resources instead, as so:
  • \\n\"+\n \"
\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded() {\n var el = document.getElementById(\"1001\");\n if (el != null) {\n el.textContent = \"BokehJS is loading...\";\n }\n if (root.Bokeh !== undefined) {\n if (el != null) {\n el.textContent = \"BokehJS \" + root.Bokeh.version + \" successfully loaded.\";\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(display_loaded, 100)\n }\n }\n\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error() {\n console.error(\"failed to load \" + url);\n }\n\n for (var i = 0; i < css_urls.length; i++) {\n var url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error;\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n const hashes = {\"https://cdn.bokeh.org/bokeh/release/bokeh-2.2.2.min.js\": \"JayppSWSRBsibIZqI8S4vAb1oFgLL0uhNvSn8cmArlOvYOwfFjYeyY5UWwJ+K0SU\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-2.2.2.min.js\": \"G0/Tv/Yy/zEPNsnW0Qif/FOsGesd+KIrKg/QLmvQmReuUW9qmSP7mAmr0VpiUNr3\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-2.2.2.min.js\": \"VLYHEbLQDk5G1+/4ALU0myoJPMEUsngWry2fzYorFOUmarjGRPLLURaeK/on6JqX\"};\n\n for (var i = 0; i < js_urls.length; i++) {\n var url = js_urls[i];\n var element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error;\n element.async = false;\n element.src = url;\n if (url in hashes) {\n element.crossOrigin = \"anonymous\";\n element.integrity = \"sha384-\" + hashes[url];\n }\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n \n var js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-2.2.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-2.2.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-2.2.2.min.js\"];\n var css_urls = [];\n \n\n var inline_js = [\n function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\n function(Bokeh) {\n \n \n }\n ];\n\n function run_inline_js() {\n \n if (root.Bokeh !== undefined || force === true) {\n \n for (var i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n if (force === true) {\n display_loaded();\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n var cell = $(document.getElementById(\"1001\")).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));" }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import pandas_bokeh\n", "\n", "pandas_bokeh.output_notebook()\n", "pd.set_option('plotting.backend', 'pandas_bokeh')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the cell above, we import Pandas-Bokeh, and the configure two options: (1) Setting the output to be displayed in a notebook rather than in a separate window, and (2) setting the plotting backend software to use Pandas-Bokeh rather than Matplotlib.\n", "\n", "Now, we can consider an example plot similar to the one we started with, but with data for three days (September 29-October 1, 2019). Pandas-Bokeh expects a DataFrame as the source for the plot data, so we'll need to create a time slice of the `data` DataFrame containing the desired date range before making the plot. Let's generate the Pandas-Bokeh plot and the see what is different." ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "BokehDeprecationWarning: 'legend' keyword is deprecated, use explicit 'legend_label', 'legend_field', or 'legend_group' keywords instead\n", "BokehDeprecationWarning: 'legend' keyword is deprecated, use explicit 'legend_label', 'legend_field', or 'legend_group' keywords instead\n", "BokehDeprecationWarning: 'legend' keyword is deprecated, use explicit 'legend_label', 'legend_field', or 'legend_group' keywords instead\n" ] }, { "data": { "text/html": [ "\n", "\n", "\n", "\n", "\n", "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "(function(root) {\n", " function embed_document(root) {\n", " \n", " var docs_json = {\"98da7e5d-be7b-461d-b445-e434105b4441\":{\"roots\":{\"references\":[{\"attributes\":{\"below\":[{\"id\":\"1013\"}],\"center\":[{\"id\":\"1016\"},{\"id\":\"1020\"},{\"id\":\"1061\"}],\"left\":[{\"id\":\"1017\"}],\"output_backend\":\"webgl\",\"plot_height\":400,\"renderers\":[{\"id\":\"1039\"},{\"id\":\"1069\"},{\"id\":\"1100\"}],\"title\":{\"id\":\"1003\"},\"toolbar\":{\"id\":\"1028\"},\"x_range\":{\"id\":\"1005\"},\"x_scale\":{\"id\":\"1009\"},\"y_range\":{\"id\":\"1007\"},\"y_scale\":{\"id\":\"1011\"}},\"id\":\"1002\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"days\":[1,4,7,10,13,16,19,22,25,28]},\"id\":\"1051\",\"type\":\"DaysTicker\"},{\"attributes\":{\"axis\":{\"id\":\"1017\"},\"dimension\":1,\"ticker\":null},\"id\":\"1020\",\"type\":\"Grid\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":{\"id\":\"1022\"},\"active_tap\":\"auto\",\"tools\":[{\"id\":\"1021\"},{\"id\":\"1022\"},{\"id\":\"1023\"},{\"id\":\"1024\"},{\"id\":\"1025\"},{\"id\":\"1026\"},{\"id\":\"1063\"},{\"id\":\"1094\"},{\"id\":\"1127\"}]},\"id\":\"1028\",\"type\":\"Toolbar\"},{\"attributes\":{\"source\":{\"id\":\"1035\"}},\"id\":\"1040\",\"type\":\"CDSView\"},{\"attributes\":{\"months\":[0,2,4,6,8,10]},\"id\":\"1055\",\"type\":\"MonthsTicker\"},{\"attributes\":{},\"id\":\"1124\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1059\",\"type\":\"Selection\"},{\"attributes\":{\"label\":{\"value\":\" MAX\"},\"renderers\":[{\"id\":\"1069\"}]},\"id\":\"1093\",\"type\":\"LegendItem\"},{\"attributes\":{\"label\":{\"value\":\" MIN\"},\"renderers\":[{\"id\":\"1100\"}]},\"id\":\"1126\",\"type\":\"LegendItem\"},{\"attributes\":{\"data\":{\"MAX\":{\"__ndarray__\":\"AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAACASkAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAATUAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAACASkAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAACATEAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAEtAAAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAgEhAAAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fw==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[215]},\"MIN\":{\"__ndarray__\":\"AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAASEAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAASkAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAASUAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAASkAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAgEZAAAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAERAAAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fw==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[215]},\"TEMP\":{\"__ndarray__\":\"AAAAAACASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABJQAAAAAAAAElAAAAAAAAASUAAAAAAAABJQAAAAAAAAElAAAAAAACASUAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAACASkAAAAAAAABKQAAAAAAAAEtAAAAAAACASkAAAAAAAABLQAAAAAAAAEtAAAAAAAAAS0AAAAAAAIBLQAAAAAAAgEtAAAAAAACAS0AAAAAAAABLQAAAAAAAgEtAAAAAAACAS0AAAAAAAIBLQAAAAAAAgEtAAAAAAACAS0AAAAAAAIBLQAAAAAAAgExAAAAAAAAATEAAAAAAAIBMQAAAAAAAgExAAAAAAACATEAAAAAAAIBMQAAAAAAAgExAAAAAAACATEAAAAAAAIBNQAAAAAAAgExAAAAAAAAATUAAAAAAAIBMQAAAAAAAgExAAAAAAAAATEAAAAAAAIBLQAAAAAAAgEtAAAAAAACASkAAAAAAAABLQAAAAAAAAEtAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABJQAAAAAAAAElAAAAAAAAASUAAAAAAAABIQAAAAAAAAElAAAAAAACASUAAAAAAAABJQAAAAAAAAElAAAAAAACASUAAAAAAAABJQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAACASUAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEtAAAAAAACASkAAAAAAAABLQAAAAAAAAEtAAAAAAACASkAAAAAAAABLQAAAAAAAgEtAAAAAAAAAS0AAAAAAAIBLQAAAAAAAAEtAAAAAAACAS0AAAAAAAIBLQAAAAAAAgEtAAAAAAACAS0AAAAAAAIBLQAAAAAAAgEtAAAAAAAAATEAAAAAAAIBLQAAAAAAAgEtAAAAAAACATEAAAAAAAIBLQAAAAAAAgEtAAAAAAAAATEAAAAAAAIBLQAAAAAAAgEtAAAAAAAAATEAAAAAAAABLQAAAAAAAAEtAAAAAAACASkAAAAAAAABKQAAAAAAAAEpAAAAAAACASkAAAAAAAABJQAAAAAAAAEpAAAAAAACASkAAAAAAAABKQAAAAAAAAEpAAAAAAACASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAACASkAAAAAAAABLQAAAAAAAAEtAAAAAAAAAS0AAAAAAAABLQAAAAAAAAEtAAAAAAAAAS0AAAAAAAABLQAAAAAAAAEtAAAAAAAAAS0AAAAAAAABLQAAAAAAAAEtAAAAAAACASkAAAAAAAABLQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAgElAAAAAAAAASUAAAAAAAABJQAAAAAAAgEhAAAAAAAAASUAAAAAAAABJQAAAAAAAgEhAAAAAAAAASEAAAAAAAABHQAAAAAAAAEdAAAAAAAAAR0AAAAAAAIBGQAAAAAAAgEZAAAAAAACARkAAAAAAAIBGQAAAAAAAAEZAAAAAAACARkAAAAAAAIBGQAAAAAAAAEdAAAAAAACARkAAAAAAAABHQAAAAAAAgEdAAAAAAAAASEAAAAAAAABIQAAAAAAAgEhAAAAAAAAASEAAAAAAAABIQAAAAAAAAEhAAAAAAAAAR0AAAAAAAIBFQAAAAAAAAEVAAAAAAACARUAAAAAAAIBFQAAAAAAAAEZAAAAAAACARkAAAAAAAIBGQAAAAAAAAEZAAAAAAACARkAAAAAAAIBGQAAAAAAAAEZAAAAAAACARUAAAAAAAIBFQAAAAAAAgEVAAAAAAACARUAAAAAAAIBEQAAAAAAAgERAAAAAAACAREAAAAAAAIBEQAAAAAAAAERAAAAAAACAQ0AAAAAAAIBDQAAAAAAAAENAAAAAAAAAQkAAAAAAAIBCQAAAAAAAAENAAAAAAAAAQkAAAAAAAIBCQAAAAAAAAERAAAAAAACAQ0AAAAAAAIBDQAAAAAAAgERAAAAAAACAREAAAAAAAIBFQAAAAAAAAEVAAAAAAACARUAAAAAAAIBFQA==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[215]},\"__x__values\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[215]},\"__x__values_original\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[215]}},\"selected\":{\"id\":\"1059\"},\"selection_policy\":{\"id\":\"1060\"}},\"id\":\"1035\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#ff7f0e\",\"line_width\":2,\"x\":{\"field\":\"__x__values\"},\"y\":{\"field\":\"MAX\"}},\"id\":\"1068\",\"type\":\"Line\"},{\"attributes\":{\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"__x__values\"},\"y\":{\"field\":\"TEMP\"}},\"id\":\"1037\",\"type\":\"Line\"},{\"attributes\":{\"data\":{\"MAX\":{\"__ndarray__\":\"AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAACASkAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAATUAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAACASkAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAACATEAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAEtAAAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAgEhAAAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fw==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[215]},\"MIN\":{\"__ndarray__\":\"AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAASEAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAASkAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAASUAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAASkAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAgEZAAAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAERAAAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fw==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[215]},\"TEMP\":{\"__ndarray__\":\"AAAAAACASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABJQAAAAAAAAElAAAAAAAAASUAAAAAAAABJQAAAAAAAAElAAAAAAACASUAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAACASkAAAAAAAABKQAAAAAAAAEtAAAAAAACASkAAAAAAAABLQAAAAAAAAEtAAAAAAAAAS0AAAAAAAIBLQAAAAAAAgEtAAAAAAACAS0AAAAAAAABLQAAAAAAAgEtAAAAAAACAS0AAAAAAAIBLQAAAAAAAgEtAAAAAAACAS0AAAAAAAIBLQAAAAAAAgExAAAAAAAAATEAAAAAAAIBMQAAAAAAAgExAAAAAAACATEAAAAAAAIBMQAAAAAAAgExAAAAAAACATEAAAAAAAIBNQAAAAAAAgExAAAAAAAAATUAAAAAAAIBMQAAAAAAAgExAAAAAAAAATEAAAAAAAIBLQAAAAAAAgEtAAAAAAACASkAAAAAAAABLQAAAAAAAAEtAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABJQAAAAAAAAElAAAAAAAAASUAAAAAAAABIQAAAAAAAAElAAAAAAACASUAAAAAAAABJQAAAAAAAAElAAAAAAACASUAAAAAAAABJQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAACASUAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEtAAAAAAACASkAAAAAAAABLQAAAAAAAAEtAAAAAAACASkAAAAAAAABLQAAAAAAAgEtAAAAAAAAAS0AAAAAAAIBLQAAAAAAAAEtAAAAAAACAS0AAAAAAAIBLQAAAAAAAgEtAAAAAAACAS0AAAAAAAIBLQAAAAAAAgEtAAAAAAAAATEAAAAAAAIBLQAAAAAAAgEtAAAAAAACATEAAAAAAAIBLQAAAAAAAgEtAAAAAAAAATEAAAAAAAIBLQAAAAAAAgEtAAAAAAAAATEAAAAAAAABLQAAAAAAAAEtAAAAAAACASkAAAAAAAABKQAAAAAAAAEpAAAAAAACASkAAAAAAAABJQAAAAAAAAEpAAAAAAACASkAAAAAAAABKQAAAAAAAAEpAAAAAAACASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAACASkAAAAAAAABLQAAAAAAAAEtAAAAAAAAAS0AAAAAAAABLQAAAAAAAAEtAAAAAAAAAS0AAAAAAAABLQAAAAAAAAEtAAAAAAAAAS0AAAAAAAABLQAAAAAAAAEtAAAAAAACASkAAAAAAAABLQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAgElAAAAAAAAASUAAAAAAAABJQAAAAAAAgEhAAAAAAAAASUAAAAAAAABJQAAAAAAAgEhAAAAAAAAASEAAAAAAAABHQAAAAAAAAEdAAAAAAAAAR0AAAAAAAIBGQAAAAAAAgEZAAAAAAACARkAAAAAAAIBGQAAAAAAAAEZAAAAAAACARkAAAAAAAIBGQAAAAAAAAEdAAAAAAACARkAAAAAAAABHQAAAAAAAgEdAAAAAAAAASEAAAAAAAABIQAAAAAAAgEhAAAAAAAAASEAAAAAAAABIQAAAAAAAAEhAAAAAAAAAR0AAAAAAAIBFQAAAAAAAAEVAAAAAAACARUAAAAAAAIBFQAAAAAAAAEZAAAAAAACARkAAAAAAAIBGQAAAAAAAAEZAAAAAAACARkAAAAAAAIBGQAAAAAAAAEZAAAAAAACARUAAAAAAAIBFQAAAAAAAgEVAAAAAAACARUAAAAAAAIBEQAAAAAAAgERAAAAAAACAREAAAAAAAIBEQAAAAAAAAERAAAAAAACAQ0AAAAAAAIBDQAAAAAAAAENAAAAAAAAAQkAAAAAAAIBCQAAAAAAAAENAAAAAAAAAQkAAAAAAAIBCQAAAAAAAAERAAAAAAACAQ0AAAAAAAIBDQAAAAAAAgERAAAAAAACAREAAAAAAAIBFQAAAAAAAAEVAAAAAAACARUAAAAAAAIBFQA==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[215]},\"__x__values\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[215]},\"__x__values_original\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[215]}},\"selected\":{\"id\":\"1091\"},\"selection_policy\":{\"id\":\"1092\"}},\"id\":\"1065\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"base\":60,\"mantissas\":[1,2,5,10,15,20,30],\"max_interval\":1800000.0,\"min_interval\":1000.0,\"num_minor_ticks\":0},\"id\":\"1048\",\"type\":\"AdaptiveTicker\"},{\"attributes\":{\"label\":{\"value\":\" TEMP\"},\"renderers\":[{\"id\":\"1039\"}]},\"id\":\"1062\",\"type\":\"LegendItem\"},{\"attributes\":{\"source\":{\"id\":\"1065\"}},\"id\":\"1070\",\"type\":\"CDSView\"},{\"attributes\":{\"data_source\":{\"id\":\"1065\"},\"glyph\":{\"id\":\"1067\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1068\"},\"selection_glyph\":null,\"view\":{\"id\":\"1070\"}},\"id\":\"1069\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"days\":[\"%d %B %Y\"],\"hours\":[\"%H:%M:%S\"],\"milliseconds\":[\"%H:%M:%S.%f\"],\"minutes\":[\"%H:%M:%S\"],\"months\":[\"%d %B %Y\"],\"seconds\":[\"%H:%M:%S\"],\"years\":[\"%d %B %Y\"]},\"id\":\"1129\",\"type\":\"DatetimeTickFormatter\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"1027\",\"type\":\"BoxAnnotation\"},{\"attributes\":{},\"id\":\"1125\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1021\",\"type\":\"PanTool\"},{\"attributes\":{\"months\":[0,6]},\"id\":\"1057\",\"type\":\"MonthsTicker\"},{\"attributes\":{},\"id\":\"1091\",\"type\":\"Selection\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"__x__values\"},\"y\":{\"field\":\"TEMP\"}},\"id\":\"1038\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1022\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"days\":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31]},\"id\":\"1050\",\"type\":\"DaysTicker\"},{\"attributes\":{},\"id\":\"1060\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1018\",\"type\":\"BasicTicker\"},{\"attributes\":{\"overlay\":{\"id\":\"1027\"}},\"id\":\"1023\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"callback\":null,\"formatters\":{\"__x__values_original\":\"datetime\"},\"mode\":\"vline\",\"renderers\":[{\"id\":\"1100\"}],\"tooltips\":[[\"Date\",\"@__x__values_original{%F}\"],[\"MIN\",\"@{MIN}\"]]},\"id\":\"1127\",\"type\":\"HoverTool\"},{\"attributes\":{\"text\":\"Helsinki-Vantaa temperatures\"},\"id\":\"1003\",\"type\":\"Title\"},{\"attributes\":{\"line_color\":\"#2ca02c\",\"line_width\":2,\"x\":{\"field\":\"__x__values\"},\"y\":{\"field\":\"MIN\"}},\"id\":\"1098\",\"type\":\"Line\"},{\"attributes\":{\"days\":[1,15]},\"id\":\"1053\",\"type\":\"DaysTicker\"},{\"attributes\":{\"axis\":{\"id\":\"1013\"},\"ticker\":null},\"id\":\"1016\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1024\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"1092\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"end\":1569974400000.0,\"start\":1569715200000.0},\"id\":\"1005\",\"type\":\"Range1d\"},{\"attributes\":{\"axis_label\":\"Date\",\"formatter\":{\"id\":\"1129\"},\"ticker\":{\"id\":\"1014\"}},\"id\":\"1013\",\"type\":\"DatetimeAxis\"},{\"attributes\":{\"callback\":null,\"formatters\":{\"__x__values_original\":\"datetime\"},\"mode\":\"vline\",\"renderers\":[{\"id\":\"1039\"}],\"tooltips\":[[\"Date\",\"@__x__values_original{%F}\"],[\"TEMP\",\"@{TEMP}\"]]},\"id\":\"1063\",\"type\":\"HoverTool\"},{\"attributes\":{\"days\":[1,8,15,22]},\"id\":\"1052\",\"type\":\"DaysTicker\"},{\"attributes\":{\"end\":60.0,\"start\":35.0},\"id\":\"1007\",\"type\":\"Range1d\"},{\"attributes\":{\"axis_label\":\"Temperature [\\u00b0F]\",\"formatter\":{\"id\":\"1043\"},\"ticker\":{\"id\":\"1018\"}},\"id\":\"1017\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"1025\",\"type\":\"ResetTool\"},{\"attributes\":{\"mantissas\":[1,2,5],\"max_interval\":500.0,\"num_minor_ticks\":0},\"id\":\"1047\",\"type\":\"AdaptiveTicker\"},{\"attributes\":{\"num_minor_ticks\":5,\"tickers\":[{\"id\":\"1047\"},{\"id\":\"1048\"},{\"id\":\"1049\"},{\"id\":\"1050\"},{\"id\":\"1051\"},{\"id\":\"1052\"},{\"id\":\"1053\"},{\"id\":\"1054\"},{\"id\":\"1055\"},{\"id\":\"1056\"},{\"id\":\"1057\"},{\"id\":\"1058\"}]},\"id\":\"1014\",\"type\":\"DatetimeTicker\"},{\"attributes\":{\"line_color\":\"#ff7f0e\",\"line_width\":2,\"x\":{\"field\":\"__x__values\"},\"y\":{\"field\":\"MAX\"}},\"id\":\"1067\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1026\",\"type\":\"HelpTool\"},{\"attributes\":{\"callback\":null,\"formatters\":{\"__x__values_original\":\"datetime\"},\"mode\":\"vline\",\"renderers\":[{\"id\":\"1069\"}],\"tooltips\":[[\"Date\",\"@__x__values_original{%F}\"],[\"MAX\",\"@{MAX}\"]]},\"id\":\"1094\",\"type\":\"HoverTool\"},{\"attributes\":{\"months\":[0,1,2,3,4,5,6,7,8,9,10,11]},\"id\":\"1054\",\"type\":\"MonthsTicker\"},{\"attributes\":{\"data\":{\"MAX\":{\"__ndarray__\":\"AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAACASkAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAATUAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAACASkAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAACATEAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAEtAAAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAgEhAAAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fw==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[215]},\"MIN\":{\"__ndarray__\":\"AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAASEAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAASkAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAASUAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAASkAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAgEZAAAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAERAAAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fw==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[215]},\"TEMP\":{\"__ndarray__\":\"AAAAAACASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABJQAAAAAAAAElAAAAAAAAASUAAAAAAAABJQAAAAAAAAElAAAAAAACASUAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAACASkAAAAAAAABKQAAAAAAAAEtAAAAAAACASkAAAAAAAABLQAAAAAAAAEtAAAAAAAAAS0AAAAAAAIBLQAAAAAAAgEtAAAAAAACAS0AAAAAAAABLQAAAAAAAgEtAAAAAAACAS0AAAAAAAIBLQAAAAAAAgEtAAAAAAACAS0AAAAAAAIBLQAAAAAAAgExAAAAAAAAATEAAAAAAAIBMQAAAAAAAgExAAAAAAACATEAAAAAAAIBMQAAAAAAAgExAAAAAAACATEAAAAAAAIBNQAAAAAAAgExAAAAAAAAATUAAAAAAAIBMQAAAAAAAgExAAAAAAAAATEAAAAAAAIBLQAAAAAAAgEtAAAAAAACASkAAAAAAAABLQAAAAAAAAEtAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABJQAAAAAAAAElAAAAAAAAASUAAAAAAAABIQAAAAAAAAElAAAAAAACASUAAAAAAAABJQAAAAAAAAElAAAAAAACASUAAAAAAAABJQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAACASUAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEtAAAAAAACASkAAAAAAAABLQAAAAAAAAEtAAAAAAACASkAAAAAAAABLQAAAAAAAgEtAAAAAAAAAS0AAAAAAAIBLQAAAAAAAAEtAAAAAAACAS0AAAAAAAIBLQAAAAAAAgEtAAAAAAACAS0AAAAAAAIBLQAAAAAAAgEtAAAAAAAAATEAAAAAAAIBLQAAAAAAAgEtAAAAAAACATEAAAAAAAIBLQAAAAAAAgEtAAAAAAAAATEAAAAAAAIBLQAAAAAAAgEtAAAAAAAAATEAAAAAAAABLQAAAAAAAAEtAAAAAAACASkAAAAAAAABKQAAAAAAAAEpAAAAAAACASkAAAAAAAABJQAAAAAAAAEpAAAAAAACASkAAAAAAAABKQAAAAAAAAEpAAAAAAACASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAACASkAAAAAAAABLQAAAAAAAAEtAAAAAAAAAS0AAAAAAAABLQAAAAAAAAEtAAAAAAAAAS0AAAAAAAABLQAAAAAAAAEtAAAAAAAAAS0AAAAAAAABLQAAAAAAAAEtAAAAAAACASkAAAAAAAABLQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAgElAAAAAAAAASUAAAAAAAABJQAAAAAAAgEhAAAAAAAAASUAAAAAAAABJQAAAAAAAgEhAAAAAAAAASEAAAAAAAABHQAAAAAAAAEdAAAAAAAAAR0AAAAAAAIBGQAAAAAAAgEZAAAAAAACARkAAAAAAAIBGQAAAAAAAAEZAAAAAAACARkAAAAAAAIBGQAAAAAAAAEdAAAAAAACARkAAAAAAAABHQAAAAAAAgEdAAAAAAAAASEAAAAAAAABIQAAAAAAAgEhAAAAAAAAASEAAAAAAAABIQAAAAAAAAEhAAAAAAAAAR0AAAAAAAIBFQAAAAAAAAEVAAAAAAACARUAAAAAAAIBFQAAAAAAAAEZAAAAAAACARkAAAAAAAIBGQAAAAAAAAEZAAAAAAACARkAAAAAAAIBGQAAAAAAAAEZAAAAAAACARUAAAAAAAIBFQAAAAAAAgEVAAAAAAACARUAAAAAAAIBEQAAAAAAAgERAAAAAAACAREAAAAAAAIBEQAAAAAAAAERAAAAAAACAQ0AAAAAAAIBDQAAAAAAAAENAAAAAAAAAQkAAAAAAAIBCQAAAAAAAAENAAAAAAAAAQkAAAAAAAIBCQAAAAAAAAERAAAAAAACAQ0AAAAAAAIBDQAAAAAAAgERAAAAAAACAREAAAAAAAIBFQAAAAAAAAEVAAAAAAACARUAAAAAAAIBFQA==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[215]},\"__x__values\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[215]},\"__x__values_original\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[215]}},\"selected\":{\"id\":\"1124\"},\"selection_policy\":{\"id\":\"1125\"}},\"id\":\"1096\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1058\",\"type\":\"YearsTicker\"},{\"attributes\":{},\"id\":\"1009\",\"type\":\"LinearScale\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#2ca02c\",\"line_width\":2,\"x\":{\"field\":\"__x__values\"},\"y\":{\"field\":\"MIN\"}},\"id\":\"1099\",\"type\":\"Line\"},{\"attributes\":{\"base\":24,\"mantissas\":[1,2,4,6,8,12],\"max_interval\":43200000.0,\"min_interval\":3600000.0,\"num_minor_ticks\":0},\"id\":\"1049\",\"type\":\"AdaptiveTicker\"},{\"attributes\":{},\"id\":\"1011\",\"type\":\"LinearScale\"},{\"attributes\":{\"months\":[0,4,8]},\"id\":\"1056\",\"type\":\"MonthsTicker\"},{\"attributes\":{\"click_policy\":\"hide\",\"items\":[{\"id\":\"1062\"},{\"id\":\"1093\"},{\"id\":\"1126\"}]},\"id\":\"1061\",\"type\":\"Legend\"},{\"attributes\":{\"data_source\":{\"id\":\"1096\"},\"glyph\":{\"id\":\"1098\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1099\"},\"selection_glyph\":null,\"view\":{\"id\":\"1101\"}},\"id\":\"1100\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"source\":{\"id\":\"1096\"}},\"id\":\"1101\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1043\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"data_source\":{\"id\":\"1035\"},\"glyph\":{\"id\":\"1037\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1038\"},\"selection_glyph\":null,\"view\":{\"id\":\"1040\"}},\"id\":\"1039\",\"type\":\"GlyphRenderer\"}],\"root_ids\":[\"1002\"]},\"title\":\"Bokeh Application\",\"version\":\"2.2.2\"}};\n", " var render_items = [{\"docid\":\"98da7e5d-be7b-461d-b445-e434105b4441\",\"root_ids\":[\"1002\"],\"roots\":{\"1002\":\"a12de4f0-2669-444b-bbe1-211310c7c294\"}}];\n", " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", "\n", " }\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " } else {\n", " var attempts = 0;\n", " var timer = setInterval(function(root) {\n", " if (root.Bokeh !== undefined) {\n", " clearInterval(timer);\n", " embed_document(root);\n", " } else {\n", " attempts++;\n", " if (attempts > 100) {\n", " clearInterval(timer);\n", " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n", " }\n", " }\n", " }, 10, root)\n", " }\n", "})(window);" ], "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "1002" } }, "output_type": "display_data" } ], "source": [ "sept29_oct1_df = data.loc[data.index >= '201909290000']\n", "\n", "start_time = pd.to_datetime('201909290000')\n", "end_time = pd.to_datetime('201910020000')\n", "\n", "ax = sept29_oct1_df.plot(title='Helsinki-Vantaa temperatures',\n", " xlabel='Date', ylabel='Temperature [°F]',\n", " xlim=[start_time, end_time], ylim=[35.0, 60.0])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "So now we have a similar plot to those generated previously, but when you move the mouse along the curve you can see the temperature values at each time. We can also hide any of the lines by clicking on them in the legend, as well as use the scroll wheel/trackpad to zoom.\n", "\n", "But we did also have to make a few small changes to generate this plot:\n", "\n", "1. We need to use a DataFrame as the data source for the plot, rather than a Pandas Series. Thus, `data['TEMP'].plot()` will not work with Pandas-Bokeh.\n", "2. The x- and y-axis labels are specified using the `xlabel` and `ylabel` parameters, rather than using `ax.set_xlabel()` or `ax.set_ylabel()`.\n", "3. The line color and plotting of points are not specified using the `style` keyword. Instead, the line colors could be specified using the `color` or `colormap` parameters. Plotting of the points is enabled using the `plot_data_points` parameter (see below). More information about formatting the lines can be found on the [Pandas-Bokeh website](https://github.com/PatrikHlobil/Pandas-Bokeh).\n", "4. We have not included a text label on the plot, as it may not be possible to do so with Pandas-Bokeh.\n", "\n", "But otherwise, we are able to produce these cool interactive plots with minimal effort, and directly within our notebooks!" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "BokehDeprecationWarning: 'legend' keyword is deprecated, use explicit 'legend_label', 'legend_field', or 'legend_group' keywords instead\n", "BokehDeprecationWarning: 'legend' keyword is deprecated, use explicit 'legend_label', 'legend_field', or 'legend_group' keywords instead\n", "BokehDeprecationWarning: 'legend' keyword is deprecated, use explicit 'legend_label', 'legend_field', or 'legend_group' keywords instead\n", "BokehDeprecationWarning: 'legend' keyword is deprecated, use explicit 'legend_label', 'legend_field', or 'legend_group' keywords instead\n", "BokehDeprecationWarning: 'legend' keyword is deprecated, use explicit 'legend_label', 'legend_field', or 'legend_group' keywords instead\n", "BokehDeprecationWarning: 'legend' keyword is deprecated, use explicit 'legend_label', 'legend_field', or 'legend_group' keywords instead\n" ] }, { "data": { "text/html": [ "\n", "\n", "\n", "\n", "\n", "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "(function(root) {\n", " function embed_document(root) {\n", " \n", " var docs_json = {\"aa882360-8b83-43eb-86f0-bf2f16661131\":{\"roots\":{\"references\":[{\"attributes\":{\"below\":[{\"id\":\"1280\"}],\"center\":[{\"id\":\"1283\"},{\"id\":\"1287\"},{\"id\":\"1328\"}],\"left\":[{\"id\":\"1284\"}],\"output_backend\":\"webgl\",\"plot_height\":400,\"renderers\":[{\"id\":\"1306\"},{\"id\":\"1334\"},{\"id\":\"1364\"},{\"id\":\"1395\"},{\"id\":\"1429\"},{\"id\":\"1464\"}],\"title\":{\"id\":\"1270\"},\"toolbar\":{\"id\":\"1295\"},\"x_range\":{\"id\":\"1272\"},\"x_scale\":{\"id\":\"1276\"},\"y_range\":{\"id\":\"1274\"},\"y_scale\":{\"id\":\"1278\"}},\"id\":\"1269\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"axis_label\":\"Date\",\"formatter\":{\"id\":\"1498\"},\"ticker\":{\"id\":\"1281\"}},\"id\":\"1280\",\"type\":\"DatetimeAxis\"},{\"attributes\":{\"mantissas\":[1,2,5],\"max_interval\":500.0,\"num_minor_ticks\":0},\"id\":\"1314\",\"type\":\"AdaptiveTicker\"},{\"attributes\":{\"text\":\"Helsinki-Vantaa temperatures\"},\"id\":\"1270\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"1288\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"1278\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"1327\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"data_source\":{\"id\":\"1330\"},\"glyph\":{\"id\":\"1332\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1333\"},\"selection_glyph\":null,\"view\":{\"id\":\"1335\"}},\"id\":\"1334\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":{\"id\":\"1289\"},\"active_tap\":\"auto\",\"tools\":[{\"id\":\"1288\"},{\"id\":\"1289\"},{\"id\":\"1290\"},{\"id\":\"1291\"},{\"id\":\"1292\"},{\"id\":\"1293\"},{\"id\":\"1358\"},{\"id\":\"1423\"},{\"id\":\"1496\"}]},\"id\":\"1295\",\"type\":\"Toolbar\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"__x__values\"},\"y\":{\"field\":\"TEMP\"}},\"id\":\"1305\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1356\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1310\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"overlay\":{\"id\":\"1294\"}},\"id\":\"1290\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"label\":{\"value\":\" TEMP\"},\"renderers\":[{\"id\":\"1306\"},{\"id\":\"1334\"}]},\"id\":\"1329\",\"type\":\"LegendItem\"},{\"attributes\":{},\"id\":\"1289\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"source\":{\"id\":\"1302\"}},\"id\":\"1307\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1293\",\"type\":\"HelpTool\"},{\"attributes\":{\"days\":[1,4,7,10,13,16,19,22,25,28]},\"id\":\"1318\",\"type\":\"DaysTicker\"},{\"attributes\":{\"line_color\":\"#ff7f0e\",\"line_width\":2,\"x\":{\"field\":\"__x__values\"},\"y\":{\"field\":\"MAX\"}},\"id\":\"1362\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1292\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"1291\",\"type\":\"SaveTool\"},{\"attributes\":{\"callback\":null,\"formatters\":{\"__x__values_original\":\"datetime\"},\"mode\":\"vline\",\"renderers\":[{\"id\":\"1429\"}],\"tooltips\":[[\"Date\",\"@__x__values_original{%F}\"],[\"MIN\",\"@{MIN}\"]]},\"id\":\"1496\",\"type\":\"HoverTool\"},{\"attributes\":{\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"__x__values\"},\"y\":{\"field\":\"TEMP\"}},\"id\":\"1304\",\"type\":\"Line\"},{\"attributes\":{\"base\":60,\"mantissas\":[1,2,5,10,15,20,30],\"max_interval\":1800000.0,\"min_interval\":1000.0,\"num_minor_ticks\":0},\"id\":\"1315\",\"type\":\"AdaptiveTicker\"},{\"attributes\":{},\"id\":\"1457\",\"type\":\"Selection\"},{\"attributes\":{\"base\":24,\"mantissas\":[1,2,4,6,8,12],\"max_interval\":43200000.0,\"min_interval\":3600000.0,\"num_minor_ticks\":0},\"id\":\"1316\",\"type\":\"AdaptiveTicker\"},{\"attributes\":{\"source\":{\"id\":\"1330\"}},\"id\":\"1335\",\"type\":\"CDSView\"},{\"attributes\":{\"data_source\":{\"id\":\"1302\"},\"glyph\":{\"id\":\"1304\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1305\"},\"selection_glyph\":null,\"view\":{\"id\":\"1307\"}},\"id\":\"1306\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"days\":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31]},\"id\":\"1317\",\"type\":\"DaysTicker\"},{\"attributes\":{\"days\":[\"%d %B %Y\"],\"hours\":[\"%H:%M:%S\"],\"milliseconds\":[\"%H:%M:%S.%f\"],\"minutes\":[\"%H:%M:%S\"],\"months\":[\"%d %B %Y\"],\"seconds\":[\"%H:%M:%S\"],\"years\":[\"%d %B %Y\"]},\"id\":\"1498\",\"type\":\"DatetimeTickFormatter\"},{\"attributes\":{\"callback\":null,\"formatters\":{\"__x__values_original\":\"datetime\"},\"mode\":\"vline\",\"renderers\":[{\"id\":\"1306\"}],\"tooltips\":[[\"Date\",\"@__x__values_original{%F}\"],[\"TEMP\",\"@{TEMP}\"]]},\"id\":\"1358\",\"type\":\"HoverTool\"},{\"attributes\":{},\"id\":\"1357\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"num_minor_ticks\":5,\"tickers\":[{\"id\":\"1314\"},{\"id\":\"1315\"},{\"id\":\"1316\"},{\"id\":\"1317\"},{\"id\":\"1318\"},{\"id\":\"1319\"},{\"id\":\"1320\"},{\"id\":\"1321\"},{\"id\":\"1322\"},{\"id\":\"1323\"},{\"id\":\"1324\"},{\"id\":\"1325\"}]},\"id\":\"1281\",\"type\":\"DatetimeTicker\"},{\"attributes\":{\"data\":{\"MAX\":{\"__ndarray__\":\"AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAACASkAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAATUAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAACASkAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAACATEAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAEtAAAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAgEhAAAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fw==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[215]},\"MIN\":{\"__ndarray__\":\"AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAASEAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAASkAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAASUAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAASkAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAgEZAAAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAERAAAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fw==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[215]},\"TEMP\":{\"__ndarray__\":\"AAAAAACASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABJQAAAAAAAAElAAAAAAAAASUAAAAAAAABJQAAAAAAAAElAAAAAAACASUAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAACASkAAAAAAAABKQAAAAAAAAEtAAAAAAACASkAAAAAAAABLQAAAAAAAAEtAAAAAAAAAS0AAAAAAAIBLQAAAAAAAgEtAAAAAAACAS0AAAAAAAABLQAAAAAAAgEtAAAAAAACAS0AAAAAAAIBLQAAAAAAAgEtAAAAAAACAS0AAAAAAAIBLQAAAAAAAgExAAAAAAAAATEAAAAAAAIBMQAAAAAAAgExAAAAAAACATEAAAAAAAIBMQAAAAAAAgExAAAAAAACATEAAAAAAAIBNQAAAAAAAgExAAAAAAAAATUAAAAAAAIBMQAAAAAAAgExAAAAAAAAATEAAAAAAAIBLQAAAAAAAgEtAAAAAAACASkAAAAAAAABLQAAAAAAAAEtAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABJQAAAAAAAAElAAAAAAAAASUAAAAAAAABIQAAAAAAAAElAAAAAAACASUAAAAAAAABJQAAAAAAAAElAAAAAAACASUAAAAAAAABJQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAACASUAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEtAAAAAAACASkAAAAAAAABLQAAAAAAAAEtAAAAAAACASkAAAAAAAABLQAAAAAAAgEtAAAAAAAAAS0AAAAAAAIBLQAAAAAAAAEtAAAAAAACAS0AAAAAAAIBLQAAAAAAAgEtAAAAAAACAS0AAAAAAAIBLQAAAAAAAgEtAAAAAAAAATEAAAAAAAIBLQAAAAAAAgEtAAAAAAACATEAAAAAAAIBLQAAAAAAAgEtAAAAAAAAATEAAAAAAAIBLQAAAAAAAgEtAAAAAAAAATEAAAAAAAABLQAAAAAAAAEtAAAAAAACASkAAAAAAAABKQAAAAAAAAEpAAAAAAACASkAAAAAAAABJQAAAAAAAAEpAAAAAAACASkAAAAAAAABKQAAAAAAAAEpAAAAAAACASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAACASkAAAAAAAABLQAAAAAAAAEtAAAAAAAAAS0AAAAAAAABLQAAAAAAAAEtAAAAAAAAAS0AAAAAAAABLQAAAAAAAAEtAAAAAAAAAS0AAAAAAAABLQAAAAAAAAEtAAAAAAACASkAAAAAAAABLQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAgElAAAAAAAAASUAAAAAAAABJQAAAAAAAgEhAAAAAAAAASUAAAAAAAABJQAAAAAAAgEhAAAAAAAAASEAAAAAAAABHQAAAAAAAAEdAAAAAAAAAR0AAAAAAAIBGQAAAAAAAgEZAAAAAAACARkAAAAAAAIBGQAAAAAAAAEZAAAAAAACARkAAAAAAAIBGQAAAAAAAAEdAAAAAAACARkAAAAAAAABHQAAAAAAAgEdAAAAAAAAASEAAAAAAAABIQAAAAAAAgEhAAAAAAAAASEAAAAAAAABIQAAAAAAAAEhAAAAAAAAAR0AAAAAAAIBFQAAAAAAAAEVAAAAAAACARUAAAAAAAIBFQAAAAAAAAEZAAAAAAACARkAAAAAAAIBGQAAAAAAAAEZAAAAAAACARkAAAAAAAIBGQAAAAAAAAEZAAAAAAACARUAAAAAAAIBFQAAAAAAAgEVAAAAAAACARUAAAAAAAIBEQAAAAAAAgERAAAAAAACAREAAAAAAAIBEQAAAAAAAAERAAAAAAACAQ0AAAAAAAIBDQAAAAAAAAENAAAAAAAAAQkAAAAAAAIBCQAAAAAAAAENAAAAAAAAAQkAAAAAAAIBCQAAAAAAAAERAAAAAAACAQ0AAAAAAAIBDQAAAAAAAgERAAAAAAACAREAAAAAAAIBFQAAAAAAAAEVAAAAAAACARUAAAAAAAIBFQA==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[215]},\"__x__values\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[215]},\"__x__values_original\":{\"__ndarray__\":\"AAAAEqXXdkIAAPg2ptd2QgAAbO6n13ZCAADogKjXdkIAAOClqdd2QgAAVF2r13ZCAADQ76vXdkIAAMgUrdd2QgAAPMyu13ZCAAC4Xq/XdkIAALCDsNd2QgAAJDuy13ZCAACgzbLXdkIAAJjys9d2QgAADKq113ZCAACIPLbXdkIAAIBht9d2QgAA9Bi513ZCAABwq7nXdkIAAGjQutd2QgAA3Ie813ZCAABYGr3XdkIAAFA/vtd2QgAAxPa/13ZCAABAicDXdkIAADiuwdd2QgAArGXD13ZCAAAo+MPXdkIAACAdxdd2QgAAlNTG13ZCAAAQZ8fXdkIAAAiMyNd2QgAAfEPK13ZCAAD41crXdkIAAPD6y9d2QgAAZLLN13ZCAADgRM7XdkIAANhpz9d2QgAATCHR13ZCAADIs9HXdkIAAMDY0td2QgAANJDU13ZCAACwItXXdkIAAKhH1td2QgAAHP/X13ZCAACYkdjXdkIAAJC22dd2QgAABG7b13ZCAACAANzXdkIAAHgl3dd2QgAA7Nze13ZCAABob9/XdkIAAGCU4Nd2QgAA1Evi13ZCAABQ3uLXdkIAAEgD5Nd2QgAAvLrl13ZCAAA4TebXdkIAADBy59d2QgAApCnp13ZCAAAgvOnXdkIAABjh6td2QgAAjJjs13ZCAAAIK+3XdkIAAABQ7td2QgAAdAfw13ZCAADwmfDXdkIAAOi+8dd2QgAAXHbz13ZCAADYCPTXdkIAANAt9dd2QgAAROX213ZCAADAd/fXdkIAALic+Nd2QgAALFT613ZCAACo5vrXdkIAAKAL/Nd2QgAAFMP913ZCAACQVf7XdkIAAIh6/9d2QgAA/DEB2HZCAAB4xAHYdkIAAHDpAth2QgAA5KAE2HZCAABgMwXYdkIAAFhYBth2QgAAzA8I2HZCAABIogjYdkIAAEDHCdh2QgAAtH4L2HZCAAAwEQzYdkIAACg2Ddh2QgAAnO0O2HZCAAAYgA/YdkIAABClENh2QgAAhFwS2HZCAAAA7xLYdkIAAPgTFNh2QgAAbMsV2HZCAADoXRbYdkIAAOCCF9h2QgAAVDoZ2HZCAADQzBnYdkIAAMjxGth2QgAAPKkc2HZCAAC4Ox3YdkIAALBgHth2QgAAJBgg2HZCAACgqiDYdkIAAJjPIdh2QgAADIcj2HZCAACIGSTYdkIAAIA+Jdh2QgAA9PUm2HZCAABwiCfYdkIAAGitKNh2QgAA3GQq2HZCAABY9yrYdkIAAFAcLNh2QgAAxNMt2HZCAABAZi7YdkIAADiLL9h2QgAArEIx2HZCAAAo1THYdkIAACD6Mth2QgAAlLE02HZCAAAQRDXYdkIAAAhpNth2QgAAfCA42HZCAAD4sjjYdkIAAPDXOdh2QgAAZI872HZCAADgITzYdkIAANhGPdh2QgAATP4+2HZCAADIkD/YdkIAAMC1QNh2QgAANG1C2HZCAACw/0LYdkIAAKgkRNh2QgAAHNxF2HZCAACYbkbYdkIAAJCTR9h2QgAABEtJ2HZCAACA3UnYdkIAAHgCS9h2QgAAaExN2HZCAABgcU7YdkIAANQoUNh2QgAAULtQ2HZCAABI4FHYdkIAALyXU9h2QgAAOCpU2HZCAAAwT1XYdkIAAKQGV9h2QgAAIJlX2HZCAAAYvljYdkIAAIx1Wth2QgAACAhb2HZCAAAALVzYdkIAAHTkXdh2QgAA8HZe2HZCAADom1/YdkIAAFxTYdh2QgAA2OVh2HZCAADQCmPYdkIAAETCZNh2QgAAwFRl2HZCAAC4eWbYdkIAACwxaNh2QgAAqMNo2HZCAACg6GnYdkIAABSga9h2QgAAkDJs2HZCAACIV23YdkIAAPwOb9h2QgAAeKFv2HZCAABwxnDYdkIAAOR9cth2QgAAYBBz2HZCAABYNXTYdkIAAMzsddh2QgAASH922HZCAABApHfYdkIAALRbedh2QgAAMO552HZCAAAoE3vYdkIAAJzKfNh2QgAAGF192HZCAAAQgn7YdkIAAIQ5gNh2QgAAAMyA2HZCAAD48IHYdkIAAGyog9h2QgAA6DqE2HZCAADgX4XYdkIAAFQXh9h2QgAA0KmH2HZCAADIzojYdkIAADyGith2QgAAuBiL2HZCAACwPYzYdkIAACT1jdh2QgAAoIeO2HZCAACYrI/YdkIAAAxkkdh2QgAAiPaR2HZCAACAG5PYdkIAAPTSlNh2QgAAcGWV2HZCAABoipbYdkIAANxBmNh2QgAAWNSY2HZCAABQ+ZnYdkIAAMSwm9h2Qg==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[215]}},\"selected\":{\"id\":\"1326\"},\"selection_policy\":{\"id\":\"1327\"}},\"id\":\"1302\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1494\",\"type\":\"Selection\"},{\"attributes\":{\"months\":[0,2,4,6,8,10]},\"id\":\"1322\",\"type\":\"MonthsTicker\"},{\"attributes\":{\"axis\":{\"id\":\"1280\"},\"ticker\":null},\"id\":\"1283\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1458\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1325\",\"type\":\"YearsTicker\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#ff7f0e\",\"line_width\":2,\"x\":{\"field\":\"__x__values\"},\"y\":{\"field\":\"MAX\"}},\"id\":\"1363\",\"type\":\"Line\"},{\"attributes\":{\"months\":[0,4,8]},\"id\":\"1323\",\"type\":\"MonthsTicker\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"1294\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"data\":{\"MAX\":{\"__ndarray__\":\"AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAACASkAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAATUAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAACASkAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAACATEAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAEtAAAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAgEhAAAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fw==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[215]},\"MIN\":{\"__ndarray__\":\"AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAASEAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAASkAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAASUAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAASkAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAgEZAAAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAERAAAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fw==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[215]},\"TEMP\":{\"__ndarray__\":\"AAAAAACASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABJQAAAAAAAAElAAAAAAAAASUAAAAAAAABJQAAAAAAAAElAAAAAAACASUAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAACASkAAAAAAAABKQAAAAAAAAEtAAAAAAACASkAAAAAAAABLQAAAAAAAAEtAAAAAAAAAS0AAAAAAAIBLQAAAAAAAgEtAAAAAAACAS0AAAAAAAABLQAAAAAAAgEtAAAAAAACAS0AAAAAAAIBLQAAAAAAAgEtAAAAAAACAS0AAAAAAAIBLQAAAAAAAgExAAAAAAAAATEAAAAAAAIBMQAAAAAAAgExAAAAAAACATEAAAAAAAIBMQAAAAAAAgExAAAAAAACATEAAAAAAAIBNQAAAAAAAgExAAAAAAAAATUAAAAAAAIBMQAAAAAAAgExAAAAAAAAATEAAAAAAAIBLQAAAAAAAgEtAAAAAAACASkAAAAAAAABLQAAAAAAAAEtAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABJQAAAAAAAAElAAAAAAAAASUAAAAAAAABIQAAAAAAAAElAAAAAAACASUAAAAAAAABJQAAAAAAAAElAAAAAAACASUAAAAAAAABJQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAACASUAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEtAAAAAAACASkAAAAAAAABLQAAAAAAAAEtAAAAAAACASkAAAAAAAABLQAAAAAAAgEtAAAAAAAAAS0AAAAAAAIBLQAAAAAAAAEtAAAAAAACAS0AAAAAAAIBLQAAAAAAAgEtAAAAAAACAS0AAAAAAAIBLQAAAAAAAgEtAAAAAAAAATEAAAAAAAIBLQAAAAAAAgEtAAAAAAACATEAAAAAAAIBLQAAAAAAAgEtAAAAAAAAATEAAAAAAAIBLQAAAAAAAgEtAAAAAAAAATEAAAAAAAABLQAAAAAAAAEtAAAAAAACASkAAAAAAAABKQAAAAAAAAEpAAAAAAACASkAAAAAAAABJQAAAAAAAAEpAAAAAAACASkAAAAAAAABKQAAAAAAAAEpAAAAAAACASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAACASkAAAAAAAABLQAAAAAAAAEtAAAAAAAAAS0AAAAAAAABLQAAAAAAAAEtAAAAAAAAAS0AAAAAAAABLQAAAAAAAAEtAAAAAAAAAS0AAAAAAAABLQAAAAAAAAEtAAAAAAACASkAAAAAAAABLQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAgElAAAAAAAAASUAAAAAAAABJQAAAAAAAgEhAAAAAAAAASUAAAAAAAABJQAAAAAAAgEhAAAAAAAAASEAAAAAAAABHQAAAAAAAAEdAAAAAAAAAR0AAAAAAAIBGQAAAAAAAgEZAAAAAAACARkAAAAAAAIBGQAAAAAAAAEZAAAAAAACARkAAAAAAAIBGQAAAAAAAAEdAAAAAAACARkAAAAAAAABHQAAAAAAAgEdAAAAAAAAASEAAAAAAAABIQAAAAAAAgEhAAAAAAAAASEAAAAAAAABIQAAAAAAAAEhAAAAAAAAAR0AAAAAAAIBFQAAAAAAAAEVAAAAAAACARUAAAAAAAIBFQAAAAAAAAEZAAAAAAACARkAAAAAAAIBGQAAAAAAAAEZAAAAAAACARkAAAAAAAIBGQAAAAAAAAEZAAAAAAACARUAAAAAAAIBFQAAAAAAAgEVAAAAAAACARUAAAAAAAIBEQAAAAAAAgERAAAAAAACAREAAAAAAAIBEQAAAAAAAAERAAAAAAACAQ0AAAAAAAIBDQAAAAAAAAENAAAAAAAAAQkAAAAAAAIBCQAAAAAAAAENAAAAAAAAAQkAAAAAAAIBCQAAAAAAAAERAAAAAAACAQ0AAAAAAAIBDQAAAAAAAgERAAAAAAACAREAAAAAAAIBFQAAAAAAAAEVAAAAAAACARUAAAAAAAIBFQA==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[215]},\"__x__values\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[215]},\"__x__values_original\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[215]}},\"selected\":{\"id\":\"1388\"},\"selection_policy\":{\"id\":\"1389\"}},\"id\":\"1360\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"data_source\":{\"id\":\"1360\"},\"glyph\":{\"id\":\"1362\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1363\"},\"selection_glyph\":null,\"view\":{\"id\":\"1365\"}},\"id\":\"1364\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"1326\",\"type\":\"Selection\"},{\"attributes\":{\"axis_label\":\"Temperature [\\u00b0F]\",\"formatter\":{\"id\":\"1310\"},\"ticker\":{\"id\":\"1285\"}},\"id\":\"1284\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"1388\",\"type\":\"Selection\"},{\"attributes\":{\"axis\":{\"id\":\"1284\"},\"dimension\":1,\"ticker\":null},\"id\":\"1287\",\"type\":\"Grid\"},{\"attributes\":{\"fill_color\":{\"value\":\"#1f77b4\"},\"line_color\":{\"value\":\"#1f77b4\"},\"size\":{\"units\":\"screen\",\"value\":5},\"x\":{\"field\":\"__x__values\"},\"y\":{\"field\":\"TEMP\"}},\"id\":\"1332\",\"type\":\"Scatter\"},{\"attributes\":{\"source\":{\"id\":\"1360\"}},\"id\":\"1365\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1495\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"months\":[0,6]},\"id\":\"1324\",\"type\":\"MonthsTicker\"},{\"attributes\":{\"days\":[1,15]},\"id\":\"1320\",\"type\":\"DaysTicker\"},{\"attributes\":{\"data\":{\"MAX\":{\"__ndarray__\":\"AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAACASkAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAATUAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAACASkAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAACATEAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAEtAAAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAgEhAAAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fw==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[215]},\"MIN\":{\"__ndarray__\":\"AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAASEAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAASkAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAASUAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAASkAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAgEZAAAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAERAAAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fw==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[215]},\"TEMP\":{\"__ndarray__\":\"AAAAAACASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABJQAAAAAAAAElAAAAAAAAASUAAAAAAAABJQAAAAAAAAElAAAAAAACASUAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAACASkAAAAAAAABKQAAAAAAAAEtAAAAAAACASkAAAAAAAABLQAAAAAAAAEtAAAAAAAAAS0AAAAAAAIBLQAAAAAAAgEtAAAAAAACAS0AAAAAAAABLQAAAAAAAgEtAAAAAAACAS0AAAAAAAIBLQAAAAAAAgEtAAAAAAACAS0AAAAAAAIBLQAAAAAAAgExAAAAAAAAATEAAAAAAAIBMQAAAAAAAgExAAAAAAACATEAAAAAAAIBMQAAAAAAAgExAAAAAAACATEAAAAAAAIBNQAAAAAAAgExAAAAAAAAATUAAAAAAAIBMQAAAAAAAgExAAAAAAAAATEAAAAAAAIBLQAAAAAAAgEtAAAAAAACASkAAAAAAAABLQAAAAAAAAEtAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABJQAAAAAAAAElAAAAAAAAASUAAAAAAAABIQAAAAAAAAElAAAAAAACASUAAAAAAAABJQAAAAAAAAElAAAAAAACASUAAAAAAAABJQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAACASUAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEtAAAAAAACASkAAAAAAAABLQAAAAAAAAEtAAAAAAACASkAAAAAAAABLQAAAAAAAgEtAAAAAAAAAS0AAAAAAAIBLQAAAAAAAAEtAAAAAAACAS0AAAAAAAIBLQAAAAAAAgEtAAAAAAACAS0AAAAAAAIBLQAAAAAAAgEtAAAAAAAAATEAAAAAAAIBLQAAAAAAAgEtAAAAAAACATEAAAAAAAIBLQAAAAAAAgEtAAAAAAAAATEAAAAAAAIBLQAAAAAAAgEtAAAAAAAAATEAAAAAAAABLQAAAAAAAAEtAAAAAAACASkAAAAAAAABKQAAAAAAAAEpAAAAAAACASkAAAAAAAABJQAAAAAAAAEpAAAAAAACASkAAAAAAAABKQAAAAAAAAEpAAAAAAACASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAACASkAAAAAAAABLQAAAAAAAAEtAAAAAAAAAS0AAAAAAAABLQAAAAAAAAEtAAAAAAAAAS0AAAAAAAABLQAAAAAAAAEtAAAAAAAAAS0AAAAAAAABLQAAAAAAAAEtAAAAAAACASkAAAAAAAABLQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAgElAAAAAAAAASUAAAAAAAABJQAAAAAAAgEhAAAAAAAAASUAAAAAAAABJQAAAAAAAgEhAAAAAAAAASEAAAAAAAABHQAAAAAAAAEdAAAAAAAAAR0AAAAAAAIBGQAAAAAAAgEZAAAAAAACARkAAAAAAAIBGQAAAAAAAAEZAAAAAAACARkAAAAAAAIBGQAAAAAAAAEdAAAAAAACARkAAAAAAAABHQAAAAAAAgEdAAAAAAAAASEAAAAAAAABIQAAAAAAAgEhAAAAAAAAASEAAAAAAAABIQAAAAAAAAEhAAAAAAAAAR0AAAAAAAIBFQAAAAAAAAEVAAAAAAACARUAAAAAAAIBFQAAAAAAAAEZAAAAAAACARkAAAAAAAIBGQAAAAAAAAEZAAAAAAACARkAAAAAAAIBGQAAAAAAAAEZAAAAAAACARUAAAAAAAIBFQAAAAAAAgEVAAAAAAACARUAAAAAAAIBEQAAAAAAAgERAAAAAAACAREAAAAAAAIBEQAAAAAAAAERAAAAAAACAQ0AAAAAAAIBDQAAAAAAAAENAAAAAAAAAQkAAAAAAAIBCQAAAAAAAAENAAAAAAAAAQkAAAAAAAIBCQAAAAAAAAERAAAAAAACAQ0AAAAAAAIBDQAAAAAAAgERAAAAAAACAREAAAAAAAIBFQAAAAAAAAEVAAAAAAACARUAAAAAAAIBFQA==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[215]},\"__x__values\":{\"__ndarray__\":\"AAAAEqXXdkIAAPg2ptd2QgAAbO6n13ZCAADogKjXdkIAAOClqdd2QgAAVF2r13ZCAADQ76vXdkIAAMgUrdd2QgAAPMyu13ZCAAC4Xq/XdkIAALCDsNd2QgAAJDuy13ZCAACgzbLXdkIAAJjys9d2QgAADKq113ZCAACIPLbXdkIAAIBht9d2QgAA9Bi513ZCAABwq7nXdkIAAGjQutd2QgAA3Ie813ZCAABYGr3XdkIAAFA/vtd2QgAAxPa/13ZCAABAicDXdkIAADiuwdd2QgAArGXD13ZCAAAo+MPXdkIAACAdxdd2QgAAlNTG13ZCAAAQZ8fXdkIAAAiMyNd2QgAAfEPK13ZCAAD41crXdkIAAPD6y9d2QgAAZLLN13ZCAADgRM7XdkIAANhpz9d2QgAATCHR13ZCAADIs9HXdkIAAMDY0td2QgAANJDU13ZCAACwItXXdkIAAKhH1td2QgAAHP/X13ZCAACYkdjXdkIAAJC22dd2QgAABG7b13ZCAACAANzXdkIAAHgl3dd2QgAA7Nze13ZCAABob9/XdkIAAGCU4Nd2QgAA1Evi13ZCAABQ3uLXdkIAAEgD5Nd2QgAAvLrl13ZCAAA4TebXdkIAADBy59d2QgAApCnp13ZCAAAgvOnXdkIAABjh6td2QgAAjJjs13ZCAAAIK+3XdkIAAABQ7td2QgAAdAfw13ZCAADwmfDXdkIAAOi+8dd2QgAAXHbz13ZCAADYCPTXdkIAANAt9dd2QgAAROX213ZCAADAd/fXdkIAALic+Nd2QgAALFT613ZCAACo5vrXdkIAAKAL/Nd2QgAAFMP913ZCAACQVf7XdkIAAIh6/9d2QgAA/DEB2HZCAAB4xAHYdkIAAHDpAth2QgAA5KAE2HZCAABgMwXYdkIAAFhYBth2QgAAzA8I2HZCAABIogjYdkIAAEDHCdh2QgAAtH4L2HZCAAAwEQzYdkIAACg2Ddh2QgAAnO0O2HZCAAAYgA/YdkIAABClENh2QgAAhFwS2HZCAAAA7xLYdkIAAPgTFNh2QgAAbMsV2HZCAADoXRbYdkIAAOCCF9h2QgAAVDoZ2HZCAADQzBnYdkIAAMjxGth2QgAAPKkc2HZCAAC4Ox3YdkIAALBgHth2QgAAJBgg2HZCAACgqiDYdkIAAJjPIdh2QgAADIcj2HZCAACIGSTYdkIAAIA+Jdh2QgAA9PUm2HZCAABwiCfYdkIAAGitKNh2QgAA3GQq2HZCAABY9yrYdkIAAFAcLNh2QgAAxNMt2HZCAABAZi7YdkIAADiLL9h2QgAArEIx2HZCAAAo1THYdkIAACD6Mth2QgAAlLE02HZCAAAQRDXYdkIAAAhpNth2QgAAfCA42HZCAAD4sjjYdkIAAPDXOdh2QgAAZI872HZCAADgITzYdkIAANhGPdh2QgAATP4+2HZCAADIkD/YdkIAAMC1QNh2QgAANG1C2HZCAACw/0LYdkIAAKgkRNh2QgAAHNxF2HZCAACYbkbYdkIAAJCTR9h2QgAABEtJ2HZCAACA3UnYdkIAAHgCS9h2QgAAaExN2HZCAABgcU7YdkIAANQoUNh2QgAAULtQ2HZCAABI4FHYdkIAALyXU9h2QgAAOCpU2HZCAAAwT1XYdkIAAKQGV9h2QgAAIJlX2HZCAAAYvljYdkIAAIx1Wth2QgAACAhb2HZCAAAALVzYdkIAAHTkXdh2QgAA8HZe2HZCAADom1/YdkIAAFxTYdh2QgAA2OVh2HZCAADQCmPYdkIAAETCZNh2QgAAwFRl2HZCAAC4eWbYdkIAACwxaNh2QgAAqMNo2HZCAACg6GnYdkIAABSga9h2QgAAkDJs2HZCAACIV23YdkIAAPwOb9h2QgAAeKFv2HZCAABwxnDYdkIAAOR9cth2QgAAYBBz2HZCAABYNXTYdkIAAMzsddh2QgAASH922HZCAABApHfYdkIAALRbedh2QgAAMO552HZCAAAoE3vYdkIAAJzKfNh2QgAAGF192HZCAAAQgn7YdkIAAIQ5gNh2QgAAAMyA2HZCAAD48IHYdkIAAGyog9h2QgAA6DqE2HZCAADgX4XYdkIAAFQXh9h2QgAA0KmH2HZCAADIzojYdkIAADyGith2QgAAuBiL2HZCAACwPYzYdkIAACT1jdh2QgAAoIeO2HZCAACYrI/YdkIAAAxkkdh2QgAAiPaR2HZCAACAG5PYdkIAAPTSlNh2QgAAcGWV2HZCAABoipbYdkIAANxBmNh2QgAAWNSY2HZCAABQ+ZnYdkIAAMSwm9h2Qg==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[215]},\"__x__values_original\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[215]}},\"selected\":{\"id\":\"1356\"},\"selection_policy\":{\"id\":\"1357\"}},\"id\":\"1330\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"months\":[0,1,2,3,4,5,6,7,8,9,10,11]},\"id\":\"1321\",\"type\":\"MonthsTicker\"},{\"attributes\":{},\"id\":\"1389\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"days\":[1,8,15,22]},\"id\":\"1319\",\"type\":\"DaysTicker\"},{\"attributes\":{\"click_policy\":\"hide\",\"items\":[{\"id\":\"1329\"},{\"id\":\"1390\"},{\"id\":\"1459\"}]},\"id\":\"1328\",\"type\":\"Legend\"},{\"attributes\":{\"callback\":null,\"formatters\":{\"__x__values_original\":\"datetime\"},\"mode\":\"vline\",\"renderers\":[{\"id\":\"1364\"}],\"tooltips\":[[\"Date\",\"@__x__values_original{%F}\"],[\"MAX\",\"@{MAX}\"]]},\"id\":\"1423\",\"type\":\"HoverTool\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"size\":{\"units\":\"screen\",\"value\":5},\"x\":{\"field\":\"__x__values\"},\"y\":{\"field\":\"TEMP\"}},\"id\":\"1333\",\"type\":\"Scatter\"},{\"attributes\":{\"fill_color\":{\"value\":\"#ff7f0e\"},\"line_color\":{\"value\":\"#ff7f0e\"},\"size\":{\"units\":\"screen\",\"value\":5},\"x\":{\"field\":\"__x__values\"},\"y\":{\"field\":\"MAX\"}},\"id\":\"1393\",\"type\":\"Scatter\"},{\"attributes\":{\"data\":{\"MAX\":{\"__ndarray__\":\"AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAACASkAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAATUAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAACASkAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAACATEAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAEtAAAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAgEhAAAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fw==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[215]},\"MIN\":{\"__ndarray__\":\"AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAASEAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAASkAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAASUAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAASkAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAgEZAAAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAERAAAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fw==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[215]},\"TEMP\":{\"__ndarray__\":\"AAAAAACASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABJQAAAAAAAAElAAAAAAAAASUAAAAAAAABJQAAAAAAAAElAAAAAAACASUAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAACASkAAAAAAAABKQAAAAAAAAEtAAAAAAACASkAAAAAAAABLQAAAAAAAAEtAAAAAAAAAS0AAAAAAAIBLQAAAAAAAgEtAAAAAAACAS0AAAAAAAABLQAAAAAAAgEtAAAAAAACAS0AAAAAAAIBLQAAAAAAAgEtAAAAAAACAS0AAAAAAAIBLQAAAAAAAgExAAAAAAAAATEAAAAAAAIBMQAAAAAAAgExAAAAAAACATEAAAAAAAIBMQAAAAAAAgExAAAAAAACATEAAAAAAAIBNQAAAAAAAgExAAAAAAAAATUAAAAAAAIBMQAAAAAAAgExAAAAAAAAATEAAAAAAAIBLQAAAAAAAgEtAAAAAAACASkAAAAAAAABLQAAAAAAAAEtAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABJQAAAAAAAAElAAAAAAAAASUAAAAAAAABIQAAAAAAAAElAAAAAAACASUAAAAAAAABJQAAAAAAAAElAAAAAAACASUAAAAAAAABJQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAACASUAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEtAAAAAAACASkAAAAAAAABLQAAAAAAAAEtAAAAAAACASkAAAAAAAABLQAAAAAAAgEtAAAAAAAAAS0AAAAAAAIBLQAAAAAAAAEtAAAAAAACAS0AAAAAAAIBLQAAAAAAAgEtAAAAAAACAS0AAAAAAAIBLQAAAAAAAgEtAAAAAAAAATEAAAAAAAIBLQAAAAAAAgEtAAAAAAACATEAAAAAAAIBLQAAAAAAAgEtAAAAAAAAATEAAAAAAAIBLQAAAAAAAgEtAAAAAAAAATEAAAAAAAABLQAAAAAAAAEtAAAAAAACASkAAAAAAAABKQAAAAAAAAEpAAAAAAACASkAAAAAAAABJQAAAAAAAAEpAAAAAAACASkAAAAAAAABKQAAAAAAAAEpAAAAAAACASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAACASkAAAAAAAABLQAAAAAAAAEtAAAAAAAAAS0AAAAAAAABLQAAAAAAAAEtAAAAAAAAAS0AAAAAAAABLQAAAAAAAAEtAAAAAAAAAS0AAAAAAAABLQAAAAAAAAEtAAAAAAACASkAAAAAAAABLQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAgElAAAAAAAAASUAAAAAAAABJQAAAAAAAgEhAAAAAAAAASUAAAAAAAABJQAAAAAAAgEhAAAAAAAAASEAAAAAAAABHQAAAAAAAAEdAAAAAAAAAR0AAAAAAAIBGQAAAAAAAgEZAAAAAAACARkAAAAAAAIBGQAAAAAAAAEZAAAAAAACARkAAAAAAAIBGQAAAAAAAAEdAAAAAAACARkAAAAAAAABHQAAAAAAAgEdAAAAAAAAASEAAAAAAAABIQAAAAAAAgEhAAAAAAAAASEAAAAAAAABIQAAAAAAAAEhAAAAAAAAAR0AAAAAAAIBFQAAAAAAAAEVAAAAAAACARUAAAAAAAIBFQAAAAAAAAEZAAAAAAACARkAAAAAAAIBGQAAAAAAAAEZAAAAAAACARkAAAAAAAIBGQAAAAAAAAEZAAAAAAACARUAAAAAAAIBFQAAAAAAAgEVAAAAAAACARUAAAAAAAIBEQAAAAAAAgERAAAAAAACAREAAAAAAAIBEQAAAAAAAAERAAAAAAACAQ0AAAAAAAIBDQAAAAAAAAENAAAAAAAAAQkAAAAAAAIBCQAAAAAAAAENAAAAAAAAAQkAAAAAAAIBCQAAAAAAAAERAAAAAAACAQ0AAAAAAAIBDQAAAAAAAgERAAAAAAACAREAAAAAAAIBFQAAAAAAAAEVAAAAAAACARUAAAAAAAIBFQA==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[215]},\"__x__values\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[215]},\"__x__values_original\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[215]}},\"selected\":{\"id\":\"1421\"},\"selection_policy\":{\"id\":\"1422\"}},\"id\":\"1391\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#ff7f0e\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#ff7f0e\"},\"size\":{\"units\":\"screen\",\"value\":5},\"x\":{\"field\":\"__x__values\"},\"y\":{\"field\":\"MAX\"}},\"id\":\"1394\",\"type\":\"Scatter\"},{\"attributes\":{},\"id\":\"1285\",\"type\":\"BasicTicker\"},{\"attributes\":{\"data_source\":{\"id\":\"1391\"},\"glyph\":{\"id\":\"1393\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1394\"},\"selection_glyph\":null,\"view\":{\"id\":\"1396\"}},\"id\":\"1395\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"label\":{\"value\":\" MIN\"},\"renderers\":[{\"id\":\"1429\"},{\"id\":\"1464\"}]},\"id\":\"1459\",\"type\":\"LegendItem\"},{\"attributes\":{\"source\":{\"id\":\"1391\"}},\"id\":\"1396\",\"type\":\"CDSView\"},{\"attributes\":{\"data\":{\"MAX\":{\"__ndarray__\":\"AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAACASkAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAATUAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAACASkAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAACATEAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAEtAAAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAgEhAAAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fw==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[215]},\"MIN\":{\"__ndarray__\":\"AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAASEAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAASkAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAASUAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAASkAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAgEZAAAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAERAAAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fw==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[215]},\"TEMP\":{\"__ndarray__\":\"AAAAAACASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABJQAAAAAAAAElAAAAAAAAASUAAAAAAAABJQAAAAAAAAElAAAAAAACASUAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAACASkAAAAAAAABKQAAAAAAAAEtAAAAAAACASkAAAAAAAABLQAAAAAAAAEtAAAAAAAAAS0AAAAAAAIBLQAAAAAAAgEtAAAAAAACAS0AAAAAAAABLQAAAAAAAgEtAAAAAAACAS0AAAAAAAIBLQAAAAAAAgEtAAAAAAACAS0AAAAAAAIBLQAAAAAAAgExAAAAAAAAATEAAAAAAAIBMQAAAAAAAgExAAAAAAACATEAAAAAAAIBMQAAAAAAAgExAAAAAAACATEAAAAAAAIBNQAAAAAAAgExAAAAAAAAATUAAAAAAAIBMQAAAAAAAgExAAAAAAAAATEAAAAAAAIBLQAAAAAAAgEtAAAAAAACASkAAAAAAAABLQAAAAAAAAEtAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABJQAAAAAAAAElAAAAAAAAASUAAAAAAAABIQAAAAAAAAElAAAAAAACASUAAAAAAAABJQAAAAAAAAElAAAAAAACASUAAAAAAAABJQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAACASUAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEtAAAAAAACASkAAAAAAAABLQAAAAAAAAEtAAAAAAACASkAAAAAAAABLQAAAAAAAgEtAAAAAAAAAS0AAAAAAAIBLQAAAAAAAAEtAAAAAAACAS0AAAAAAAIBLQAAAAAAAgEtAAAAAAACAS0AAAAAAAIBLQAAAAAAAgEtAAAAAAAAATEAAAAAAAIBLQAAAAAAAgEtAAAAAAACATEAAAAAAAIBLQAAAAAAAgEtAAAAAAAAATEAAAAAAAIBLQAAAAAAAgEtAAAAAAAAATEAAAAAAAABLQAAAAAAAAEtAAAAAAACASkAAAAAAAABKQAAAAAAAAEpAAAAAAACASkAAAAAAAABJQAAAAAAAAEpAAAAAAACASkAAAAAAAABKQAAAAAAAAEpAAAAAAACASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAACASkAAAAAAAABLQAAAAAAAAEtAAAAAAAAAS0AAAAAAAABLQAAAAAAAAEtAAAAAAAAAS0AAAAAAAABLQAAAAAAAAEtAAAAAAAAAS0AAAAAAAABLQAAAAAAAAEtAAAAAAACASkAAAAAAAABLQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAgElAAAAAAAAASUAAAAAAAABJQAAAAAAAgEhAAAAAAAAASUAAAAAAAABJQAAAAAAAgEhAAAAAAAAASEAAAAAAAABHQAAAAAAAAEdAAAAAAAAAR0AAAAAAAIBGQAAAAAAAgEZAAAAAAACARkAAAAAAAIBGQAAAAAAAAEZAAAAAAACARkAAAAAAAIBGQAAAAAAAAEdAAAAAAACARkAAAAAAAABHQAAAAAAAgEdAAAAAAAAASEAAAAAAAABIQAAAAAAAgEhAAAAAAAAASEAAAAAAAABIQAAAAAAAAEhAAAAAAAAAR0AAAAAAAIBFQAAAAAAAAEVAAAAAAACARUAAAAAAAIBFQAAAAAAAAEZAAAAAAACARkAAAAAAAIBGQAAAAAAAAEZAAAAAAACARkAAAAAAAIBGQAAAAAAAAEZAAAAAAACARUAAAAAAAIBFQAAAAAAAgEVAAAAAAACARUAAAAAAAIBEQAAAAAAAgERAAAAAAACAREAAAAAAAIBEQAAAAAAAAERAAAAAAACAQ0AAAAAAAIBDQAAAAAAAAENAAAAAAAAAQkAAAAAAAIBCQAAAAAAAAENAAAAAAAAAQkAAAAAAAIBCQAAAAAAAAERAAAAAAACAQ0AAAAAAAIBDQAAAAAAAgERAAAAAAACAREAAAAAAAIBFQAAAAAAAAEVAAAAAAACARUAAAAAAAIBFQA==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[215]},\"__x__values\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[215]},\"__x__values_original\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[215]}},\"selected\":{\"id\":\"1457\"},\"selection_policy\":{\"id\":\"1458\"}},\"id\":\"1425\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1421\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1422\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"data_source\":{\"id\":\"1425\"},\"glyph\":{\"id\":\"1427\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1428\"},\"selection_glyph\":null,\"view\":{\"id\":\"1430\"}},\"id\":\"1429\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#2ca02c\",\"line_width\":2,\"x\":{\"field\":\"__x__values\"},\"y\":{\"field\":\"MIN\"}},\"id\":\"1428\",\"type\":\"Line\"},{\"attributes\":{\"line_color\":\"#2ca02c\",\"line_width\":2,\"x\":{\"field\":\"__x__values\"},\"y\":{\"field\":\"MIN\"}},\"id\":\"1427\",\"type\":\"Line\"},{\"attributes\":{\"source\":{\"id\":\"1425\"}},\"id\":\"1430\",\"type\":\"CDSView\"},{\"attributes\":{\"source\":{\"id\":\"1460\"}},\"id\":\"1465\",\"type\":\"CDSView\"},{\"attributes\":{\"data_source\":{\"id\":\"1460\"},\"glyph\":{\"id\":\"1462\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1463\"},\"selection_glyph\":null,\"view\":{\"id\":\"1465\"}},\"id\":\"1464\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"fill_color\":{\"value\":\"#2ca02c\"},\"line_color\":{\"value\":\"#2ca02c\"},\"size\":{\"units\":\"screen\",\"value\":5},\"x\":{\"field\":\"__x__values\"},\"y\":{\"field\":\"MIN\"}},\"id\":\"1462\",\"type\":\"Scatter\"},{\"attributes\":{\"data\":{\"MAX\":{\"__ndarray__\":\"AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAACASkAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAATUAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAACASkAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAACATEAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAEtAAAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAgEhAAAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fw==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[215]},\"MIN\":{\"__ndarray__\":\"AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAASEAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAASkAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAASUAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAASkAAAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAgEZAAAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAERAAAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fw==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[215]},\"TEMP\":{\"__ndarray__\":\"AAAAAACASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABJQAAAAAAAAElAAAAAAAAASUAAAAAAAABJQAAAAAAAAElAAAAAAACASUAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAACASkAAAAAAAABKQAAAAAAAAEtAAAAAAACASkAAAAAAAABLQAAAAAAAAEtAAAAAAAAAS0AAAAAAAIBLQAAAAAAAgEtAAAAAAACAS0AAAAAAAABLQAAAAAAAgEtAAAAAAACAS0AAAAAAAIBLQAAAAAAAgEtAAAAAAACAS0AAAAAAAIBLQAAAAAAAgExAAAAAAAAATEAAAAAAAIBMQAAAAAAAgExAAAAAAACATEAAAAAAAIBMQAAAAAAAgExAAAAAAACATEAAAAAAAIBNQAAAAAAAgExAAAAAAAAATUAAAAAAAIBMQAAAAAAAgExAAAAAAAAATEAAAAAAAIBLQAAAAAAAgEtAAAAAAACASkAAAAAAAABLQAAAAAAAAEtAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABJQAAAAAAAAElAAAAAAAAASUAAAAAAAABIQAAAAAAAAElAAAAAAACASUAAAAAAAABJQAAAAAAAAElAAAAAAACASUAAAAAAAABJQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAACASUAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEtAAAAAAACASkAAAAAAAABLQAAAAAAAAEtAAAAAAACASkAAAAAAAABLQAAAAAAAgEtAAAAAAAAAS0AAAAAAAIBLQAAAAAAAAEtAAAAAAACAS0AAAAAAAIBLQAAAAAAAgEtAAAAAAACAS0AAAAAAAIBLQAAAAAAAgEtAAAAAAAAATEAAAAAAAIBLQAAAAAAAgEtAAAAAAACATEAAAAAAAIBLQAAAAAAAgEtAAAAAAAAATEAAAAAAAIBLQAAAAAAAgEtAAAAAAAAATEAAAAAAAABLQAAAAAAAAEtAAAAAAACASkAAAAAAAABKQAAAAAAAAEpAAAAAAACASkAAAAAAAABJQAAAAAAAAEpAAAAAAACASkAAAAAAAABKQAAAAAAAAEpAAAAAAACASkAAAAAAAABKQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAAEpAAAAAAACASkAAAAAAAABLQAAAAAAAAEtAAAAAAAAAS0AAAAAAAABLQAAAAAAAAEtAAAAAAAAAS0AAAAAAAABLQAAAAAAAAEtAAAAAAAAAS0AAAAAAAABLQAAAAAAAAEtAAAAAAACASkAAAAAAAABLQAAAAAAAAEpAAAAAAAAASkAAAAAAAABKQAAAAAAAgElAAAAAAAAASUAAAAAAAABJQAAAAAAAgEhAAAAAAAAASUAAAAAAAABJQAAAAAAAgEhAAAAAAAAASEAAAAAAAABHQAAAAAAAAEdAAAAAAAAAR0AAAAAAAIBGQAAAAAAAgEZAAAAAAACARkAAAAAAAIBGQAAAAAAAAEZAAAAAAACARkAAAAAAAIBGQAAAAAAAAEdAAAAAAACARkAAAAAAAABHQAAAAAAAgEdAAAAAAAAASEAAAAAAAABIQAAAAAAAgEhAAAAAAAAASEAAAAAAAABIQAAAAAAAAEhAAAAAAAAAR0AAAAAAAIBFQAAAAAAAAEVAAAAAAACARUAAAAAAAIBFQAAAAAAAAEZAAAAAAACARkAAAAAAAIBGQAAAAAAAAEZAAAAAAACARkAAAAAAAIBGQAAAAAAAAEZAAAAAAACARUAAAAAAAIBFQAAAAAAAgEVAAAAAAACARUAAAAAAAIBEQAAAAAAAgERAAAAAAACAREAAAAAAAIBEQAAAAAAAAERAAAAAAACAQ0AAAAAAAIBDQAAAAAAAAENAAAAAAAAAQkAAAAAAAIBCQAAAAAAAAENAAAAAAAAAQkAAAAAAAIBCQAAAAAAAAERAAAAAAACAQ0AAAAAAAIBDQAAAAAAAgERAAAAAAACAREAAAAAAAIBFQAAAAAAAAEVAAAAAAACARUAAAAAAAIBFQA==\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[215]},\"__x__values\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[215]},\"__x__values_original\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[215]}},\"selected\":{\"id\":\"1494\"},\"selection_policy\":{\"id\":\"1495\"}},\"id\":\"1460\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#2ca02c\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#2ca02c\"},\"size\":{\"units\":\"screen\",\"value\":5},\"x\":{\"field\":\"__x__values\"},\"y\":{\"field\":\"MIN\"}},\"id\":\"1463\",\"type\":\"Scatter\"},{\"attributes\":{\"end\":1569974400000.0,\"start\":1569715200000.0},\"id\":\"1272\",\"type\":\"Range1d\"},{\"attributes\":{\"label\":{\"value\":\" MAX\"},\"renderers\":[{\"id\":\"1364\"},{\"id\":\"1395\"}]},\"id\":\"1390\",\"type\":\"LegendItem\"},{\"attributes\":{\"end\":60.0,\"start\":35.0},\"id\":\"1274\",\"type\":\"Range1d\"},{\"attributes\":{},\"id\":\"1276\",\"type\":\"LinearScale\"}],\"root_ids\":[\"1269\"]},\"title\":\"Bokeh Application\",\"version\":\"2.2.2\"}};\n", " var render_items = [{\"docid\":\"aa882360-8b83-43eb-86f0-bf2f16661131\",\"root_ids\":[\"1269\"],\"roots\":{\"1269\":\"ec7e4634-eb83-4d42-a83c-9eac91ceafb4\"}}];\n", " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", "\n", " }\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " } else {\n", " var attempts = 0;\n", " var timer = setInterval(function(root) {\n", " if (root.Bokeh !== undefined) {\n", " clearInterval(timer);\n", " embed_document(root);\n", " } else {\n", " attempts++;\n", " if (attempts > 100) {\n", " clearInterval(timer);\n", " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n", " }\n", " }\n", " }, 10, root)\n", " }\n", "})(window);" ], "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "1269" } }, "output_type": "display_data" } ], "source": [ "ax = sept29_oct1_df.plot(title='Helsinki-Vantaa temperatures',\n", " xlabel='Date', ylabel='Temperature [°F]',\n", " xlim=[start_time, end_time], ylim=[35.0, 60.0],\n", " plot_data_points=True)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.4" } }, "nbformat": 4, "nbformat_minor": 4 }