{ "cells": [ { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The autoreload extension is already loaded. To reload it, use:\n", " %reload_ext autoreload\n" ] } ], "source": [ "from notepad import WaterStorage, Heatpump\n", "\n", "%load_ext autoreload\n", "%autoreload 2" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [], "source": [ "import pandas as pd" ] }, { "cell_type": "code", "execution_count": 27, "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", " \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", " \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", " \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", "
Tsource (VDG)Tsink (VDG)MW (VDG)Tsource (NDG)Tsink (NDG)MW (NDG)Unnamed: 7Unnamed: 8Unnamed: 9Unnamed: 10Unnamed: 11Unnamed: 12
2018-11-01 00:00:0064.986977143.3587980.00000020.514811147.6211260.000000NaNNaNNaNNaNNaNNaN
2018-11-01 00:10:0064.942589140.6474190.00000019.280056147.8425030.000000NaNNaNNaNNaNNaNNaN
2018-11-01 00:20:0054.578777138.9604930.00000017.950905148.1389640.000000NaNNaNNaNNaNNaNNaN
2018-11-01 00:30:0065.195641139.9363920.00000023.053127147.8646600.000000NaNNaNNaNNaNNaNNaN
2018-11-01 00:40:0065.137703139.8342650.00000043.948387147.3061910.000000NaNNaNNaNNaNNaNNaN
.......................................
2018-11-01 15:50:0064.977669157.64950920.63146264.929398166.1472896.785675NaNNaNNaNNaNNaNNaN
2018-11-01 16:00:0064.951965157.75509420.62155464.830673165.0596286.795409NaNNaNNaNNaNNaNNaN
2018-11-01 16:10:0064.940338157.86045020.59488764.749290164.3504826.795437NaNNaNNaNNaNNaNNaN
2018-11-01 16:20:0064.940338157.96558020.58989464.489296163.4349156.804813NaNNaNNaNNaNNaNNaN
2018-11-01 16:30:0064.940338158.07048420.79907964.245148163.3126296.876395NaNNaNNaNNaNNaNNaN
\n", "

100 rows × 12 columns

\n", "
" ], "text/plain": [ " Tsource (VDG) Tsink (VDG) MW (VDG) Tsource (NDG) \\\n", "2018-11-01 00:00:00 64.986977 143.358798 0.000000 20.514811 \n", "2018-11-01 00:10:00 64.942589 140.647419 0.000000 19.280056 \n", "2018-11-01 00:20:00 54.578777 138.960493 0.000000 17.950905 \n", "2018-11-01 00:30:00 65.195641 139.936392 0.000000 23.053127 \n", "2018-11-01 00:40:00 65.137703 139.834265 0.000000 43.948387 \n", "... ... ... ... ... \n", "2018-11-01 15:50:00 64.977669 157.649509 20.631462 64.929398 \n", "2018-11-01 16:00:00 64.951965 157.755094 20.621554 64.830673 \n", "2018-11-01 16:10:00 64.940338 157.860450 20.594887 64.749290 \n", "2018-11-01 16:20:00 64.940338 157.965580 20.589894 64.489296 \n", "2018-11-01 16:30:00 64.940338 158.070484 20.799079 64.245148 \n", "\n", " Tsink (NDG) MW (NDG) Unnamed: 7 Unnamed: 8 \\\n", "2018-11-01 00:00:00 147.621126 0.000000 NaN NaN \n", "2018-11-01 00:10:00 147.842503 0.000000 NaN NaN \n", "2018-11-01 00:20:00 148.138964 0.000000 NaN NaN \n", "2018-11-01 00:30:00 147.864660 0.000000 NaN NaN \n", "2018-11-01 00:40:00 147.306191 0.000000 NaN NaN \n", "... ... ... ... ... \n", "2018-11-01 15:50:00 166.147289 6.785675 NaN NaN \n", "2018-11-01 16:00:00 165.059628 6.795409 NaN NaN \n", "2018-11-01 16:10:00 164.350482 6.795437 NaN NaN \n", "2018-11-01 16:20:00 163.434915 6.804813 NaN NaN \n", "2018-11-01 16:30:00 163.312629 6.876395 NaN NaN \n", "\n", " Unnamed: 9 Unnamed: 10 Unnamed: 11 Unnamed: 12 \n", "2018-11-01 00:00:00 NaN NaN NaN NaN \n", "2018-11-01 00:10:00 NaN NaN NaN NaN \n", "2018-11-01 00:20:00 NaN NaN NaN NaN \n", "2018-11-01 00:30:00 NaN NaN NaN NaN \n", "2018-11-01 00:40:00 NaN NaN NaN NaN \n", "... ... ... ... ... \n", "2018-11-01 15:50:00 NaN NaN NaN NaN \n", "2018-11-01 16:00:00 NaN NaN NaN NaN \n", "2018-11-01 16:10:00 NaN NaN NaN NaN \n", "2018-11-01 16:20:00 NaN NaN NaN NaN \n", "2018-11-01 16:30:00 NaN NaN NaN NaN \n", "\n", "[100 rows x 12 columns]" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data = pd.read_excel('Demand_Data_Smurfit_Preprocessed.xlsx', sheet_name='nov2018', index_col=0)\n", "data[:100]" ] }, { "cell_type": "code", "execution_count": 28, "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", " \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", " \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", " \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", "
Tsource (VDG)Tsink (VDG)MW (VDG)Tsource (NDG)Tsink (NDG)MW (NDG)Unnamed: 7Unnamed: 8Unnamed: 9Unnamed: 10Unnamed: 11Unnamed: 12
2018-11-01 00:00:0064.986977143.3587980.020.514811147.6211260.0NaNNaNNaNNaNNaNNaN
2018-11-01 00:10:0064.942589140.6474190.019.280056147.8425030.0NaNNaNNaNNaNNaNNaN
2018-11-01 00:20:0054.578777138.9604930.017.950905148.1389640.0NaNNaNNaNNaNNaNNaN
2018-11-01 00:30:0065.195641139.9363920.023.053127147.8646600.0NaNNaNNaNNaNNaNNaN
2018-11-01 00:40:0065.137703139.8342650.043.948387147.3061910.0NaNNaNNaNNaNNaNNaN
2018-11-01 00:50:0065.358078139.7319010.042.203876147.5476120.0NaNNaNNaNNaNNaNNaN
2018-11-01 01:00:0065.084549139.6292950.018.354761148.3374770.0NaNNaNNaNNaNNaNNaN
2018-11-01 01:10:0064.810524139.5264470.019.050589148.1831920.0NaNNaNNaNNaNNaNNaN
2018-11-01 01:20:0065.073433139.4233570.019.903652149.1868650.0NaNNaNNaNNaNNaNNaN
2018-11-01 01:30:0065.007141139.3200260.021.213211147.7643560.0NaNNaNNaNNaNNaNNaN
\n", "
" ], "text/plain": [ " Tsource (VDG) Tsink (VDG) MW (VDG) Tsource (NDG) \\\n", "2018-11-01 00:00:00 64.986977 143.358798 0.0 20.514811 \n", "2018-11-01 00:10:00 64.942589 140.647419 0.0 19.280056 \n", "2018-11-01 00:20:00 54.578777 138.960493 0.0 17.950905 \n", "2018-11-01 00:30:00 65.195641 139.936392 0.0 23.053127 \n", "2018-11-01 00:40:00 65.137703 139.834265 0.0 43.948387 \n", "2018-11-01 00:50:00 65.358078 139.731901 0.0 42.203876 \n", "2018-11-01 01:00:00 65.084549 139.629295 0.0 18.354761 \n", "2018-11-01 01:10:00 64.810524 139.526447 0.0 19.050589 \n", "2018-11-01 01:20:00 65.073433 139.423357 0.0 19.903652 \n", "2018-11-01 01:30:00 65.007141 139.320026 0.0 21.213211 \n", "\n", " Tsink (NDG) MW (NDG) Unnamed: 7 Unnamed: 8 \\\n", "2018-11-01 00:00:00 147.621126 0.0 NaN NaN \n", "2018-11-01 00:10:00 147.842503 0.0 NaN NaN \n", "2018-11-01 00:20:00 148.138964 0.0 NaN NaN \n", "2018-11-01 00:30:00 147.864660 0.0 NaN NaN \n", "2018-11-01 00:40:00 147.306191 0.0 NaN NaN \n", "2018-11-01 00:50:00 147.547612 0.0 NaN NaN \n", "2018-11-01 01:00:00 148.337477 0.0 NaN NaN \n", "2018-11-01 01:10:00 148.183192 0.0 NaN NaN \n", "2018-11-01 01:20:00 149.186865 0.0 NaN NaN \n", "2018-11-01 01:30:00 147.764356 0.0 NaN NaN \n", "\n", " Unnamed: 9 Unnamed: 10 Unnamed: 11 Unnamed: 12 \n", "2018-11-01 00:00:00 NaN NaN NaN NaN \n", "2018-11-01 00:10:00 NaN NaN NaN NaN \n", "2018-11-01 00:20:00 NaN NaN NaN NaN \n", "2018-11-01 00:30:00 NaN NaN NaN NaN \n", "2018-11-01 00:40:00 NaN NaN NaN NaN \n", "2018-11-01 00:50:00 NaN NaN NaN NaN \n", "2018-11-01 01:00:00 NaN NaN NaN NaN \n", "2018-11-01 01:10:00 NaN NaN NaN NaN \n", "2018-11-01 01:20:00 NaN NaN NaN NaN \n", "2018-11-01 01:30:00 NaN NaN NaN NaN " ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "start, end = '2018-11-01 00:00:00', '2018-11-01 16:30:00'\n", "df = data[start:end]\n", "df[:10]\n" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [], "source": [ "df = df.resample('15T', origin=start).mean()" ] }, { "cell_type": "code", "execution_count": 30, "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Tsource (VDG)Tsink (VDG)MW (VDG)Tsource (NDG)Tsink (NDG)MW (NDG)
2018-11-01 00:00:0064.964783142.0031090.019.897433147.7318140.0
2018-11-01 00:15:0054.578777138.9604930.017.950905148.1389640.0
2018-11-01 00:30:0065.166672139.8853290.033.500757147.5854260.0
2018-11-01 00:45:0065.358078139.7319010.042.203876147.5476120.0
2018-11-01 01:00:0064.947536139.5778710.018.702675148.2603350.0
\n", "
" ], "text/plain": [ " Tsource (VDG) Tsink (VDG) MW (VDG) Tsource (NDG) \\\n", "2018-11-01 00:00:00 64.964783 142.003109 0.0 19.897433 \n", "2018-11-01 00:15:00 54.578777 138.960493 0.0 17.950905 \n", "2018-11-01 00:30:00 65.166672 139.885329 0.0 33.500757 \n", "2018-11-01 00:45:00 65.358078 139.731901 0.0 42.203876 \n", "2018-11-01 01:00:00 64.947536 139.577871 0.0 18.702675 \n", "\n", " Tsink (NDG) MW (NDG) \n", "2018-11-01 00:00:00 147.731814 0.0 \n", "2018-11-01 00:15:00 148.138964 0.0 \n", "2018-11-01 00:30:00 147.585426 0.0 \n", "2018-11-01 00:45:00 147.547612 0.0 \n", "2018-11-01 01:00:00 148.260335 0.0 " ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df=df.drop(['Unnamed: 7', 'Unnamed: 8', 'Unnamed: 9', 'Unnamed: 10', 'Unnamed: 11', 'Unnamed: 12'], axis=1)\n", "df[:5]" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "15" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "waterstorage = WaterStorage(\n", " name='MyStorage',\n", " max_power=10,\n", " min_power=-10,\n", " roundtrip_eff=0.90,\n", " energy_density = 50 * 10e-3,\n", " volume = 500,\n", " lifetime = 25,\n", " temperature = 368, #K\n", " min_storagelevel = 5,\n", " max_storagelevel = 23\n", " \n", ")\n", "waterstorage.set_freq('15T')\n", "waterstorage.storagelevel = 3\n", "waterstorage.set_storagelevel(15)\n", "waterstorage.storagelevel\n" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [], "source": [ "def hp_mass_flow (hp_capacity, Tsink, Tref, Cp):\n", " return hp_capacity /(Cp*(Tsink - Tref)) \n", "\n", "def process_mass_flow (demand, Tsink, Tref, Cp):\n", " return demand /(Cp*(Tsink - Tref)) \n", "\n", "def COP_calculation(Tsink, Tsource):\n", " return Tsink / (Tsink - Tsource)\n", "\n", "from numpy.polynomial import Polynomial\n", "\n", "def cop_curve(Tsink, Tsource):\n", " c0 = Tsink / (Tsink - Tsource) \n", " return Polynomial([c0])\n" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'name': 'Heatpump',\n", " 'max_th_power': 40,\n", " 'min_th_power': 5,\n", " 'cop_curve': }" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# heatpump = Heatpump(\"heatpump1\", 50, cop_curve, 10)\n", "# heatpump.set_heat_output(50, Tsource=333, Tsink=413)\n", "cop_curve(140, 13)\n", "\n", "heatpump = Heatpump(\n", " name='Heatpump',\n", " max_th_power=40,\n", " min_th_power=5,\n", " cop_curve=cop_curve\n", ")\n", "\n", "heatpump.__dict__\n", "\n" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "341.450974129671" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Tsink = 413 #K\n", "Tsource = 333 #K\n", "Tref = 273 #K\n", "hp_capacity = 31 #MW\n", "demand = 25 #MW\n", "Cp = 4190 #J/kgK\n", "MW_to_J_per_s = 1000_000\n", "hp_capacity *= MW_to_J_per_s\n", "demand *= MW_to_J_per_s\n", "\n", "charge_mass_flow = hp_mass_flow (hp_capacity, Tsink, Tref, Cp) - process_mass_flow (demand, Tsink, Tref, Cp)\n", "charged_heat = (charge_mass_flow * Cp * (Tsink - Tref)) / MW_to_J_per_s\n", "charged_heat\n", "\n", "efficiency = 0.9\n", "Tstorage = 95 + 273\n", "discharged_heat = charged_heat * efficiency #MW\n", "discharge_mass_flow = discharged_heat * MW_to_J_per_s /(Cp*(Tstorage - Tref))\n", "discharge_mass_flow\n", "process_mass_flow\n", "\n", "def Tsource_calculation(Tstorage, discharge_mass_flow, Tsource, process_mass_flow):\n", " return (Tstorage * discharge_mass_flow + Tsource * process_mass_flow)/ (discharge_mass_flow + process_mass_flow)\n", " \n", "\n", "Tsource_calculation(Tstorage, discharge_mass_flow, Tsource, process_mass_flow (demand, Tsink, Tref, Cp))\n" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [], "source": [ "def test_heatpump_and_waterstorage_system(Tsink, Tsource, process_demand_MW, e_price, waterstorage_level):\n", " \"\"\"\n", " 1. Follow a certain logic based on given price:\n", " - If price is low --> Heatpump at full power, and charge the heatbuffer\n", " - If price is high --> Discharge the heat buffer, and increase Tsource, which will increase COP\n", " 2. Above logic should adhere to a couple of constraints:\n", " - Storage levels\n", " - Capacity of the heat pump \n", " - Process demand\n", " - ....\n", " 3. This function should contain: \n", " - Heat pump \n", " - Water storage\n", " - Interactions / logic between them\n", " 4. Output of the function:\n", " - Power of the heatpump \n", " - \"New\" water storage level\n", " \"\"\"\n", " waterstorage.storage_level = waterstorage_level\n", " \n", " if e_price < 50:\n", " hp_load = heatpump.max_th_power #bunu yoxla heat pump-a birbasa set load demek olmur. Ve funksiyada heatpump obyekti var ama o evvel initialize olunmayib\n", " energy_to_storage = hp_load - process_demand_MW\n", " waterstorage.charge(energy_to_storage)\n", " waterstorage.charged_energy = waterstorage.MW_to_MWh(energy_to_storage)\n", " waterstorage_level = waterstorage.storage_level\n", " new_cl = waterstorage.storage_level + waterstorage.charged_energy\n", " if e_price > 100:\n", " Tstorage = 320\n", " energy_from_storage = discharged_heat\n", " waterstorage_level = waterstorage.storage_level\n", " waterstorage.discharged_energy = waterstorage.MW_to_MWh(energy_from_storage)\n", " new_cl = waterstorage.storage_level - waterstorage.discharged_energy\n", " def Tsource_calculation(Tstorage, discharge_mass_flow, Tsource, process_mass_flow):\n", " return (\n", " (Tstorage * discharge_mass_flow + Tsource * process_mass_flow)\n", " / (discharge_mass_flow + process_mass_flow)\n", " )\n", " new_Tsource = Tsource_calculation(Tstorage, discharge_mass_flow, Tsource, process_mass_flow (demand, Tsink, Tref, Cp))\n", " new_COP = COP_calculation (Tsink, new_Tsource)\n", " hp_load = heatpump.set_heat_output(process_demand_MW, Tsink, Tsource) #bu da hemcinin set load assetin funksiyasidir, \n", " #heatpump da overwrite edilib. men evezinde yazdim ki set_heat_output\n", " #sen gor hansi funksiya sene lazimdir.\n", "\n", " return hp_load, new_cl, waterstorage_level" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "((-5.319148936170213, 25), 21.65, 23)" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "results = test_heatpump_and_waterstorage_system(\n", " Tsink = 150+273, \n", " Tsource = 60+273, \n", " process_demand_MW = 25, \n", " e_price = 130, \n", " waterstorage_level = 23\n", ")\n", "\n", "results" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [], "source": [ "for i in df.index:\n", " # df.loc[i, 'hpload'] = test_heatpump_and_waterstorage_system(df.loc[i, 'Tsink (VDG)']+273, df.loc[i, 'Tsource (VDG)']+273, df.loc[i, 'MW (VDG)'], 30, 23)[0][1]\n", " df.loc[i, 'new_cl'] = test_heatpump_and_waterstorage_system(df.loc[i, 'Tsink (VDG)']+273, df.loc[i, 'Tsource (VDG)']+273, df.loc[i, 'MW (VDG)'], 30, 23)[1]\n", " df.loc[i, 'storage_level'] = test_heatpump_and_waterstorage_system(df.loc[i, 'Tsink (VDG)']+273, df.loc[i, 'Tsource (VDG)']+273, df.loc[i, 'MW (VDG)'], 30, 23)[2]" ] }, { "cell_type": "code", "execution_count": 38, "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", " \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", " \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", "
Tsource (VDG)Tsink (VDG)MW (VDG)Tsource (NDG)Tsink (NDG)MW (NDG)new_clstorage_level
2018-11-01 00:00:0064.964783142.0031090.00000019.897433147.7318140.00000033.00000023.0
2018-11-01 00:15:0054.578777138.9604930.00000017.950905148.1389640.00000033.00000023.0
2018-11-01 00:30:0065.166672139.8853290.00000033.500757147.5854260.00000033.00000023.0
2018-11-01 00:45:0065.358078139.7319010.00000042.203876147.5476120.00000033.00000023.0
2018-11-01 01:00:0064.947536139.5778710.00000018.702675148.2603350.00000033.00000023.0
...........................
2018-11-01 15:30:0065.016212157.22950820.71692664.996845167.1359016.79845527.82076923.0
2018-11-01 15:45:0064.977669157.64950920.63146264.929398166.1472896.78567527.84213423.0
2018-11-01 16:00:0064.946152157.80777220.60822164.789982164.7050556.79542327.84794523.0
2018-11-01 16:15:0064.940338157.96558020.58989464.489296163.4349156.80481327.85252623.0
2018-11-01 16:30:0064.940338158.07048420.79907964.245148163.3126296.87639527.80023023.0
\n", "

67 rows × 8 columns

\n", "
" ], "text/plain": [ " Tsource (VDG) Tsink (VDG) MW (VDG) Tsource (NDG) \\\n", "2018-11-01 00:00:00 64.964783 142.003109 0.000000 19.897433 \n", "2018-11-01 00:15:00 54.578777 138.960493 0.000000 17.950905 \n", "2018-11-01 00:30:00 65.166672 139.885329 0.000000 33.500757 \n", "2018-11-01 00:45:00 65.358078 139.731901 0.000000 42.203876 \n", "2018-11-01 01:00:00 64.947536 139.577871 0.000000 18.702675 \n", "... ... ... ... ... \n", "2018-11-01 15:30:00 65.016212 157.229508 20.716926 64.996845 \n", "2018-11-01 15:45:00 64.977669 157.649509 20.631462 64.929398 \n", "2018-11-01 16:00:00 64.946152 157.807772 20.608221 64.789982 \n", "2018-11-01 16:15:00 64.940338 157.965580 20.589894 64.489296 \n", "2018-11-01 16:30:00 64.940338 158.070484 20.799079 64.245148 \n", "\n", " Tsink (NDG) MW (NDG) new_cl storage_level \n", "2018-11-01 00:00:00 147.731814 0.000000 33.000000 23.0 \n", "2018-11-01 00:15:00 148.138964 0.000000 33.000000 23.0 \n", "2018-11-01 00:30:00 147.585426 0.000000 33.000000 23.0 \n", "2018-11-01 00:45:00 147.547612 0.000000 33.000000 23.0 \n", "2018-11-01 01:00:00 148.260335 0.000000 33.000000 23.0 \n", "... ... ... ... ... \n", "2018-11-01 15:30:00 167.135901 6.798455 27.820769 23.0 \n", "2018-11-01 15:45:00 166.147289 6.785675 27.842134 23.0 \n", "2018-11-01 16:00:00 164.705055 6.795423 27.847945 23.0 \n", "2018-11-01 16:15:00 163.434915 6.804813 27.852526 23.0 \n", "2018-11-01 16:30:00 163.312629 6.876395 27.800230 23.0 \n", "\n", "[67 rows x 8 columns]" ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plot.ly" }, "data": [ { "hovertemplate": "variable=storage_level
index=%{x}
value=%{y}", "legendgroup": "storage_level", "line": { "color": "#636efa", "dash": "solid" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "storage_level", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ "2018-11-01T00:00:00", "2018-11-01T00:15:00", "2018-11-01T00:30:00", "2018-11-01T00:45:00", "2018-11-01T01:00:00", "2018-11-01T01:15:00", "2018-11-01T01:30:00", "2018-11-01T01:45:00", "2018-11-01T02:00:00", "2018-11-01T02:15:00", "2018-11-01T02:30:00", "2018-11-01T02:45:00", "2018-11-01T03:00:00", "2018-11-01T03:15:00", "2018-11-01T03:30:00", "2018-11-01T03:45:00", "2018-11-01T04:00:00", "2018-11-01T04:15:00", "2018-11-01T04:30:00", "2018-11-01T04:45:00", "2018-11-01T05:00:00", "2018-11-01T05:15:00", "2018-11-01T05:30:00", "2018-11-01T05:45:00", "2018-11-01T06:00:00", "2018-11-01T06:15:00", "2018-11-01T06:30:00", "2018-11-01T06:45:00", "2018-11-01T07:00:00", "2018-11-01T07:15:00", "2018-11-01T07:30:00", "2018-11-01T07:45:00", "2018-11-01T08:00:00", "2018-11-01T08:15:00", "2018-11-01T08:30:00", "2018-11-01T08:45:00", "2018-11-01T09:00:00", "2018-11-01T09:15:00", "2018-11-01T09:30:00", "2018-11-01T09:45:00", "2018-11-01T10:00:00", "2018-11-01T10:15:00", "2018-11-01T10:30:00", "2018-11-01T10:45:00", "2018-11-01T11:00:00", "2018-11-01T11:15:00", "2018-11-01T11:30:00", "2018-11-01T11:45:00", "2018-11-01T12:00:00", "2018-11-01T12:15:00", "2018-11-01T12:30:00", "2018-11-01T12:45:00", "2018-11-01T13:00:00", "2018-11-01T13:15:00", "2018-11-01T13:30:00", "2018-11-01T13:45:00", "2018-11-01T14:00:00", "2018-11-01T14:15:00", "2018-11-01T14:30:00", "2018-11-01T14:45:00", "2018-11-01T15:00:00", "2018-11-01T15:15:00", "2018-11-01T15:30:00", "2018-11-01T15:45:00", "2018-11-01T16:00:00", "2018-11-01T16:15:00", "2018-11-01T16:30:00" ], "xaxis": "x", "y": [ 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23 ], "yaxis": "y" } ], "layout": { "autosize": true, "legend": { "title": { "text": "variable" }, "tracegroupgap": 0 }, "margin": { "t": 60 }, "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "barpolar" } ], "carpet": [ { "aaxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "baxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "type": "carpet" } ], "choropleth": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "choropleth" } ], "contour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "contour" } ], "contourcarpet": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "contourcarpet" } ], "heatmap": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmap" } ], "heatmapgl": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmapgl" } ], "histogram": [ { "marker": { "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "histogram" } ], "histogram2d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2d" } ], "histogram2dcontour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2dcontour" } ], "mesh3d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "mesh3d" } ], "parcoords": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "parcoords" } ], "pie": [ { "automargin": true, "type": "pie" } ], "scatter": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter" } ], "scatter3d": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter3d" } ], "scattercarpet": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattercarpet" } ], "scattergeo": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergeo" } ], "scattergl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergl" } ], "scattermapbox": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermapbox" } ], "scatterpolar": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolar" } ], "scatterpolargl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolargl" } ], "scatterternary": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterternary" } ], "surface": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "surface" } ], "table": [ { "cells": { "fill": { "color": "#EBF0F8" }, "line": { "color": "white" } }, "header": { "fill": { "color": "#C8D4E3" }, "line": { "color": "white" } }, "type": "table" } ] }, "layout": { "annotationdefaults": { "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, "autotypenumbers": "strict", "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ], "sequential": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "sequentialminus": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ] }, "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#2a3f5f" }, "geo": { "bgcolor": "white", "lakecolor": "white", "landcolor": "#E5ECF6", "showlakes": true, "showland": true, "subunitcolor": "white" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { "style": "light" }, "paper_bgcolor": "white", "plot_bgcolor": "#E5ECF6", "polar": { "angularaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "radialaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "scene": { "xaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "yaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "zaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" } }, "shapedefaults": { "line": { "color": "#2a3f5f" } }, "ternary": { "aaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "baxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "caxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "title": { "x": 0.05 }, "xaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 }, "yaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 } } }, "xaxis": { "anchor": "y", "autorange": true, "domain": [ 0, 1 ], "range": [ "2018-11-01", "2018-11-01 16:30" ], "title": { "text": "index" }, "type": "date" }, "yaxis": { "anchor": "x", "autorange": true, "domain": [ 0, 1 ], "range": [ 22, 24 ], "title": { "text": "value" }, "type": "linear" } } }, "image/png": "iVBORw0KGgoAAAANSUhEUgAABHsAAAFoCAYAAADHK/d8AAAAAXNSR0IArs4c6QAAIABJREFUeF7t3X/sXfWd3/mPcWKbUA+hngBrkiWFHQ0IBTZUbKxWaKPWq5nBjeiitZImVUr4jbUjWEMs85XCH0QyXge8oOmSgDGhow6byCu2ETWTkZgpK7qVZ1BpSYpC1IYN24wF6biEIS3GAbz63OTcnu/x/d5z7v287uvzOef75J8Z4Hve73Mfn/s19jP33u+akydPngz8hQACCCCAAAIIIIAAAggggAACCCAwCIE1xJ5BnCMPAgEEEEAAAQQQQAABBBBAAAEEEBgJEHt4IiCAAAIIIIAAAggggAACCCCAAAIDEiD2DOgweSgIIIAAAggggAACCCCAAAIIIIAAsYfnAAIIIIAAAggggAACCCCAAAIIIDAgAWLPgA6Th4IAAggggAACCCCAAAIIIIAAAggQe3gOIIAAAggggAACCCCAAAIIIIAAAgMSIPYM6DB5KAgggAACCCCAAAIIIIAAAggggACxh+cAAggggAACCCCAAAIIIIAAAgggMCABYs+ADpOHggACCCCAAAIIIIAAAggggAACCBB7eA4ggAACCCCAAAIIIIAAAggggAACAxIg9gzoMHkoCCCAAAIIIIAAAggggAACCCCAALGH5wACCCCAAAIIIIAAAggggAACCCAwIAFiz4AOk4eCAAIIIIAAAggggAACCCCAAAIIEHt4DiCAAAIIIIAAAggggAACCCCAAAIDEiD2DOgweSgIIIAAAggggAACCCCAAAIIIIAAsYfnAAIIIIAAAggggAACCCCAAAIIIDAgAWLPgA6Th4IAAggggAACCCCAAAIIIIAAAggQe3gOIIAAAggggAACCCCAAAIIIIAAAgMSIPYM6DB5KAgggAACCCCAAAIIIIAAAggggACxh+cAAggggAACCCCAAAIIIIAAAgggMCABYs+ADpOHggACCCCAAAIIIIAAAggggAACCBB7eA4ggAACCCCAAAIIIIAAAggggAACAxIg9gzoMHkoCCCAAAIIIIAAAggggAACCCCAALGH5wACCCCAAAIIIIAAAggggAACCCAwIAFiz4AOk4eCAAIIIIAAAggggAACCCCAAAIIEHt4DiCAAAIIIIAAAggggAACCCCAAAIDEiD2DOgweSgIIIAAAggggAACCCCAAAIIIIAAsYfnAAIIIIAAAggggAACCCCAAAIIIDAgAWLPgA6Th4IAAggggAACCCCAAAIIIIAAAggQe3gOIIAAAggggAACCCCAAAIIIIAAAgMSIPYM6DB5KAgggAACCCCAAAIIIIAAAggggACxh+cAAggggAACCCCAAAIIIIAAAgggMCABYs+ADpOHggACCCCAAAIIIIAAAggggAACCBB7eA4ggAACCCCAAAIIIIAAAggggAACAxIg9gzoMHkoCCCAAAIIIIAAAggggAACCCCAALGH5wACCCCAAAIIIIAAAggggAACCCAwIAFiz4AOk4eCAAIIIIAAAggggAACCCCAAAIIEHt4DiCAAAIIIIAAAggggAACCCCAAAIDEiD2DOgweSgIIIAAAggggAACCCCAAAIIIIAAsYfnAAIIIIAAAggggAACCCCAAAIIIDAgAWLPgA6Th4IAAggggAACCCCAAAIIIIAAAggQe3gOIIAAAggggAACCCCAAAIIIIAAAgMSIPYM6DB5KAgggAACCCCAAAIIIIAAAggggACxh+cAAggggAACCCCAAAIIIIAAAgggMCABYs+ADpOHggACCCCAAAIIIIAAAggggAACCBB7eA4ggAACCCCAAAIIIIAAAggggAACAxIg9gzoMHkoCCCAAAIIIIAAAggggAACCCCAALGH5wACCCCAAAIIIIAAAggggAACCCAwIAFiz4AOk4eCAAIIIIAAAggggAACCCCAAAIIEHt4DiCAAAIIIIAAAggggAACCCCAAAIDEiD2DOgweSgIIIAAAggggAACCCCAAAIIIIAAsYfnAAIIIIAAAggggAACCCCAAAIIIDAgAWLPgA6Th4IAAggggAACCCCAAAIIIIAAAggQe3gOIIAAAggggAACCCCAAAIIIIAAAgMSWPWx5/jxE+Hu+x4Lh585Mj7Wxx/cHa647KJTjvn5F18O1962N6z07wf0vOChIIAAAggggAACCCCAAAIIIIBATwVWfex54823wje//d2w44tXhw0b1oUYdJb2HAgP77sjXHD+5vGxVqEn/gNiT0+f7dw2AggggAACCCCAAAIIIIAAAqtAYNXHnuYZx/izY/cDYect28ev7nnl1aPha1//Vti14++FpXsfXfbvVsFzhIeIAAIIIIAAAggggAACCCCAAAI9EiD2NA4rhp2lvY+GPbtv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7OGJgAACCCCAAAIIIIAAAggggAACCAxIgNgzoMPkoSCAAAIIIIAAAggggAACCCCAAALEHp4DCCCAAAIIIIAAAggggAACCCCAwIAEiD0DOkweCgIIIIAAAggggAACCCCAAAIIIEDs4TmAAAIIIIAAAggggAACCCCAAAIIDEiA2DOgw+ShIIAAAggggAACCCCAAAIIIIAAAsQengMIIIAAAggggAACCCCAAAIIIIDAgASIPQM6TB4KAggggAACCCCAAAIIIIAAAgggQOzhOYAAAggggAACCCCAAAIIIIAAAggMSIDYM6DD5KEggAACCCCAAAIIIIAAAggggAACxB6eAwgggAACCCCAAAIIIIAAAggggMCABIg9AzpMHgoCCCCAAAIIIIAAAggggAACCCBA7OE5gAACCCCAAAIIIIAAAggggAACCAxIgNgzoMPkoSCAAAIIIIAAAggggAACCCCAAALEHp4DCCCAAAIIIIAAAggggAACCCCAwIAEiD0DOkweCgIIIIAAAggggAACCCCAAAIIIEDs4TmAAAIIIIAAAggggAACCCCAAAIIDEiA2DOgw+ShIIAAAggggAACCCCAAAIIIIAAAsQengMIIIAAAggggAACCCCAAAIIIIDAgASIPQM6TB4KAggggAACCCCAAAIIIIAAAgggQOzhOYAAAggggAACCCCAAAIIIIAAAggMSIDYM6DD5KEggAACCCCAAAIIIIAAAggggAACxB6eAwgggAACCCCAAAIIIIAAAggggMCABP5/KPP3iW5xE/wAAAAASUVORK5CYII=", "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import plotly.express as px\n", "\n", "fig = px.line(df['storage_level'])\n", "fig.show()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "interpreter": { "hash": "dd1accba5c44bbc1a722925963d63420d7a225a16ee8ad40deae87a5c5fb7f29" }, "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.9.5" } }, "nbformat": 4, "nbformat_minor": 4 }