{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# COVID-19 Analysis\n", "
" ] }, { "cell_type": "code", "execution_count": 2, "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
LatLong1/22/201/23/201/24/201/25/201/26/201/27/201/28/201/29/20...2/21/202/22/202/23/202/24/202/25/202/26/202/27/202/28/202/29/203/1/20
count125.000000125.000000125.000000125.000000125.000000125.000000125.000000125.000000125.000000125.000000...125.000000125.000000125.000000125.000000125.00000125.000000125.000000125.000000125.000000125.000000
mean32.16009237.3074304.4400005.2240007.52800011.47200016.94400023.41600044.62400049.328000...614.744000628.792000631.880000636.560000643.32000651.176000662.048000672.976000688.104000706.968000
std20.18469385.56139939.74665739.84078549.52037368.83519196.111268129.438626318.761506320.358161...5600.9661845727.8529625727.7265925745.7894075790.292465826.1353375863.0687995892.4383015932.3638645985.776481
min-40.900600-123.8695000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.000000...0.0000000.0000000.0000000.0000000.000000.0000000.0000000.0000000.0000000.000000
25%26.0789001.6596000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.000000...0.0000000.0000000.0000000.0000000.000001.0000001.0000001.0000001.0000001.000000
50%35.44370047.7500000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.000000...2.0000002.0000002.0000002.0000002.000002.0000003.0000004.0000006.0000007.000000
75%43.653200112.5000000.0000001.0000002.0000003.0000004.0000006.0000008.0000008.000000...75.00000075.00000076.00000079.00000091.0000091.00000092.00000093.00000095.000000106.000000
max64.963100174.886000444.000000444.000000549.000000761.0000001058.0000001423.0000003554.0000003554.000000...62662.00000064084.00000064084.00000064287.00000064786.0000065187.00000065596.00000065914.00000066337.00000066907.000000
\n", "

8 rows × 42 columns

\n", "
" ], "text/plain": [ " Lat Long 1/22/20 1/23/20 1/24/20 1/25/20 \\\n", "count 125.000000 125.000000 125.000000 125.000000 125.000000 125.000000 \n", "mean 32.160092 37.307430 4.440000 5.224000 7.528000 11.472000 \n", "std 20.184693 85.561399 39.746657 39.840785 49.520373 68.835191 \n", "min -40.900600 -123.869500 0.000000 0.000000 0.000000 0.000000 \n", "25% 26.078900 1.659600 0.000000 0.000000 0.000000 0.000000 \n", "50% 35.443700 47.750000 0.000000 0.000000 0.000000 0.000000 \n", "75% 43.653200 112.500000 0.000000 1.000000 2.000000 3.000000 \n", "max 64.963100 174.886000 444.000000 444.000000 549.000000 761.000000 \n", "\n", " 1/26/20 1/27/20 1/28/20 1/29/20 ... 2/21/20 \\\n", "count 125.000000 125.000000 125.000000 125.000000 ... 125.000000 \n", "mean 16.944000 23.416000 44.624000 49.328000 ... 614.744000 \n", "std 96.111268 129.438626 318.761506 320.358161 ... 5600.966184 \n", "min 0.000000 0.000000 0.000000 0.000000 ... 0.000000 \n", "25% 0.000000 0.000000 0.000000 0.000000 ... 0.000000 \n", "50% 0.000000 0.000000 0.000000 0.000000 ... 2.000000 \n", "75% 4.000000 6.000000 8.000000 8.000000 ... 75.000000 \n", "max 1058.000000 1423.000000 3554.000000 3554.000000 ... 62662.000000 \n", "\n", " 2/22/20 2/23/20 2/24/20 2/25/20 2/26/20 \\\n", "count 125.000000 125.000000 125.000000 125.00000 125.000000 \n", "mean 628.792000 631.880000 636.560000 643.32000 651.176000 \n", "std 5727.852962 5727.726592 5745.789407 5790.29246 5826.135337 \n", "min 0.000000 0.000000 0.000000 0.00000 0.000000 \n", "25% 0.000000 0.000000 0.000000 0.00000 1.000000 \n", "50% 2.000000 2.000000 2.000000 2.00000 2.000000 \n", "75% 75.000000 76.000000 79.000000 91.00000 91.000000 \n", "max 64084.000000 64084.000000 64287.000000 64786.00000 65187.000000 \n", "\n", " 2/27/20 2/28/20 2/29/20 3/1/20 \n", "count 125.000000 125.000000 125.000000 125.000000 \n", "mean 662.048000 672.976000 688.104000 706.968000 \n", "std 5863.068799 5892.438301 5932.363864 5985.776481 \n", "min 0.000000 0.000000 0.000000 0.000000 \n", "25% 1.000000 1.000000 1.000000 1.000000 \n", "50% 3.000000 4.000000 6.000000 7.000000 \n", "75% 92.000000 93.000000 95.000000 106.000000 \n", "max 65596.000000 65914.000000 66337.000000 66907.000000 \n", "\n", "[8 rows x 42 columns]" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import numpy as np\n", "import pandas as pd\n", "data = pd.read_csv(\"https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_19-covid-Confirmed.csv\")\n", "data.describe()" ] }, { "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Province/StateCountry/RegionLatLong1/22/201/23/201/24/201/25/201/26/201/27/20...2/21/202/22/202/23/202/24/202/25/202/26/202/27/202/28/202/29/203/1/20
0AnhuiMainland China31.8257117.22641915396070...988989989989989989989990990990
1BeijingMainland China40.1824116.4142142236416880...396399399399400400410410411413
2ChongqingMainland China30.0572107.874069275775110...572573575576576576576576576576
3FujianMainland China26.0789117.98741510183559...293293293293294294296296296296
4GansuMainland China36.0611103.83430224714...91919191919191919191
..................................................................
120NaNAzerbaijan40.143147.5769000000...0000000003
121NaNCzech Republic49.817515.4730000000...0000000003
122NaNArmenia40.069145.0382000000...0000000001
123NaNDominican Republic18.7357-70.1627000000...0000000001
124Providence, RIUS41.8240-71.4128000000...0000000001
\n", "

125 rows × 44 columns

\n", "
" ], "text/plain": [ " Province/State Country/Region Lat Long 1/22/20 1/23/20 \\\n", "0 Anhui Mainland China 31.8257 117.2264 1 9 \n", "1 Beijing Mainland China 40.1824 116.4142 14 22 \n", "2 Chongqing Mainland China 30.0572 107.8740 6 9 \n", "3 Fujian Mainland China 26.0789 117.9874 1 5 \n", "4 Gansu Mainland China 36.0611 103.8343 0 2 \n", ".. ... ... ... ... ... ... \n", "120 NaN Azerbaijan 40.1431 47.5769 0 0 \n", "121 NaN Czech Republic 49.8175 15.4730 0 0 \n", "122 NaN Armenia 40.0691 45.0382 0 0 \n", "123 NaN Dominican Republic 18.7357 -70.1627 0 0 \n", "124 Providence, RI US 41.8240 -71.4128 0 0 \n", "\n", " 1/24/20 1/25/20 1/26/20 1/27/20 ... 2/21/20 2/22/20 2/23/20 \\\n", "0 15 39 60 70 ... 988 989 989 \n", "1 36 41 68 80 ... 396 399 399 \n", "2 27 57 75 110 ... 572 573 575 \n", "3 10 18 35 59 ... 293 293 293 \n", "4 2 4 7 14 ... 91 91 91 \n", ".. ... ... ... ... ... ... ... ... \n", "120 0 0 0 0 ... 0 0 0 \n", "121 0 0 0 0 ... 0 0 0 \n", "122 0 0 0 0 ... 0 0 0 \n", "123 0 0 0 0 ... 0 0 0 \n", "124 0 0 0 0 ... 0 0 0 \n", "\n", " 2/24/20 2/25/20 2/26/20 2/27/20 2/28/20 2/29/20 3/1/20 \n", "0 989 989 989 989 990 990 990 \n", "1 399 400 400 410 410 411 413 \n", "2 576 576 576 576 576 576 576 \n", "3 293 294 294 296 296 296 296 \n", "4 91 91 91 91 91 91 91 \n", ".. ... ... ... ... ... ... ... \n", "120 0 0 0 0 0 0 3 \n", "121 0 0 0 0 0 0 3 \n", "122 0 0 0 0 0 0 1 \n", "123 0 0 0 0 0 0 1 \n", "124 0 0 0 0 0 0 1 \n", "\n", "[125 rows x 44 columns]" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[0,\n", " 0,\n", " 0,\n", " 0,\n", " 0,\n", " 0,\n", " 0,\n", " 0,\n", " 0,\n", " 2,\n", " 2,\n", " 2,\n", " 2,\n", " 2,\n", " 2,\n", " 2,\n", " 3,\n", " 3,\n", " 3,\n", " 3,\n", " 3,\n", " 3,\n", " 3,\n", " 3,\n", " 3,\n", " 3,\n", " 3,\n", " 3,\n", " 3,\n", " 3,\n", " 20,\n", " 62,\n", " 155,\n", " 229,\n", " 322,\n", " 453,\n", " 655,\n", " 888,\n", " 1128,\n", " 1694]" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data_italy = data[data[\"Country/Region\"] == \"Italy\"]\n", "#data_italy.values[0,[3]]\n", "#type(data_italy.values)\n", "values =[]\n", "for i in range(4,len(data_italy.values[0])):\n", " values += [data_italy.values[0][i]]\n", " \n", "values" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "dates = []\n", "for x in data_italy:\n", " dates+= [x]\n", " \n", "dates = dates[4:]\n", "dates\n", "\n", "df = pd.DataFrame( {\n", " 'dates': dates,\n", " 'values' : values, \n", " 'el': [i for i in range(1,len(values)+1)] \n", " })" ] }, { "cell_type": "code", "execution_count": 6, "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", "
datesvaluesel
01/22/2001
11/23/2002
21/24/2003
31/25/2004
41/26/2005
\n", "
" ], "text/plain": [ " dates values el\n", "0 1/22/20 0 1\n", "1 1/23/20 0 2\n", "2 1/24/20 0 3\n", "3 1/25/20 0 4\n", "4 1/26/20 0 5" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.head()" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/html": [ " \n", " " ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plot.ly" }, "data": [ { "hoverlabel": { "namelength": 0 }, "hovertemplate": "el=%{x}
values=%{marker.color}", "legendgroup": "", "marker": { "color": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 20, 62, 155, 229, 322, 453, 655, 888, 1128, 1694 ], "coloraxis": "coloraxis", "symbol": "circle" }, "mode": "markers", "name": "", "showlegend": false, "type": "scatter", "x": [ 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, 32, 33, 34, 35, 36, 37, 38, 39, 40 ], "xaxis": "x", "y": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 20, 62, 155, 229, 322, 453, 655, 888, 1128, 1694 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "OLS trendline
values = 18.37 * el + -235.035
R2=0.363517

el=%{x}
values=%{y} (trend)", "legendgroup": "", "marker": { "symbol": "circle" }, "mode": "lines", "name": "", "showlegend": false, "type": "scatter", "x": [ 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, 32, 33, 34, 35, 36, 37, 38, 39, 40 ], "xaxis": "x", "y": [ -216.66463414634137, -198.29465290806746, -179.92467166979353, -161.55469043151962, -143.1847091932457, -124.81472795497179, -106.44474671669786, -88.07476547842396, -69.70478424015005, -51.33480300187614, -32.9648217636022, -14.594840525328294, 3.775140712945614, 22.14512195121955, 40.51510318949346, 58.88508442776737, 77.25506566604128, 95.62504690431518, 113.99502814258909, 132.365009380863, 150.73499061913697, 169.10497185741087, 187.47495309568478, 205.8449343339587, 224.2149155722326, 242.5848968105065, 260.9548780487804, 279.3248592870544, 297.6948405253283, 316.0648217636022, 334.4348030018761, 352.80478424015, 371.1747654784239, 389.54474671669783, 407.91472795497174, 426.28470919324565, 444.65469043151955, 463.02467166979346, 481.39465290806737, 499.7646341463413 ], "yaxis": "y" } ], "layout": { "coloraxis": { "colorbar": { "title": { "text": "values" } }, "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" ] ] }, "legend": { "tracegroupgap": 0 }, "margin": { "t": 60 }, "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 } }, "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": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "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 }, "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", "domain": [ 0, 1 ], "title": { "text": "el" } }, "yaxis": { "anchor": "x", "domain": [ 0, 1 ], "title": { "text": "values" } } } }, "text/html": [ "
\n", " \n", " \n", "
\n", " \n", "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import plotly.express as px\n", "fig = px.scatter(df,x = \"el\",y=\"values\", trendline=\"ols\", color=\"values\")\n", "fig.show()" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plot.ly" }, "data": [ { "hoverlabel": { "namelength": 0 }, "hovertemplate": "dates=%{x}
values=%{y}", "legendgroup": "", "line": { "color": "#636efa", "dash": "solid" }, "mode": "lines", "name": "", "showlegend": false, "type": "scatter", "x": [ "1/22/20", "1/23/20", "1/24/20", "1/25/20", "1/26/20", "1/27/20", "1/28/20", "1/29/20", "1/30/20", "1/31/20", "2/1/20", "2/2/20", "2/3/20", "2/4/20", "2/5/20", "2/6/20", "2/7/20", "2/8/20", "2/9/20", "2/10/20", "2/11/20", "2/12/20", "2/13/20", "2/14/20", "2/15/20", "2/16/20", "2/17/20", "2/18/20", "2/19/20", "2/20/20", "2/21/20", "2/22/20", "2/23/20", "2/24/20", "2/25/20", "2/26/20", "2/27/20", "2/28/20", "2/29/20", "3/1/20" ], "xaxis": "x", "y": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 20, 62, 155, 229, 322, 453, 655, 888, 1128, 1694 ], "yaxis": "y" } ], "layout": { "legend": { "tracegroupgap": 0 }, "margin": { "t": 60 }, "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 } }, "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": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "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 }, "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", "domain": [ 0, 1 ], "title": { "text": "dates" } }, "yaxis": { "anchor": "x", "domain": [ 0, 1 ], "title": { "text": "values" } } } }, "text/html": [ "
\n", " \n", " \n", "
\n", " \n", "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import plotly.express as px\n", "fig = px.line(df,x = \"dates\", y=\"values\")\n", "fig.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## LINEAR REGRESSION with Sklearn" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "E:\\ProgramData\\Anaconda3\\lib\\site-packages\\ipykernel_launcher.py:13: SettingWithCopyWarning:\n", "\n", "\n", "A value is trying to be set on a copy of a slice from a DataFrame\n", "\n", "See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", "\n" ] }, { "data": { "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Accuracy: 0.6278428150820454\n" ] } ], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt # To visualize\n", "import pandas as pd # To read data\n", "from sklearn.linear_model import LinearRegression\n", "\n", "\n", "#rescaling the values to get a better accuracy\n", "df[\"el\"]\n", "\n", "j = 1\n", "for i in range(len(df[\"el\"])):\n", " if(i >= 20):\n", " df[\"el\"][i]=j\n", " j+=1\n", " \n", "X = df.iloc[20:, 2].values.reshape(-1, 1) # values converts it into a numpy array\n", "Y = df.iloc[20:, 1].values.reshape(-1, 1) # -1 means that calculate the dimension of rows, but have 1 column\n", "linear_regressor = LinearRegression() # create object for the class\n", "linear_regressor.fit(X, Y) # perform linear regression\n", "acc = linear_regressor.score(X, Y)\n", "Y_pred = linear_regressor.predict(X) # make predictions\n", "plt.scatter(X, Y)\n", "plt.plot(X, Y_pred, color='red')\n", "plt.show()\n", "print(\"Accuracy:\" ,acc)\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# EVALUATION IN CHINA" ] }, { "cell_type": "code", "execution_count": 10, "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Province/StateCountry/RegionLatLong1/22/201/23/201/24/201/25/201/26/201/27/20...2/21/202/22/202/23/202/24/202/25/202/26/202/27/202/28/202/29/203/1/20
0AnhuiMainland China31.82570117.22641915396070...988989989989989989989990990990
1BeijingMainland China40.18240116.4142142236416880...396399399399400400410410411413
2ChongqingMainland China30.05720107.874069275775110...572573575576576576576576576576
3FujianMainland China26.07890117.98741510183559...293293293293294294296296296296
4GansuMainland China36.06110103.83430224714...91919191919191919191
5GuangdongMainland China23.34170113.424426325378111151...1333133913421345134713471347134813491349
6GuangxiMainland China23.82980108.78812523233646...246249249251252252252252252252
7GuizhouMainland China26.81540106.8748133457...146146146146146146146146146146
8HainanMainland China19.19590109.7453458192233...168168168168168168168168168168
9HebeiMainland China38.04280114.514911281318...308309311311311312317318318318
10HeilongjiangMainland China47.86200127.761502491521...479479480480480480480480480480
11HenanMainland China33.88202113.61405593283128...1267127012711271127112711272127212721272
12HubeiMainland China30.97560112.270744444454976110581423...62662640846408464287647866518765596659146633766907
13HunanMainland China27.61040111.708849244369100...1011101310161016101610161017101710181018
14Inner MongoliaMainland China44.09350113.94480017711...75757575757575757575
15JiangsuMainland China32.97110119.4550159183347...631631631631631631631631631631
16JiangxiMainland China27.61400115.72212718183672...934934934934934934934935935935
17JilinMainland China43.66610126.1923013446...91919193939393939393
18LiaoningMainland China41.29560122.6085234172127...121121121121121121121121121122
19NingxiaMainland China37.26920106.1655112347...71717171717172727373
20QinghaiMainland China35.7452095.9956000116...18181818181818181818
21ShaanxiMainland China35.19170108.8701035152235...245245245245245245245245245245
22ShandongMainland China36.34270118.14982615274675...749750754755756756756756756758
23ShanghaiMainland China31.20200121.449191620334053...334335335335336337337337337337
24ShanxiMainland China37.57770112.29221116913...132132132133133133133133133133
25SichuanMainland China30.61710102.71035815284469...525526526527529531534538538538
26TianjinMainland China39.30540117.3230448101423...132135135135135135136136136136
27TibetMainland China31.6927088.0924000000...1111111111
28XinjiangMainland China41.1129085.2401022345...76767676767676767676
29YunnanMainland China24.97400101.4870125111626...174174174174174174174174174174
30ZhejiangMainland China29.18320120.093410274362104128...1203120512051205120512051205120512051205
\n", "

31 rows × 44 columns

\n", "
" ], "text/plain": [ " Province/State Country/Region Lat Long 1/22/20 1/23/20 \\\n", "0 Anhui Mainland China 31.82570 117.2264 1 9 \n", "1 Beijing Mainland China 40.18240 116.4142 14 22 \n", "2 Chongqing Mainland China 30.05720 107.8740 6 9 \n", "3 Fujian Mainland China 26.07890 117.9874 1 5 \n", "4 Gansu Mainland China 36.06110 103.8343 0 2 \n", "5 Guangdong Mainland China 23.34170 113.4244 26 32 \n", "6 Guangxi Mainland China 23.82980 108.7881 2 5 \n", "7 Guizhou Mainland China 26.81540 106.8748 1 3 \n", "8 Hainan Mainland China 19.19590 109.7453 4 5 \n", "9 Hebei Mainland China 38.04280 114.5149 1 1 \n", "10 Heilongjiang Mainland China 47.86200 127.7615 0 2 \n", "11 Henan Mainland China 33.88202 113.6140 5 5 \n", "12 Hubei Mainland China 30.97560 112.2707 444 444 \n", "13 Hunan Mainland China 27.61040 111.7088 4 9 \n", "14 Inner Mongolia Mainland China 44.09350 113.9448 0 0 \n", "15 Jiangsu Mainland China 32.97110 119.4550 1 5 \n", "16 Jiangxi Mainland China 27.61400 115.7221 2 7 \n", "17 Jilin Mainland China 43.66610 126.1923 0 1 \n", "18 Liaoning Mainland China 41.29560 122.6085 2 3 \n", "19 Ningxia Mainland China 37.26920 106.1655 1 1 \n", "20 Qinghai Mainland China 35.74520 95.9956 0 0 \n", "21 Shaanxi Mainland China 35.19170 108.8701 0 3 \n", "22 Shandong Mainland China 36.34270 118.1498 2 6 \n", "23 Shanghai Mainland China 31.20200 121.4491 9 16 \n", "24 Shanxi Mainland China 37.57770 112.2922 1 1 \n", "25 Sichuan Mainland China 30.61710 102.7103 5 8 \n", "26 Tianjin Mainland China 39.30540 117.3230 4 4 \n", "27 Tibet Mainland China 31.69270 88.0924 0 0 \n", "28 Xinjiang Mainland China 41.11290 85.2401 0 2 \n", "29 Yunnan Mainland China 24.97400 101.4870 1 2 \n", "30 Zhejiang Mainland China 29.18320 120.0934 10 27 \n", "\n", " 1/24/20 1/25/20 1/26/20 1/27/20 ... 2/21/20 2/22/20 2/23/20 \\\n", "0 15 39 60 70 ... 988 989 989 \n", "1 36 41 68 80 ... 396 399 399 \n", "2 27 57 75 110 ... 572 573 575 \n", "3 10 18 35 59 ... 293 293 293 \n", "4 2 4 7 14 ... 91 91 91 \n", "5 53 78 111 151 ... 1333 1339 1342 \n", "6 23 23 36 46 ... 246 249 249 \n", "7 3 4 5 7 ... 146 146 146 \n", "8 8 19 22 33 ... 168 168 168 \n", "9 2 8 13 18 ... 308 309 311 \n", "10 4 9 15 21 ... 479 479 480 \n", "11 9 32 83 128 ... 1267 1270 1271 \n", "12 549 761 1058 1423 ... 62662 64084 64084 \n", "13 24 43 69 100 ... 1011 1013 1016 \n", "14 1 7 7 11 ... 75 75 75 \n", "15 9 18 33 47 ... 631 631 631 \n", "16 18 18 36 72 ... 934 934 934 \n", "17 3 4 4 6 ... 91 91 91 \n", "18 4 17 21 27 ... 121 121 121 \n", "19 2 3 4 7 ... 71 71 71 \n", "20 0 1 1 6 ... 18 18 18 \n", "21 5 15 22 35 ... 245 245 245 \n", "22 15 27 46 75 ... 749 750 754 \n", "23 20 33 40 53 ... 334 335 335 \n", "24 1 6 9 13 ... 132 132 132 \n", "25 15 28 44 69 ... 525 526 526 \n", "26 8 10 14 23 ... 132 135 135 \n", "27 0 0 0 0 ... 1 1 1 \n", "28 2 3 4 5 ... 76 76 76 \n", "29 5 11 16 26 ... 174 174 174 \n", "30 43 62 104 128 ... 1203 1205 1205 \n", "\n", " 2/24/20 2/25/20 2/26/20 2/27/20 2/28/20 2/29/20 3/1/20 \n", "0 989 989 989 989 990 990 990 \n", "1 399 400 400 410 410 411 413 \n", "2 576 576 576 576 576 576 576 \n", "3 293 294 294 296 296 296 296 \n", "4 91 91 91 91 91 91 91 \n", "5 1345 1347 1347 1347 1348 1349 1349 \n", "6 251 252 252 252 252 252 252 \n", "7 146 146 146 146 146 146 146 \n", "8 168 168 168 168 168 168 168 \n", "9 311 311 312 317 318 318 318 \n", "10 480 480 480 480 480 480 480 \n", "11 1271 1271 1271 1272 1272 1272 1272 \n", "12 64287 64786 65187 65596 65914 66337 66907 \n", "13 1016 1016 1016 1017 1017 1018 1018 \n", "14 75 75 75 75 75 75 75 \n", "15 631 631 631 631 631 631 631 \n", "16 934 934 934 934 935 935 935 \n", "17 93 93 93 93 93 93 93 \n", "18 121 121 121 121 121 121 122 \n", "19 71 71 71 72 72 73 73 \n", "20 18 18 18 18 18 18 18 \n", "21 245 245 245 245 245 245 245 \n", "22 755 756 756 756 756 756 758 \n", "23 335 336 337 337 337 337 337 \n", "24 133 133 133 133 133 133 133 \n", "25 527 529 531 534 538 538 538 \n", "26 135 135 135 136 136 136 136 \n", "27 1 1 1 1 1 1 1 \n", "28 76 76 76 76 76 76 76 \n", "29 174 174 174 174 174 174 174 \n", "30 1205 1205 1205 1205 1205 1205 1205 \n", "\n", "[31 rows x 44 columns]" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data_china = data[data[\"Country/Region\"] == \"Mainland China\"]\n", "data_china" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 1205\n", "1 [Zhejiang, Mainland China, 29.1832, 120.0934, ...\n", "Name: values, dtype: object" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#data_italy.values[0,[3]]\n", "#type(data_italy.values)\n", "df = {}\n", "for i in range(len(data_china.values)):\n", " for j in range(4, len(data_china.values[i])):\n", " df[\"values\"] = [data_china.values[i][j],data_china.values[i]]\n", "pd.DataFrame(df)[\"values\"]" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "40.1824" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data_china.values[1][2]" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "china_cities = []\n", "count = 1\n", "ind = []\n", "for i in range(len(data_china.values)):\n", " count = 0\n", " for j in range(len(data_china.values[i][4:])):\n", " china_cities+= [data_china.values[i][0]]\n", " ind += [count]\n", " count += 1" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "china_values=[]\n", "for i in range(len(data_china.values)):\n", " for j in range(4,len(data_china.values[i])): \n", " china_values+= [data_china.values[i][j]]\n", " " ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "df_china = pd.DataFrame(list(zip(china_values, china_cities,ind)), \n", " columns =['Values', 'Cities','Lags']) " ] }, { "cell_type": "code", "execution_count": 16, "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", "
ValuesCitiesLags
01Anhui0
19Anhui1
215Anhui2
339Anhui3
460Anhui4
............
12351205Zhejiang35
12361205Zhejiang36
12371205Zhejiang37
12381205Zhejiang38
12391205Zhejiang39
\n", "

1240 rows × 3 columns

\n", "
" ], "text/plain": [ " Values Cities Lags\n", "0 1 Anhui 0\n", "1 9 Anhui 1\n", "2 15 Anhui 2\n", "3 39 Anhui 3\n", "4 60 Anhui 4\n", "... ... ... ...\n", "1235 1205 Zhejiang 35\n", "1236 1205 Zhejiang 36\n", "1237 1205 Zhejiang 37\n", "1238 1205 Zhejiang 38\n", "1239 1205 Zhejiang 39\n", "\n", "[1240 rows x 3 columns]" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_china" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "scrolled": true }, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plot.ly" }, "data": [ { "hoverlabel": { "namelength": 0 }, "hovertemplate": "Cities=Anhui
Lags=%{x}
Values=%{y}", "legendgroup": "Anhui", "line": { "color": "#636efa", "dash": "solid" }, "mode": "lines", "name": "Anhui", "showlegend": true, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 1, 9, 15, 39, 60, 70, 106, 152, 200, 237, 297, 340, 408, 480, 530, 591, 665, 733, 779, 830, 860, 889, 910, 934, 950, 962, 973, 982, 986, 987, 988, 989, 989, 989, 989, 989, 989, 990, 990, 990 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "Cities=Beijing
Lags=%{x}
Values=%{y}", "legendgroup": "Beijing", "line": { "color": "#EF553B", "dash": "solid" }, "mode": "lines", "name": "Beijing", "showlegend": true, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 14, 22, 36, 41, 68, 80, 91, 111, 114, 139, 168, 191, 212, 228, 253, 274, 297, 315, 326, 337, 342, 352, 366, 372, 375, 380, 381, 387, 393, 395, 396, 399, 399, 399, 400, 400, 410, 410, 411, 413 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "Cities=Chongqing
Lags=%{x}
Values=%{y}", "legendgroup": "Chongqing", "line": { "color": "#00cc96", "dash": "solid" }, "mode": "lines", "name": "Chongqing", "showlegend": true, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 6, 9, 27, 57, 75, 110, 132, 147, 182, 211, 247, 300, 337, 366, 389, 411, 426, 428, 468, 486, 505, 518, 529, 537, 544, 551, 553, 555, 560, 567, 572, 573, 575, 576, 576, 576, 576, 576, 576, 576 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "Cities=Fujian
Lags=%{x}
Values=%{y}", "legendgroup": "Fujian", "line": { "color": "#ab63fa", "dash": "solid" }, "mode": "lines", "name": "Fujian", "showlegend": true, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 1, 5, 10, 18, 35, 59, 80, 84, 101, 120, 144, 159, 179, 194, 205, 215, 224, 239, 250, 261, 267, 272, 279, 281, 285, 287, 290, 292, 293, 293, 293, 293, 293, 293, 294, 294, 296, 296, 296, 296 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "Cities=Gansu
Lags=%{x}
Values=%{y}", "legendgroup": "Gansu", "line": { "color": "#FFA15A", "dash": "solid" }, "mode": "lines", "name": "Gansu", "showlegend": true, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 0, 2, 2, 4, 7, 14, 19, 24, 26, 29, 40, 51, 55, 57, 62, 62, 67, 79, 83, 83, 86, 87, 90, 90, 90, 90, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "Cities=Guangdong
Lags=%{x}
Values=%{y}", "legendgroup": "Guangdong", "line": { "color": "#19d3f3", "dash": "solid" }, "mode": "lines", "name": "Guangdong", "showlegend": true, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 26, 32, 53, 78, 111, 151, 207, 277, 354, 436, 535, 632, 725, 813, 895, 970, 1034, 1095, 1131, 1159, 1177, 1219, 1241, 1261, 1294, 1316, 1322, 1328, 1331, 1332, 1333, 1339, 1342, 1345, 1347, 1347, 1347, 1348, 1349, 1349 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "Cities=Guangxi
Lags=%{x}
Values=%{y}", "legendgroup": "Guangxi", "line": { "color": "#FF6692", "dash": "solid" }, "mode": "lines", "name": "Guangxi", "showlegend": true, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 2, 5, 23, 23, 36, 46, 51, 58, 78, 87, 100, 111, 127, 139, 150, 168, 172, 183, 195, 210, 215, 222, 222, 226, 235, 237, 238, 242, 244, 245, 246, 249, 249, 251, 252, 252, 252, 252, 252, 252 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "Cities=Guizhou
Lags=%{x}
Values=%{y}", "legendgroup": "Guizhou", "line": { "color": "#B6E880", "dash": "solid" }, "mode": "lines", "name": "Guizhou", "showlegend": true, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 1, 3, 3, 4, 5, 7, 9, 9, 12, 29, 29, 38, 46, 58, 64, 71, 81, 89, 99, 109, 127, 133, 135, 140, 143, 144, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "Cities=Hainan
Lags=%{x}
Values=%{y}", "legendgroup": "Hainan", "line": { "color": "#FF97FF", "dash": "solid" }, "mode": "lines", "name": "Hainan", "showlegend": true, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 4, 5, 8, 19, 22, 33, 40, 43, 46, 52, 62, 64, 72, 80, 99, 106, 117, 124, 131, 138, 144, 157, 157, 159, 162, 162, 163, 163, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "Cities=Hebei
Lags=%{x}
Values=%{y}", "legendgroup": "Hebei", "line": { "color": "#FECB52", "dash": "solid" }, "mode": "lines", "name": "Hebei", "showlegend": true, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 1, 1, 2, 8, 13, 18, 33, 48, 65, 82, 96, 104, 113, 126, 135, 157, 172, 195, 206, 218, 239, 251, 265, 283, 291, 300, 301, 306, 306, 307, 308, 309, 311, 311, 311, 312, 317, 318, 318, 318 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "Cities=Heilongjiang
Lags=%{x}
Values=%{y}", "legendgroup": "Heilongjiang", "line": { "color": "#636efa", "dash": "solid" }, "mode": "lines", "name": "Heilongjiang", "showlegend": true, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 0, 2, 4, 9, 15, 21, 33, 38, 44, 59, 80, 95, 121, 155, 190, 227, 277, 295, 307, 331, 360, 378, 395, 419, 425, 445, 457, 464, 470, 476, 479, 479, 480, 480, 480, 480, 480, 480, 480, 480 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "Cities=Henan
Lags=%{x}
Values=%{y}", "legendgroup": "Henan", "line": { "color": "#EF553B", "dash": "solid" }, "mode": "lines", "name": "Henan", "showlegend": true, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 5, 5, 9, 32, 83, 128, 168, 206, 278, 352, 422, 493, 566, 675, 764, 851, 914, 981, 1033, 1073, 1105, 1135, 1169, 1184, 1212, 1231, 1246, 1257, 1262, 1265, 1267, 1270, 1271, 1271, 1271, 1271, 1272, 1272, 1272, 1272 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "Cities=Hubei
Lags=%{x}
Values=%{y}", "legendgroup": "Hubei", "line": { "color": "#00cc96", "dash": "solid" }, "mode": "lines", "name": "Hubei", "showlegend": true, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 444, 444, 549, 761, 1058, 1423, 3554, 3554, 4903, 5806, 7153, 11177, 13522, 16678, 19665, 22112, 24953, 27100, 29631, 31728, 33366, 33366, 48206, 54406, 56249, 58182, 59989, 61682, 62031, 62442, 62662, 64084, 64084, 64287, 64786, 65187, 65596, 65914, 66337, 66907 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "Cities=Hunan
Lags=%{x}
Values=%{y}", "legendgroup": "Hunan", "line": { "color": "#ab63fa", "dash": "solid" }, "mode": "lines", "name": "Hunan", "showlegend": true, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 4, 9, 24, 43, 69, 100, 143, 221, 277, 332, 389, 463, 521, 593, 661, 711, 772, 803, 838, 879, 912, 946, 968, 988, 1001, 1004, 1006, 1007, 1008, 1010, 1011, 1013, 1016, 1016, 1016, 1016, 1017, 1017, 1018, 1018 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "Cities=Inner Mongolia
Lags=%{x}
Values=%{y}", "legendgroup": "Inner Mongolia", "line": { "color": "#FFA15A", "dash": "solid" }, "mode": "lines", "name": "Inner Mongolia", "showlegend": true, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 0, 0, 1, 7, 7, 11, 15, 16, 19, 20, 23, 27, 34, 35, 42, 46, 50, 52, 54, 58, 58, 60, 61, 65, 68, 70, 72, 73, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "Cities=Jiangsu
Lags=%{x}
Values=%{y}", "legendgroup": "Jiangsu", "line": { "color": "#19d3f3", "dash": "solid" }, "mode": "lines", "name": "Jiangsu", "showlegend": true, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 1, 5, 9, 18, 33, 47, 70, 99, 129, 168, 202, 236, 271, 308, 341, 373, 408, 439, 468, 492, 515, 543, 570, 593, 604, 617, 626, 629, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "Cities=Jiangxi
Lags=%{x}
Values=%{y}", "legendgroup": "Jiangxi", "line": { "color": "#FF6692", "dash": "solid" }, "mode": "lines", "name": "Jiangxi", "showlegend": true, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 2, 7, 18, 18, 36, 72, 109, 109, 162, 240, 286, 333, 391, 476, 548, 600, 661, 698, 740, 771, 804, 844, 872, 900, 913, 925, 930, 933, 934, 934, 934, 934, 934, 934, 934, 934, 934, 935, 935, 935 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "Cities=Jilin
Lags=%{x}
Values=%{y}", "legendgroup": "Jilin", "line": { "color": "#B6E880", "dash": "solid" }, "mode": "lines", "name": "Jilin", "showlegend": true, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 0, 1, 3, 4, 4, 6, 8, 9, 14, 14, 17, 23, 31, 42, 54, 59, 65, 69, 78, 80, 81, 83, 84, 86, 88, 89, 89, 89, 90, 91, 91, 91, 91, 93, 93, 93, 93, 93, 93, 93 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "Cities=Liaoning
Lags=%{x}
Values=%{y}", "legendgroup": "Liaoning", "line": { "color": "#FF97FF", "dash": "solid" }, "mode": "lines", "name": "Liaoning", "showlegend": true, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 2, 3, 4, 17, 21, 27, 34, 39, 41, 48, 64, 70, 74, 81, 89, 94, 99, 105, 107, 108, 111, 116, 117, 119, 119, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 122 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "Cities=Ningxia
Lags=%{x}
Values=%{y}", "legendgroup": "Ningxia", "line": { "color": "#FECB52", "dash": "solid" }, "mode": "lines", "name": "Ningxia", "showlegend": true, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 1, 1, 2, 3, 4, 7, 11, 12, 17, 21, 26, 28, 31, 34, 34, 40, 43, 45, 45, 49, 53, 58, 64, 67, 70, 70, 70, 70, 71, 71, 71, 71, 71, 71, 71, 71, 72, 72, 73, 73 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "Cities=Qinghai
Lags=%{x}
Values=%{y}", "legendgroup": "Qinghai", "line": { "color": "#636efa", "dash": "solid" }, "mode": "lines", "name": "Qinghai", "showlegend": true, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 0, 0, 0, 1, 1, 6, 6, 6, 8, 8, 9, 11, 13, 15, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "Cities=Shaanxi
Lags=%{x}
Values=%{y}", "legendgroup": "Shaanxi", "line": { "color": "#EF553B", "dash": "solid" }, "mode": "lines", "name": "Shaanxi", "showlegend": true, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 0, 3, 5, 15, 22, 35, 46, 56, 63, 87, 101, 116, 128, 142, 165, 173, 184, 195, 208, 213, 219, 225, 229, 230, 232, 236, 240, 240, 242, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "Cities=Shandong
Lags=%{x}
Values=%{y}", "legendgroup": "Shandong", "line": { "color": "#00cc96", "dash": "solid" }, "mode": "lines", "name": "Shandong", "showlegend": true, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 2, 6, 15, 27, 46, 75, 95, 130, 158, 184, 206, 230, 259, 275, 307, 347, 386, 416, 444, 466, 487, 497, 509, 523, 532, 537, 541, 543, 544, 546, 749, 750, 754, 755, 756, 756, 756, 756, 756, 758 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "Cities=Shanghai
Lags=%{x}
Values=%{y}", "legendgroup": "Shanghai", "line": { "color": "#ab63fa", "dash": "solid" }, "mode": "lines", "name": "Shanghai", "showlegend": true, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 9, 16, 20, 33, 40, 53, 66, 96, 112, 135, 169, 182, 203, 219, 243, 257, 277, 286, 293, 299, 303, 311, 315, 318, 326, 328, 333, 333, 333, 334, 334, 335, 335, 335, 336, 337, 337, 337, 337, 337 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "Cities=Shanxi
Lags=%{x}
Values=%{y}", "legendgroup": "Shanxi", "line": { "color": "#FFA15A", "dash": "solid" }, "mode": "lines", "name": "Shanxi", "showlegend": true, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 1, 1, 1, 6, 9, 13, 27, 27, 35, 39, 47, 66, 74, 81, 81, 96, 104, 115, 119, 119, 124, 126, 126, 127, 128, 129, 130, 131, 131, 132, 132, 132, 132, 133, 133, 133, 133, 133, 133, 133 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "Cities=Sichuan
Lags=%{x}
Values=%{y}", "legendgroup": "Sichuan", "line": { "color": "#19d3f3", "dash": "solid" }, "mode": "lines", "name": "Sichuan", "showlegend": true, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 5, 8, 15, 28, 44, 69, 90, 108, 142, 177, 207, 231, 254, 282, 301, 321, 344, 364, 386, 405, 417, 436, 451, 463, 470, 481, 495, 508, 514, 520, 525, 526, 526, 527, 529, 531, 534, 538, 538, 538 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "Cities=Tianjin
Lags=%{x}
Values=%{y}", "legendgroup": "Tianjin", "line": { "color": "#FF6692", "dash": "solid" }, "mode": "lines", "name": "Tianjin", "showlegend": true, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 4, 4, 8, 10, 14, 23, 24, 27, 31, 32, 41, 48, 60, 67, 69, 79, 81, 88, 91, 95, 106, 112, 119, 120, 122, 124, 125, 128, 130, 131, 132, 135, 135, 135, 135, 135, 136, 136, 136, 136 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "Cities=Tibet
Lags=%{x}
Values=%{y}", "legendgroup": "Tibet", "line": { "color": "#B6E880", "dash": "solid" }, "mode": "lines", "name": "Tibet", "showlegend": true, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "Cities=Xinjiang
Lags=%{x}
Values=%{y}", "legendgroup": "Xinjiang", "line": { "color": "#FF97FF", "dash": "solid" }, "mode": "lines", "name": "Xinjiang", "showlegend": true, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 0, 2, 2, 3, 4, 5, 10, 13, 14, 17, 18, 21, 24, 29, 32, 36, 39, 42, 45, 49, 55, 59, 63, 65, 70, 71, 75, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "Cities=Yunnan
Lags=%{x}
Values=%{y}", "legendgroup": "Yunnan", "line": { "color": "#FECB52", "dash": "solid" }, "mode": "lines", "name": "Yunnan", "showlegend": true, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 1, 2, 5, 11, 16, 26, 44, 55, 70, 83, 93, 105, 117, 122, 128, 133, 138, 138, 141, 149, 153, 154, 156, 162, 168, 171, 171, 172, 172, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "Cities=Zhejiang
Lags=%{x}
Values=%{y}", "legendgroup": "Zhejiang", "line": { "color": "#636efa", "dash": "solid" }, "mode": "lines", "name": "Zhejiang", "showlegend": true, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 10, 27, 43, 62, 104, 128, 173, 296, 428, 538, 599, 661, 724, 829, 895, 954, 1006, 1048, 1075, 1092, 1117, 1131, 1145, 1155, 1162, 1167, 1171, 1172, 1174, 1175, 1203, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205 ], "yaxis": "y" } ], "layout": { "legend": { "title": { "text": "Cities" }, "tracegroupgap": 0 }, "margin": { "t": 60 }, "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 } }, "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": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "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 }, "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", "domain": [ 0, 1 ], "title": { "text": "Lags" } }, "yaxis": { "anchor": "x", "domain": [ 0, 1 ], "title": { "text": "Values" } } } }, "text/html": [ "
\n", " \n", " \n", "
\n", " \n", "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import plotly.express as px\n", "fig = px.line(df_china, x=\"Lags\", y = \"Values\", color=\"Cities\")\n", "fig.show()" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "image/png": "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HO3aub5gmz9/vluLz6WUHCn4pptuom/fvmzZskVPigwGA08//TT+/v506tSJVq1asWvXLpo3b05aWhqLFy8mJsZ1L+zUqVPZunVruY57uU489AfYNI+XG7ryWgxBl9/KmZycrE8//vjjzJs3j3379tGxY0cAkpKSuOOOOwAYN24ckydPJjs7m+jo6DLLvli912TVIilatmwZBw4cYN68eW5d2q699lr8/f1Zv349AwcOZNu2bWRlZZGUlARA7969eemll7jpppuoX78+a9asoVu3bvqNejfeeCNr1qzhkUce4cSJE3z99ddMnToVcP0grFy5ks2bN9O1a1c+/vhjgoODadOmjVts0dHRbj8c2dnZlfofqdPp9On/qMH1B9rXzxFqVl2aVStv5H9Fx4BEevtfU+64a0tdQs2qz8sl9ek7pC5rn5deeokJEybo8/v376d169acOnUKs9msXzsVMxgMnDhx4pJlHjt2jCZNmujzkZGRhIeHc+zYMT0pio2N1deHhITo3esyMzO57rrr9HXh4eFERESU61w2bNjAU089xcGDB1FVlYKCAlq3bq2vj4qKwt/f3+24xSMTZ2Zm6l+GA27Ttc2LL77Im2++SWZmJoqikJub69Zad37dgeu+pfIkRRer95rM60nRyZMn+e9//4u/v79bhjl06FCGDx/Ok08+ydKlS1m7di3169dnxowZmEwmANq3b8+IESN46qmnKCgooGPHjjzwwAN6GQ888ABLly4lJSVFH52u+Bc0PDycGTNmkJqaypIlS2jSpAlPPvlkre93LGofVdN4u2ALQfgzIjip1vS9FkKI2iA6Oprg4GB27drlluAUS09Pv+i+jRo1chuAKicnh9zcXBo1alTmcRs2bMjRo0f1+dzcXM6ePVvmflarlSFDhvDWW28xZMgQ/P39GTRokN4DqLzHLb7eKxlDbbJ161YWLFjA//73P9q0aYPBYCAyMrLcn2Nt5PWkqF69enz88ccXXd+kSRNeeOGFi64fMGAAAwYMKHVdWFiYW1Py+a699tpyN+UK4au+tO7md0cW/zTdQYDi9T8JQghR4z0V85Tefc2TTIGmCu9jMBh44IEHmDRpEq+99hoNGjTg5MmTfPfdd3rXqYtJTk5m3rx59OvXj7i4OKZMmUKPHj30VqJLGTFiBHfddRdjx47lqquuYubMmW6jCV+M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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import pandas as pd\n", "import numpy as np\n", "from pandas.api.types import CategoricalDtype\n", "from plotnine import *\n", "from plotnine.data import mpg\n", "(ggplot(df_china)\n", " + aes(x='Lags', y='Values', color='Cities')\n", " + geom_line()\n", " + labs(title='China Covid-19 Virus cases', x='Days', y='Number of case')\n", ")" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plot.ly" }, "data": [ { "hoverlabel": { "namelength": 0 }, "hovertemplate": "Cities=Anhui
Lags=%{x}
Values=%{y}", "legendgroup": "Anhui", "marker": { "color": "#636efa", "symbol": "circle" }, "mode": "markers", "name": "Anhui", "showlegend": true, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 1, 9, 15, 39, 60, 70, 106, 152, 200, 237, 297, 340, 408, 480, 530, 591, 665, 733, 779, 830, 860, 889, 910, 934, 950, 962, 973, 982, 986, 987, 988, 989, 989, 989, 989, 989, 989, 990, 990, 990 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "OLS trendline
Values = 30.4596 * Lags + 52.7134
R2=0.879861

Cities=Anhui
Lags=%{x}
Values=%{y} (trend)", "legendgroup": "Anhui", "marker": { "color": "#636efa", "symbol": "circle" }, "mode": "lines", "name": "Anhui", "showlegend": false, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 52.7134146341468, 83.17298311444696, 113.63255159474713, 144.09212007504726, 174.55168855534743, 205.0112570356476, 235.47082551594775, 265.9303939962479, 296.3899624765481, 326.8495309568482, 357.30909943714835, 387.7686679174485, 418.2282363977487, 448.68780487804884, 479.147373358349, 509.60694183864916, 540.0665103189493, 570.5260787992495, 600.9856472795497, 631.4452157598498, 661.90478424015, 692.3643527204501, 722.8239212007503, 753.2834896810505, 783.7430581613506, 814.2026266416508, 844.662195121951, 875.1217636022511, 905.5813320825513, 936.0409005628514, 966.5004690431516, 996.9600375234518, 1027.4196060037518, 1057.879174484052, 1088.3387429643522, 1118.7983114446524, 1149.2578799249525, 1179.7174484052528, 1210.1770168855528, 1240.636585365853 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "Cities=Beijing
Lags=%{x}
Values=%{y}", "legendgroup": "Beijing", "marker": { "color": "#EF553B", "symbol": "circle" }, "mode": "markers", "name": "Beijing", "showlegend": true, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 14, 22, 36, 41, 68, 80, 91, 111, 114, 139, 168, 191, 212, 228, 253, 274, 297, 315, 326, 337, 342, 352, 366, 372, 375, 380, 381, 387, 393, 395, 396, 399, 399, 399, 400, 400, 410, 410, 411, 413 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "OLS trendline
Values = 11.0498 * Lags + 61.9537
R2=0.890561

Cities=Beijing
Lags=%{x}
Values=%{y} (trend)", "legendgroup": "Beijing", "marker": { "color": "#EF553B", "symbol": "circle" }, "mode": "lines", "name": "Beijing", "showlegend": false, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 61.95365853658552, 73.00347091932473, 84.05328330206393, 95.10309568480312, 106.15290806754233, 117.20272045028153, 128.25253283302072, 139.30234521575994, 150.35215759849913, 161.40196998123832, 172.45178236397754, 183.50159474671673, 194.55140712945592, 205.60121951219514, 216.65103189493433, 227.70084427767355, 238.75065666041274, 249.80046904315194, 260.8502814258911, 271.90009380863034, 282.94990619136956, 293.9997185741088, 305.04953095684795, 316.09934333958716, 327.1491557223263, 338.19896810506555, 349.24878048780477, 360.298592870544, 371.34840525328315, 382.39821763602237, 393.4480300187616, 404.49784240150075, 415.54765478423997, 426.5974671669792, 437.64727954971835, 448.69709193245757, 459.7469043151968, 470.79671669793595, 481.84652908067517, 492.8963414634144 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "Cities=Chongqing
Lags=%{x}
Values=%{y}", "legendgroup": "Chongqing", "marker": { "color": "#00cc96", "symbol": "circle" }, "mode": "markers", "name": "Chongqing", "showlegend": true, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 6, 9, 27, 57, 75, 110, 132, 147, 182, 211, 247, 300, 337, 366, 389, 411, 426, 428, 468, 486, 505, 518, 529, 537, 544, 551, 553, 555, 560, 567, 572, 573, 575, 576, 576, 576, 576, 576, 576, 576 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "OLS trendline
Values = 15.8057 * Lags + 91.4134
R2=0.865912

Cities=Chongqing
Lags=%{x}
Values=%{y} (trend)", "legendgroup": "Chongqing", "marker": { "color": "#00cc96", "symbol": "circle" }, "mode": "lines", "name": "Chongqing", "showlegend": false, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 91.41341463414656, 107.21913696060058, 123.0248592870546, 138.83058161350863, 154.63630393996263, 170.44202626641663, 186.24774859287066, 202.0534709193247, 217.8591932457787, 233.66491557223273, 249.47063789868673, 265.2763602251407, 281.0820825515948, 296.88780487804877, 312.6935272045028, 328.49924953095683, 344.3049718574108, 360.1106941838649, 375.91641651031887, 391.72213883677284, 407.52786116322693, 423.3335834896809, 439.1393058161349, 454.94502814258897, 470.75075046904294, 486.55647279549703, 502.362195121951, 518.167917448405, 533.9736397748591, 549.779362101313, 565.585084427767, 581.3908067542211, 597.1965290806751, 613.002251407129, 628.8079737335831, 644.6136960600371, 660.4194183864912, 676.2251407129452, 692.0308630393992, 707.8365853658532 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "Cities=Fujian
Lags=%{x}
Values=%{y}", "legendgroup": "Fujian", "marker": { "color": "#ab63fa", "symbol": "circle" }, "mode": "markers", "name": "Fujian", "showlegend": true, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 1, 5, 10, 18, 35, 59, 80, 84, 101, 120, 144, 159, 179, 194, 205, 215, 224, 239, 250, 261, 267, 272, 279, 281, 285, 287, 290, 292, 293, 293, 293, 293, 293, 293, 294, 294, 296, 296, 296, 296 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "OLS trendline
Values = 8.02814 * Lags + 52.6012
R2=0.840346

Cities=Fujian
Lags=%{x}
Values=%{y} (trend)", "legendgroup": "Fujian", "marker": { "color": "#ab63fa", "symbol": "circle" }, "mode": "lines", "name": "Fujian", "showlegend": false, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 52.60121951219525, 60.62936210131344, 68.65750469043164, 76.68564727954983, 84.71378986866802, 92.7419324577862, 100.7700750469044, 108.7982176360226, 116.82636022514077, 124.85450281425898, 132.88264540337715, 140.91078799249536, 148.93893058161356, 156.96707317073174, 164.99521575984994, 173.02335834896812, 181.05150093808632, 189.07964352720452, 197.1077861163227, 205.1359287054409, 213.16407129455908, 221.19221388367728, 229.22035647279546, 237.24849906191366, 245.27664165103187, 253.30478424015004, 261.3329268292682, 269.3610694183864, 277.3892120075046, 285.4173545966228, 293.445497185741, 301.4736397748592, 309.5017823639774, 317.5299249530956, 325.5580675422138, 333.58621013133194, 341.61435272045014, 349.64249530956835, 357.67063789868655, 365.6987804878047 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "Cities=Gansu
Lags=%{x}
Values=%{y}", "legendgroup": "Gansu", "marker": { "color": "#FFA15A", "symbol": "circle" }, "mode": "markers", "name": "Gansu", "showlegend": true, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 0, 2, 2, 4, 7, 14, 19, 24, 26, 29, 40, 51, 55, 57, 62, 62, 67, 79, 83, 83, 86, 87, 90, 90, 90, 90, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "OLS trendline
Values = 2.58002 * Lags + 14.0146
R2=0.821566

Cities=Gansu
Lags=%{x}
Values=%{y} (trend)", "legendgroup": "Gansu", "marker": { "color": "#FFA15A", "symbol": "circle" }, "mode": "lines", "name": "Gansu", "showlegend": false, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 14.014634146341503, 16.59465290806758, 19.174671669793653, 21.75469043151973, 24.334709193245807, 26.914727954971884, 29.49474671669796, 32.074765478424034, 34.65478424015011, 37.23480300187619, 39.81482176360227, 42.394840525328334, 44.974859287054414, 47.554878048780495, 50.13489681050656, 52.71491557223264, 55.29493433395872, 57.87495309568479, 60.45497185741087, 63.03499061913695, 65.61500938086303, 68.1950281425891, 70.77504690431518, 73.35506566604126, 75.93508442776732, 78.5151031894934, 81.09512195121948, 83.67514071294556, 86.25515947467163, 88.83517823639771, 91.41519699812379, 93.99521575984986, 96.57523452157594, 99.15525328330202, 101.73527204502808, 104.31529080675416, 106.89530956848024, 109.47532833020631, 112.05534709193239, 114.63536585365847 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "Cities=Guangdong
Lags=%{x}
Values=%{y}", "legendgroup": "Guangdong", "marker": { "color": "#19d3f3", "symbol": "circle" }, "mode": "markers", "name": "Guangdong", "showlegend": true, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 26, 32, 53, 78, 111, 151, 207, 277, 354, 436, 535, 632, 725, 813, 895, 970, 1034, 1095, 1131, 1159, 1177, 1219, 1241, 1261, 1294, 1316, 1322, 1328, 1331, 1332, 1333, 1339, 1342, 1345, 1347, 1347, 1347, 1348, 1349, 1349 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "OLS trendline
Values = 38.6686 * Lags + 170.488
R2=0.853271

Cities=Guangdong
Lags=%{x}
Values=%{y} (trend)", "legendgroup": "Guangdong", "marker": { "color": "#19d3f3", "symbol": "circle" }, "mode": "lines", "name": "Guangdong", "showlegend": false, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 170.4878048780494, 209.15637898686737, 247.82495309568534, 286.4935272045033, 325.1621013133213, 363.8306754221393, 402.4992495309573, 441.1678236397752, 479.8363977485932, 518.5049718574112, 557.1735459662292, 595.8421200750471, 634.5106941838651, 673.1792682926831, 711.847842401501, 750.516416510319, 789.184990619137, 827.853564727955, 866.522138836773, 905.1907129455909, 943.8592870544089, 982.5278611632269, 1021.1964352720448, 1059.8650093808628, 1098.533583489681, 1137.2021575984988, 1175.870731707317, 1214.5393058161349, 1253.2078799249527, 1291.8764540337709, 1330.5450281425888, 1369.2136022514069, 1407.8821763602248, 1446.5507504690427, 1485.2193245778608, 1523.8878986866787, 1562.5564727954968, 1601.2250469043147, 1639.8936210131326, 1678.5621951219507 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "Cities=Guangxi
Lags=%{x}
Values=%{y}", "legendgroup": "Guangxi", "marker": { "color": "#FF6692", "symbol": "circle" }, "mode": "markers", "name": "Guangxi", "showlegend": true, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 2, 5, 23, 23, 36, 46, 51, 58, 78, 87, 100, 111, 127, 139, 150, 168, 172, 183, 195, 210, 215, 222, 222, 226, 235, 237, 238, 242, 244, 245, 246, 249, 249, 251, 252, 252, 252, 252, 252, 252 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "OLS trendline
Values = 7.01923 * Lags + 33.05
R2=0.895033

Cities=Guangxi
Lags=%{x}
Values=%{y} (trend)", "legendgroup": "Guangxi", "marker": { "color": "#FF6692", "symbol": "circle" }, "mode": "lines", "name": "Guangxi", "showlegend": false, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 33.05000000000011, 40.06923076923087, 47.08846153846164, 54.107692307692396, 61.12692307692316, 68.14615384615392, 75.16538461538468, 82.18461538461546, 89.2038461538462, 96.22307692307697, 103.24230769230773, 110.26153846153849, 117.28076923076925, 124.30000000000001, 131.31923076923078, 138.33846153846156, 145.3576923076923, 152.37692307692305, 159.39615384615382, 166.4153846153846, 173.43461538461537, 180.4538461538461, 187.47307692307686, 194.49230769230763, 201.5115384615384, 208.53076923076918, 215.5499999999999, 222.56923076923067, 229.58846153846144, 236.60769230769222, 243.626923076923, 250.6461538461537, 257.6653846153845, 264.68461538461526, 271.70384615384603, 278.7230769230768, 285.7423076923075, 292.7615384615383, 299.78076923076907, 306.79999999999984 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "Cities=Guizhou
Lags=%{x}
Values=%{y}", "legendgroup": "Guizhou", "marker": { "color": "#B6E880", "symbol": "circle" }, "mode": "markers", "name": "Guizhou", "showlegend": true, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 1, 3, 3, 4, 5, 7, 9, 9, 12, 29, 29, 38, 46, 58, 64, 71, 81, 89, 99, 109, 127, 133, 135, 140, 143, 144, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "OLS trendline
Values = 4.75572 * Lags + -1.93659
R2=0.887764

Cities=Guizhou
Lags=%{x}
Values=%{y} (trend)", "legendgroup": "Guizhou", "marker": { "color": "#B6E880", "symbol": "circle" }, "mode": "lines", "name": "Guizhou", "showlegend": false, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ -1.93658536585359, 2.8191369606004395, 7.574859287054469, 12.330581613508498, 17.086303939962526, 21.84202626641656, 26.597748592870587, 31.35347091932462, 36.10919324577865, 40.864915572232675, 45.62063789868671, 50.376360225140736, 55.13208255159476, 59.8878048780488, 64.64352720450283, 69.39924953095685, 74.15497185741089, 78.91069418386492, 83.66641651031894, 88.42213883677297, 93.177861163227, 97.93358348968103, 102.68930581613506, 107.4450281425891, 112.20075046904311, 116.95647279549715, 121.71219512195118, 126.4679174484052, 131.22363977485924, 135.97936210131326, 140.73508442776728, 145.49080675422132, 150.24652908067534, 155.00225140712936, 159.7579737335834, 164.51369606003743, 169.26941838649145, 174.0251407129455, 178.78086303939952, 183.53658536585354 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "Cities=Hainan
Lags=%{x}
Values=%{y}", "legendgroup": "Hainan", "marker": { "color": "#FF97FF", "symbol": "circle" }, "mode": "markers", "name": "Hainan", "showlegend": true, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 4, 5, 8, 19, 22, 33, 40, 43, 46, 52, 62, 64, 72, 80, 99, 106, 117, 124, 131, 138, 144, 157, 157, 159, 162, 162, 163, 163, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "OLS trendline
Values = 4.80056 * Lags + 20.089
R2=0.885848

Cities=Hainan
Lags=%{x}
Values=%{y} (trend)", "legendgroup": "Hainan", "marker": { "color": "#FF97FF", "symbol": "circle" }, "mode": "lines", "name": "Hainan", "showlegend": false, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 20.089024390243978, 24.889587242026337, 29.690150093808697, 34.490712945591056, 39.291275797373416, 44.091838649155775, 48.892401500938135, 53.692964352720495, 58.493527204502854, 63.294090056285214, 68.09465290806757, 72.89521575984993, 77.69577861163229, 82.49634146341465, 87.29690431519701, 92.09746716697937, 96.89803001876173, 101.69859287054409, 106.49915572232645, 111.29971857410881, 116.10028142589117, 120.90084427767353, 125.70140712945589, 130.50196998123823, 135.30253283302062, 140.10309568480295, 144.90365853658534, 149.70422138836767, 154.50478424015006, 159.3053470919324, 164.10590994371478, 168.9064727954971, 173.7070356472795, 178.50759849906183, 183.30816135084422, 188.10872420262655, 192.90928705440894, 197.70984990619127, 202.51041275797365, 207.31097560975599 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "Cities=Hebei
Lags=%{x}
Values=%{y}", "legendgroup": "Hebei", "marker": { "color": "#FECB52", "symbol": "circle" }, "mode": "markers", "name": "Hebei", "showlegend": true, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 1, 1, 2, 8, 13, 18, 33, 48, 65, 82, 96, 104, 113, 126, 135, 157, 172, 195, 206, 218, 239, 251, 265, 283, 291, 300, 301, 306, 306, 307, 308, 309, 311, 311, 311, 312, 317, 318, 318, 318 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "OLS trendline
Values = 9.80028 * Lags + 3.26951
R2=0.927881

Cities=Hebei
Lags=%{x}
Values=%{y} (trend)", "legendgroup": "Hebei", "marker": { "color": "#FECB52", "symbol": "circle" }, "mode": "lines", "name": "Hebei", "showlegend": false, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 3.2695121951220933, 13.069793621013266, 22.87007504690444, 32.67035647279562, 42.47063789868679, 52.27091932457796, 62.07120075046913, 71.8714821763603, 81.67176360225147, 91.47204502814265, 101.27232645403382, 111.07260787992499, 120.87288930581617, 130.67317073170736, 140.47345215759853, 150.2737335834897, 160.07401500938087, 169.87429643527204, 179.67457786116321, 189.4748592870544, 199.27514071294556, 209.07542213883673, 218.8757035647279, 228.67598499061907, 238.47626641651027, 248.27654784240144, 258.0768292682926, 267.8771106941838, 277.67739212007496, 287.4776735459661, 297.2779549718573, 307.07823639774847, 316.87851782363964, 326.6787992495308, 336.479080675422, 346.27936210131315, 356.0796435272043, 365.8799249530955, 375.68020637898667, 385.48048780487784 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "Cities=Heilongjiang
Lags=%{x}
Values=%{y}", "legendgroup": "Heilongjiang", "marker": { "color": "#636efa", "symbol": "circle" }, "mode": "markers", "name": "Heilongjiang", "showlegend": true, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 0, 2, 4, 9, 15, 21, 33, 38, 44, 59, 80, 95, 121, 155, 190, 227, 277, 295, 307, 331, 360, 378, 395, 419, 425, 445, 457, 464, 470, 476, 479, 479, 480, 480, 480, 480, 480, 480, 480, 480 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "OLS trendline
Values = 15.7197 * Lags + -21.7841
R2=0.920321

Cities=Heilongjiang
Lags=%{x}
Values=%{y} (trend)", "legendgroup": "Heilongjiang", "marker": { "color": "#636efa", "symbol": "circle" }, "mode": "lines", "name": "Heilongjiang", "showlegend": false, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ -21.784146341463206, -6.064446529080481, 9.655253283302244, 25.374953095684965, 41.094652908067694, 56.81435272045042, 72.53405253283313, 88.25375234521587, 103.97345215759859, 119.6931519699813, 135.41285178236404, 151.13255159474676, 166.85225140712947, 182.57195121951221, 198.29165103189493, 214.01135084427767, 229.7310506566604, 245.4507504690431, 261.1704502814258, 276.8901500938086, 292.6098499061913, 308.329549718574, 324.04924953095673, 339.76894934333944, 355.48864915572216, 371.20834896810493, 386.92804878048764, 402.64774859287036, 418.36744840525307, 434.0871482176358, 449.80684803001856, 465.52654784240127, 481.246247654784, 496.9659474671667, 512.6856472795495, 528.4053470919322, 544.1250469043149, 559.8447467166976, 575.5644465290804, 591.2841463414632 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "Cities=Henan
Lags=%{x}
Values=%{y}", "legendgroup": "Henan", "marker": { "color": "#EF553B", "symbol": "circle" }, "mode": "markers", "name": "Henan", "showlegend": true, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 5, 5, 9, 32, 83, 128, 168, 206, 278, 352, 422, 493, 566, 675, 764, 851, 914, 981, 1033, 1073, 1105, 1135, 1169, 1184, 1212, 1231, 1246, 1257, 1262, 1265, 1267, 1270, 1271, 1271, 1271, 1271, 1272, 1272, 1272, 1272 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "OLS trendline
Values = 38.2984 * Lags + 98.5061
R2=0.871190

Cities=Henan
Lags=%{x}
Values=%{y} (trend)", "legendgroup": "Henan", "marker": { "color": "#EF553B", "symbol": "circle" }, "mode": "lines", "name": "Henan", "showlegend": false, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 98.50609756097619, 136.80450281425945, 175.10290806754273, 213.40131332082598, 251.69971857410928, 289.99812382739253, 328.2965290806758, 366.5949343339591, 404.89333958724234, 443.1917448405256, 481.4901500938089, 519.7885553470921, 558.0869606003754, 596.3853658536588, 634.683771106942, 672.9821763602253, 711.2805816135085, 749.5789868667918, 787.877392120075, 826.1757973733584, 864.4742026266416, 902.7726078799249, 941.0710131332081, 979.3694183864914, 1017.6678236397746, 1055.966228893058, 1094.2646341463412, 1132.5630393996246, 1170.861444652908, 1209.159849906191, 1247.4582551594744, 1285.7566604127576, 1324.055065666041, 1362.3534709193243, 1400.6518761726074, 1438.9502814258908, 1477.248686679174, 1515.5470919324573, 1553.8454971857407, 1592.1439024390238 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "Cities=Hubei
Lags=%{x}
Values=%{y}", "legendgroup": "Hubei", "marker": { "color": "#00cc96", "symbol": "circle" }, "mode": "markers", "name": "Hubei", "showlegend": true, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 444, 444, 549, 761, 1058, 1423, 3554, 3554, 4903, 5806, 7153, 11177, 13522, 16678, 19665, 22112, 24953, 27100, 29631, 31728, 33366, 33366, 48206, 54406, 56249, 58182, 59989, 61682, 62031, 62442, 62662, 64084, 64084, 64287, 64786, 65187, 65596, 65914, 66337, 66907 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "OLS trendline
Values = 2180.77 * Lags + -7375.64
R2=0.943146

Cities=Hubei
Lags=%{x}
Values=%{y} (trend)", "legendgroup": "Hubei", "marker": { "color": "#00cc96", "symbol": "circle" }, "mode": "lines", "name": "Hubei", "showlegend": false, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ -7375.641463414604, -5194.867542213855, -3014.0936210131067, -833.3196998123585, 1347.4542213883906, 3528.2281425891397, 5709.002063789887, 7889.775984990636, 10070.549906191385, 12251.323827392132, 14432.097748592883, 16612.871669793632, 18793.645590994376, 20974.419512195127, 23155.193433395878, 25335.96735459663, 27516.741275797373, 29697.515196998123, 31878.289118198867, 34059.06303939962, 36239.83696060037, 38420.61088180111, 40601.38480300186, 42782.158724202614, 44962.93264540336, 47143.70656660411, 49324.48048780486, 51505.25440900561, 53686.028330206354, 55866.802251407105, 58047.576172607856, 60228.35009380861, 62409.12401500935, 64589.897936210094, 66770.67185741085, 68951.4457786116, 71132.21969981234, 73312.9936210131, 75493.76754221384, 77674.54146341459 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "Cities=Hunan
Lags=%{x}
Values=%{y}", "legendgroup": "Hunan", "marker": { "color": "#ab63fa", "symbol": "circle" }, "mode": "markers", "name": "Hunan", "showlegend": true, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 4, 9, 24, 43, 69, 100, 143, 221, 277, 332, 389, 463, 521, 593, 661, 711, 772, 803, 838, 879, 912, 946, 968, 988, 1001, 1004, 1006, 1007, 1008, 1010, 1011, 1013, 1016, 1016, 1016, 1016, 1017, 1017, 1018, 1018 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "OLS trendline
Values = 29.7495 * Lags + 116.384
R2=0.850478

Cities=Hunan
Lags=%{x}
Values=%{y} (trend)", "legendgroup": "Hunan", "marker": { "color": "#ab63fa", "symbol": "circle" }, "mode": "lines", "name": "Hunan", "showlegend": false, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 116.38414634146389, 146.13367729831188, 175.8832082551599, 205.6327392120079, 235.38227016885588, 265.1318011257039, 294.8813320825519, 324.63086303939986, 354.3803939962479, 384.12992495309584, 413.8794559099439, 443.6289868667918, 473.37851782363987, 503.1280487804879, 532.8775797373359, 562.6271106941839, 592.3766416510318, 622.1261726078799, 651.8757035647278, 681.6252345215759, 711.3747654784238, 741.1242964352718, 770.8738273921198, 800.6233583489678, 830.3728893058159, 860.1224202626638, 889.8719512195119, 919.6214821763598, 949.3710131332078, 979.1205440900558, 1008.8700750469038, 1038.6196060037519, 1068.3691369606, 1098.118667917448, 1127.8681988742958, 1157.6177298311438, 1187.3672607879919, 1217.11679174484, 1246.866322701688, 1276.6158536585358 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "Cities=Inner Mongolia
Lags=%{x}
Values=%{y}", "legendgroup": "Inner Mongolia", "marker": { "color": "#FFA15A", "symbol": "circle" }, "mode": "markers", "name": "Inner Mongolia", "showlegend": true, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 0, 0, 1, 7, 7, 11, 15, 16, 19, 20, 23, 27, 34, 35, 42, 46, 50, 52, 54, 58, 58, 60, 61, 65, 68, 70, 72, 73, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "OLS trendline
Values = 2.21201 * Lags + 5.46585
R2=0.917210

Cities=Inner Mongolia
Lags=%{x}
Values=%{y} (trend)", "legendgroup": "Inner Mongolia", "marker": { "color": "#FFA15A", "symbol": "circle" }, "mode": "lines", "name": "Inner Mongolia", "showlegend": false, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 5.465853658536617, 7.677861163227046, 9.889868667917476, 12.101876172607906, 14.313883677298335, 16.525891181988765, 18.73789868667919, 20.94990619136962, 23.16191369606005, 25.37392120075048, 27.58592870544091, 29.79793621013134, 32.009943714821766, 34.2219512195122, 36.433958724202625, 38.64596622889306, 40.857973733583485, 43.06998123827391, 45.281988742964344, 47.49399624765477, 49.706003752345204, 51.91801125703563, 54.13001876172606, 56.34202626641649, 58.554033771106916, 60.76604127579735, 62.978048780487775, 65.19005628517822, 67.40206378986863, 69.61407129455907, 71.8260787992495, 74.03808630393992, 76.25009380863035, 78.46210131332079, 80.6741088180112, 82.88611632270164, 85.09812382739207, 87.3101313320825, 89.52213883677292, 91.73414634146336 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "Cities=Jiangsu
Lags=%{x}
Values=%{y}", "legendgroup": "Jiangsu", "marker": { "color": "#19d3f3", "symbol": "circle" }, "mode": "markers", "name": "Jiangsu", "showlegend": true, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 1, 5, 9, 18, 33, 47, 70, 99, 129, 168, 202, 236, 271, 308, 341, 373, 408, 439, 468, 492, 515, 543, 570, 593, 604, 617, 626, 629, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "OLS trendline
Values = 19.3812 * Lags + 31.7159
R2=0.894269

Cities=Jiangsu
Lags=%{x}
Values=%{y} (trend)", "legendgroup": "Jiangsu", "marker": { "color": "#19d3f3", "symbol": "circle" }, "mode": "lines", "name": "Jiangsu", "showlegend": false, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 31.715853658536858, 51.09709193245804, 70.47833020637923, 89.85956848030041, 109.2408067542216, 128.6220450281428, 148.00328330206395, 167.38452157598516, 186.76575984990632, 206.14699812382753, 225.52823639774869, 244.9094746716699, 264.29071294559105, 283.67195121951227, 303.0531894934334, 322.4344277673546, 341.8156660412758, 361.196904315197, 380.57814258911816, 399.9593808630393, 419.3406191369605, 438.72185741088174, 458.1030956848029, 477.48433395872405, 496.86557223264526, 516.2468105065665, 535.6280487804877, 555.0092870544088, 574.39052532833, 593.7717636022512, 613.1530018761723, 632.5342401500935, 651.9154784240147, 671.296716697936, 690.6779549718572, 710.0591932457783, 729.4404315196995, 748.8216697936207, 768.2029080675418, 787.584146341463 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "Cities=Jiangxi
Lags=%{x}
Values=%{y}", "legendgroup": "Jiangxi", "marker": { "color": "#FF6692", "symbol": "circle" }, "mode": "markers", "name": "Jiangxi", "showlegend": true, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 2, 7, 18, 18, 36, 72, 109, 109, 162, 240, 286, 333, 391, 476, 548, 600, 661, 698, 740, 771, 804, 844, 872, 900, 913, 925, 930, 933, 934, 934, 934, 934, 934, 934, 934, 934, 934, 935, 935, 935 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "OLS trendline
Values = 28.8485 * Lags + 52.6793
R2=0.869610

Cities=Jiangxi
Lags=%{x}
Values=%{y} (trend)", "legendgroup": "Jiangxi", "marker": { "color": "#FF6692", "symbol": "circle" }, "mode": "lines", "name": "Jiangxi", "showlegend": false, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 52.67926829268332, 81.52776735459699, 110.37626641651066, 139.22476547842433, 168.07326454033802, 196.9217636022517, 225.77026266416533, 254.61876172607901, 283.4672607879927, 312.3157598499064, 341.16425891182007, 370.0127579737337, 398.8612570356474, 427.70975609756107, 456.5582551594747, 485.4067542213884, 514.2552532833021, 543.1037523452158, 571.9522514071294, 600.8007504690431, 629.6492495309568, 658.4977485928704, 687.3462476547841, 716.1947467166978, 745.0432457786114, 773.8917448405251, 802.7402439024388, 831.5887429643525, 860.4372420262661, 889.2857410881797, 918.1342401500934, 946.9827392120071, 975.8312382739208, 1004.6797373358345, 1033.528236397748, 1062.3767354596619, 1091.2252345215754, 1120.073733583489, 1148.9222326454028, 1177.7707317073164 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "Cities=Jilin
Lags=%{x}
Values=%{y}", "legendgroup": "Jilin", "marker": { "color": "#B6E880", "symbol": "circle" }, "mode": "markers", "name": "Jilin", "showlegend": true, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 0, 1, 3, 4, 4, 6, 8, 9, 14, 14, 17, 23, 31, 42, 54, 59, 65, 69, 78, 80, 81, 83, 84, 86, 88, 89, 89, 89, 90, 91, 91, 91, 91, 93, 93, 93, 93, 93, 93, 93 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "OLS trendline
Values = 2.9121 * Lags + 2.58902
R2=0.866147

Cities=Jilin
Lags=%{x}
Values=%{y} (trend)", "legendgroup": "Jilin", "marker": { "color": "#B6E880", "symbol": "circle" }, "mode": "lines", "name": "Jilin", "showlegend": false, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 2.5890243902439414, 5.501125703564764, 8.413227016885587, 11.32532833020641, 14.237429643527232, 17.149530956848057, 20.06163227016888, 22.973733583489704, 25.885834896810525, 28.797936210131347, 31.710037523452172, 34.622138836773, 37.534240150093815, 40.44634146341464, 43.358442776735465, 46.27054409005628, 49.18264540337711, 52.094746716697934, 55.00684803001875, 57.91894934333958, 60.8310506566604, 63.74315196998122, 66.65525328330205, 69.56735459662286, 72.47945590994368, 75.39155722326451, 78.30365853658533, 81.21575984990615, 84.12786116322698, 87.0399624765478, 89.95206378986862, 92.86416510318945, 95.77626641651027, 98.68836772983109, 101.60046904315192, 104.51257035647274, 107.42467166979355, 110.33677298311439, 113.2488742964352, 116.16097560975602 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "Cities=Liaoning
Lags=%{x}
Values=%{y}", "legendgroup": "Liaoning", "marker": { "color": "#FF97FF", "symbol": "circle" }, "mode": "markers", "name": "Liaoning", "showlegend": true, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 2, 3, 4, 17, 21, 27, 34, 39, 41, 48, 64, 70, 74, 81, 89, 94, 99, 105, 107, 108, 111, 116, 117, 119, 119, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 122 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "OLS trendline
Values = 3.20385 * Lags + 25.65
R2=0.817986

Cities=Liaoning
Lags=%{x}
Values=%{y} (trend)", "legendgroup": "Liaoning", "marker": { "color": "#FF97FF", "symbol": "circle" }, "mode": "lines", "name": "Liaoning", "showlegend": false, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 25.650000000000052, 28.853846153846202, 32.057692307692356, 35.26153846153851, 38.46538461538466, 41.66923076923081, 44.87307692307696, 48.07692307692311, 51.28076923076926, 54.48461538461541, 57.68846153846157, 60.89230769230771, 64.09615384615387, 67.30000000000001, 70.50384615384617, 73.70769230769231, 76.91153846153847, 80.11538461538461, 83.31923076923077, 86.52307692307691, 89.72692307692307, 92.93076923076922, 96.13461538461537, 99.33846153846152, 102.54230769230767, 105.74615384615382, 108.94999999999997, 112.15384615384612, 115.35769230769228, 118.56153846153842, 121.76538461538458, 124.96923076923072, 128.17307692307688, 131.37692307692305, 134.5807692307692, 137.78461538461534, 140.98846153846148, 144.19230769230765, 147.3961538461538, 150.59999999999994 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "Cities=Ningxia
Lags=%{x}
Values=%{y}", "legendgroup": "Ningxia", "marker": { "color": "#FECB52", "symbol": "circle" }, "mode": "markers", "name": "Ningxia", "showlegend": true, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 1, 1, 2, 3, 4, 7, 11, 12, 17, 21, 26, 28, 31, 34, 34, 40, 43, 45, 45, 49, 53, 58, 64, 67, 70, 70, 70, 70, 71, 71, 71, 71, 71, 71, 71, 71, 72, 72, 73, 73 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "OLS trendline
Values = 2.16979 * Lags + 3.53902
R2=0.918136

Cities=Ningxia
Lags=%{x}
Values=%{y} (trend)", "legendgroup": "Ningxia", "marker": { "color": "#FECB52", "symbol": "circle" }, "mode": "lines", "name": "Ningxia", "showlegend": false, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 3.5390243902439344, 5.7088180112570655, 7.8786116322701965, 10.048405253283327, 12.218198874296458, 14.38799249530959, 16.55778611632272, 18.72757973733585, 20.897373358348982, 23.067166979362113, 25.236960600375244, 27.406754221388375, 29.576547842401506, 31.746341463414637, 33.916135084427765, 36.08592870544091, 38.255722326454034, 40.42551594746716, 42.59530956848029, 44.76510318949343, 46.93489681050656, 49.104690431519685, 51.27448405253281, 53.444277673545955, 55.61407129455908, 57.78386491557221, 59.95365853658534, 62.12345215759848, 64.2932457786116, 66.46303939962473, 68.63283302063788, 70.802626641651, 72.97242026266413, 75.14221388367726, 77.31200750469038, 79.48180112570353, 81.65159474671665, 83.82138836772978, 85.99118198874292, 88.16097560975605 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "Cities=Qinghai
Lags=%{x}
Values=%{y}", "legendgroup": "Qinghai", "marker": { "color": "#636efa", "symbol": "circle" }, "mode": "markers", "name": "Qinghai", "showlegend": true, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 0, 0, 0, 1, 1, 6, 6, 6, 8, 8, 9, 11, 13, 15, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "OLS trendline
Values = 0.460882 * Lags + 4.7878
R2=0.693309

Cities=Qinghai
Lags=%{x}
Values=%{y} (trend)", "legendgroup": "Qinghai", "marker": { "color": "#636efa", "symbol": "circle" }, "mode": "lines", "name": "Qinghai", "showlegend": false, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 4.787804878048789, 5.248686679174492, 5.709568480300195, 6.170450281425898, 6.631332082551602, 7.092213883677305, 7.553095684803007, 8.01397748592871, 8.474859287054414, 8.935741088180116, 9.39662288930582, 9.857504690431522, 10.318386491557225, 10.779268292682929, 11.240150093808632, 11.701031894934335, 12.161913696060038, 12.622795497185741, 13.083677298311445, 13.544559099437148, 14.005440900562851, 14.466322701688554, 14.927204502814257, 15.38808630393996, 15.848968105065662, 16.309849906191367, 16.77073170731707, 17.23161350844277, 17.692495309568475, 18.15337711069418, 18.61425891181988, 19.075140712945583, 19.536022514071288, 19.996904315196993, 20.457786116322694, 20.918667917448396, 21.3795497185741, 21.840431519699802, 22.301313320825507, 22.76219512195121 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "Cities=Shaanxi
Lags=%{x}
Values=%{y}", "legendgroup": "Shaanxi", "marker": { "color": "#EF553B", "symbol": "circle" }, "mode": "markers", "name": "Shaanxi", "showlegend": true, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 0, 3, 5, 15, 22, 35, 46, 56, 63, 87, 101, 116, 128, 142, 165, 173, 184, 195, 208, 213, 219, 225, 229, 230, 232, 236, 240, 240, 242, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "OLS trendline
Values = 7.0166 * Lags + 31.8012
R2=0.855478

Cities=Shaanxi
Lags=%{x}
Values=%{y} (trend)", "legendgroup": "Shaanxi", "marker": { "color": "#EF553B", "symbol": "circle" }, "mode": "lines", "name": "Shaanxi", "showlegend": false, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 31.801219512195235, 38.817823639774964, 45.8344277673547, 52.85103189493442, 59.86763602251416, 66.88424015009389, 73.90084427767361, 80.91744840525335, 87.93405253283308, 94.95065666041282, 101.96726078799254, 108.98386491557227, 116.000469043152, 123.01707317073173, 130.03367729831146, 137.0502814258912, 144.06688555347094, 151.08348968105065, 158.1000938086304, 165.11669793621013, 172.13330206378987, 179.14990619136958, 186.16651031894932, 193.18311444652906, 200.19971857410877, 207.2163227016885, 214.23292682926825, 221.249530956848, 228.2661350844277, 235.28273921200744, 242.29934333958718, 249.3159474671669, 256.33255159474663, 263.3491557223264, 270.36575984990606, 277.3823639774858, 284.39896810506553, 291.4155722326453, 298.432176360225, 305.44878048780475 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "Cities=Shandong
Lags=%{x}
Values=%{y}", "legendgroup": "Shandong", "marker": { "color": "#00cc96", "symbol": "circle" }, "mode": "markers", "name": "Shandong", "showlegend": true, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 2, 6, 15, 27, 46, 75, 95, 130, 158, 184, 206, 230, 259, 275, 307, 347, 386, 416, 444, 466, 487, 497, 509, 523, 532, 537, 541, 543, 544, 546, 749, 750, 754, 755, 756, 756, 756, 756, 756, 758 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "OLS trendline
Values = 21.8763 * Lags + -4.6122
R2=0.972076

Cities=Shandong
Lags=%{x}
Values=%{y} (trend)", "legendgroup": "Shandong", "marker": { "color": "#00cc96", "symbol": "circle" }, "mode": "lines", "name": "Shandong", "showlegend": false, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ -4.6121951219509185, 17.26407129455938, 39.14033771106968, 61.01660412757997, 82.89287054409027, 104.76913696060058, 126.64540337711085, 148.52166979362116, 170.39793621013146, 192.27420262664177, 214.15046904315207, 236.02673545966235, 257.90300187617265, 279.7792682926829, 301.65553470919326, 323.5318011257035, 345.40806754221387, 367.2843339587241, 389.1606003752345, 411.0368667917447, 432.9131332082551, 454.78939962476534, 476.6656660412756, 498.54193245778595, 520.4181988742962, 542.2944652908066, 564.1707317073168, 586.0469981238272, 607.9232645403374, 629.7995309568478, 651.675797373358, 673.5520637898684, 695.4283302063786, 717.3045966228889, 739.1808630393992, 761.0571294559095, 782.9333958724199, 804.8096622889301, 826.6859287054405, 848.5621951219507 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "Cities=Shanghai
Lags=%{x}
Values=%{y}", "legendgroup": "Shanghai", "marker": { "color": "#ab63fa", "symbol": "circle" }, "mode": "markers", "name": "Shanghai", "showlegend": true, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 9, 16, 20, 33, 40, 53, 66, 96, 112, 135, 169, 182, 203, 219, 243, 257, 277, 286, 293, 299, 303, 311, 315, 318, 326, 328, 333, 333, 333, 334, 334, 335, 335, 335, 336, 337, 337, 337, 337, 337 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "OLS trendline
Values = 9.09343 * Lags + 62.728
R2=0.829586

Cities=Shanghai
Lags=%{x}
Values=%{y} (trend)", "legendgroup": "Shanghai", "marker": { "color": "#ab63fa", "symbol": "circle" }, "mode": "lines", "name": "Shanghai", "showlegend": false, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 62.72804878048794, 71.82148217636035, 80.91491557223276, 90.00834896810517, 99.10178236397758, 108.19521575984999, 117.28864915572241, 126.38208255159482, 135.47551594746722, 144.56894934333963, 153.66238273921203, 162.75581613508444, 171.84924953095688, 180.9426829268293, 190.0361163227017, 199.1295497185741, 208.22298311444652, 217.31641651031893, 226.40984990619134, 235.50328330206375, 244.59671669793616, 253.69015009380857, 262.78358348968095, 271.8770168855534, 280.9704502814258, 290.06388367729824, 299.15731707317065, 308.25075046904306, 317.34418386491546, 326.4376172607879, 335.5310506566603, 344.6244840525327, 353.7179174484051, 362.8113508442775, 371.9047842401499, 380.99821763602233, 390.09165103189474, 399.18508442776715, 408.27851782363956, 417.37195121951197 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "Cities=Shanxi
Lags=%{x}
Values=%{y}", "legendgroup": "Shanxi", "marker": { "color": "#FFA15A", "symbol": "circle" }, "mode": "markers", "name": "Shanxi", "showlegend": true, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 1, 1, 1, 6, 9, 13, 27, 27, 35, 39, 47, 66, 74, 81, 81, 96, 104, 115, 119, 119, 124, 126, 126, 127, 128, 129, 130, 131, 131, 132, 132, 132, 132, 133, 133, 133, 133, 133, 133, 133 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "OLS trendline
Values = 3.85629 * Lags + 16.6024
R2=0.832861

Cities=Shanxi
Lags=%{x}
Values=%{y} (trend)", "legendgroup": "Shanxi", "marker": { "color": "#FFA15A", "symbol": "circle" }, "mode": "lines", "name": "Shanxi", "showlegend": false, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 16.6024390243903, 20.458724202626694, 24.31500938086309, 28.17129455909948, 32.02757973733588, 35.88386491557227, 39.740150093808666, 43.596435272045056, 47.45272045028145, 51.309005628517845, 55.165290806754236, 59.02157598499063, 62.877861163227024, 66.73414634146343, 70.59043151969982, 74.44671669793621, 78.3030018761726, 82.15928705440899, 86.01557223264538, 89.87185741088177, 93.72814258911816, 97.58442776735458, 101.44071294559097, 105.29699812382736, 109.15328330206376, 113.00956848030015, 116.86585365853654, 120.72213883677293, 124.57842401500932, 128.4347091932457, 132.29099437148213, 136.14727954971852, 140.0035647279549, 143.8598499061913, 147.7161350844277, 151.57242026266408, 155.42870544090047, 159.28499061913686, 163.14127579737325, 166.99756097560964 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "Cities=Sichuan
Lags=%{x}
Values=%{y}", "legendgroup": "Sichuan", "marker": { "color": "#19d3f3", "symbol": "circle" }, "mode": "markers", "name": "Sichuan", "showlegend": true, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 5, 8, 15, 28, 44, 69, 90, 108, 142, 177, 207, 231, 254, 282, 301, 321, 344, 364, 386, 405, 417, 436, 451, 463, 470, 481, 495, 508, 514, 520, 525, 526, 526, 527, 529, 531, 534, 538, 538, 538 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "OLS trendline
Values = 15.4141 * Lags + 45.6256
R2=0.920118

Cities=Sichuan
Lags=%{x}
Values=%{y} (trend)", "legendgroup": "Sichuan", "marker": { "color": "#19d3f3", "symbol": "circle" }, "mode": "lines", "name": "Sichuan", "showlegend": false, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 45.62560975609778, 61.03968105065687, 76.45375234521595, 91.86782363977503, 107.28189493433412, 122.69596622889321, 138.1100375234523, 153.52410881801137, 168.93818011257045, 184.35225140712956, 199.76632270168864, 215.18039399624772, 230.5944652908068, 246.00853658536587, 261.42260787992495, 276.83667917448406, 292.2507504690431, 307.6648217636022, 323.0788930581613, 338.4929643527204, 353.9070356472795, 369.32110694183854, 384.73517823639764, 400.14924953095675, 415.5633208255158, 430.9773921200749, 446.39146341463396, 461.80553470919307, 477.2196060037522, 492.6336772983112, 508.04774859287033, 523.4618198874293, 538.8758911819884, 554.2899624765475, 569.7040337711067, 585.1181050656658, 600.5321763602249, 615.9462476547839, 631.360318949343, 646.7743902439021 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "Cities=Tianjin
Lags=%{x}
Values=%{y}", "legendgroup": "Tianjin", "marker": { "color": "#FF6692", "symbol": "circle" }, "mode": "markers", "name": "Tianjin", "showlegend": true, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 4, 4, 8, 10, 14, 23, 24, 27, 31, 32, 41, 48, 60, 67, 69, 79, 81, 88, 91, 95, 106, 112, 119, 120, 122, 124, 125, 128, 130, 131, 132, 135, 135, 135, 135, 135, 136, 136, 136, 136 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "OLS trendline
Values = 3.96154 * Lags + 9.35
R2=0.928187

Cities=Tianjin
Lags=%{x}
Values=%{y} (trend)", "legendgroup": "Tianjin", "marker": { "color": "#FF6692", "symbol": "circle" }, "mode": "lines", "name": "Tianjin", "showlegend": false, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 9.350000000000058, 13.311538461538516, 17.273076923076975, 21.23461538461543, 25.19615384615389, 29.15769230769235, 33.11923076923081, 37.08076923076926, 41.04230769230772, 45.00384615384618, 48.96538461538464, 52.926923076923096, 56.888461538461556, 60.850000000000016, 64.81153846153848, 68.77307692307693, 72.73461538461538, 76.69615384615383, 80.65769230769232, 84.61923076923077, 88.58076923076922, 92.54230769230767, 96.50384615384613, 100.46538461538461, 104.42692307692306, 108.38846153846151, 112.34999999999997, 116.31153846153842, 120.27307692307687, 124.23461538461535, 128.1961538461538, 132.15769230769226, 136.1192307692307, 140.08076923076916, 144.04230769230762, 148.0038461538461, 151.96538461538455, 155.926923076923, 159.88846153846146, 163.8499999999999 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "Cities=Tibet
Lags=%{x}
Values=%{y}", "legendgroup": "Tibet", "marker": { "color": "#B6E880", "symbol": "circle" }, "mode": "markers", "name": "Tibet", "showlegend": true, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "OLS trendline
Values = 0.024015 * Lags + 0.331707
R2=0.480300

Cities=Tibet
Lags=%{x}
Values=%{y} (trend)", "legendgroup": "Tibet", "marker": { "color": "#B6E880", "symbol": "circle" }, "mode": "lines", "name": "Tibet", "showlegend": false, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 0.3317073170731712, 0.35572232645403423, 0.3797373358348972, 0.4037523452157602, 0.42776735459662324, 0.4517823639774863, 0.47579737335834926, 0.49981238273921225, 0.5238273921200753, 0.5478424015009383, 0.5718574108818013, 0.5958724202626644, 0.6198874296435273, 0.6439024390243904, 0.6679174484052534, 0.6919324577861163, 0.7159474671669794, 0.7399624765478423, 0.7639774859287054, 0.7879924953095685, 0.8120075046904314, 0.8360225140712945, 0.8600375234521576, 0.8840525328330204, 0.9080675422138835, 0.9320825515947464, 0.9560975609756095, 0.9801125703564726, 1.0041275797373355, 1.0281425891181986, 1.0521575984990617, 1.0761726078799245, 1.1001876172607876, 1.1242026266416505, 1.1482176360225136, 1.1722326454033767, 1.1962476547842396, 1.2202626641651027, 1.2442776735459657, 1.2682926829268286 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "Cities=Xinjiang
Lags=%{x}
Values=%{y}", "legendgroup": "Xinjiang", "marker": { "color": "#FF97FF", "symbol": "circle" }, "mode": "markers", "name": "Xinjiang", "showlegend": true, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 0, 2, 2, 3, 4, 5, 10, 13, 14, 17, 18, 21, 24, 29, 32, 36, 39, 42, 45, 49, 55, 59, 63, 65, 70, 71, 75, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "OLS trendline
Values = 2.39203 * Lags + -0.369512
R2=0.931951

Cities=Xinjiang
Lags=%{x}
Values=%{y} (trend)", "legendgroup": "Xinjiang", "marker": { "color": "#FF97FF", "symbol": "circle" }, "mode": "lines", "name": "Xinjiang", "showlegend": false, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ -0.36951219512191713, 2.022514071294591, 4.414540337711099, 6.806566604127607, 9.198592870544115, 11.590619136960623, 13.98264540337713, 16.37467166979364, 18.766697936210146, 21.158724202626654, 23.550750469043162, 25.94277673545967, 28.33480300187618, 30.726829268292686, 33.1188555347092, 35.510881801125706, 37.902908067542214, 40.29493433395872, 42.68696060037523, 45.07898686679174, 47.471013133208245, 49.86303939962475, 52.25506566604126, 54.64709193245777, 57.03911819887428, 59.431144465290785, 61.82317073170729, 64.2151969981238, 66.60722326454031, 68.99924953095682, 71.39127579737332, 73.78330206378983, 76.17532833020634, 78.56735459662285, 80.95938086303936, 83.35140712945586, 85.74343339587237, 88.13545966228888, 90.52748592870539, 92.9195121951219 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "Cities=Yunnan
Lags=%{x}
Values=%{y}", "legendgroup": "Yunnan", "marker": { "color": "#FECB52", "symbol": "circle" }, "mode": "markers", "name": "Yunnan", "showlegend": true, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 1, 2, 5, 11, 16, 26, 44, 55, 70, 83, 93, 105, 117, 122, 128, 133, 138, 138, 141, 149, 153, 154, 156, 162, 168, 171, 171, 172, 172, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "OLS trendline
Values = 4.65403 * Lags + 33.4963
R2=0.828086

Cities=Yunnan
Lags=%{x}
Values=%{y} (trend)", "legendgroup": "Yunnan", "marker": { "color": "#FECB52", "symbol": "circle" }, "mode": "lines", "name": "Yunnan", "showlegend": false, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 33.496341463414716, 38.150375234521654, 42.80440900562859, 47.458442776735524, 52.11247654784246, 56.7665103189494, 61.42054409005634, 66.07457786116328, 70.72861163227022, 75.38264540337715, 80.03667917448409, 84.69071294559103, 89.34474671669795, 93.99878048780491, 98.65281425891183, 103.30684803001878, 107.96088180112571, 112.61491557223266, 117.26894934333959, 121.92298311444654, 126.57701688555346, 131.23105065666041, 135.88508442776734, 140.5391181988743, 145.19315196998122, 149.84718574108814, 154.5012195121951, 159.15525328330202, 163.80928705440897, 168.46332082551592, 173.11735459662285, 177.7713883677298, 182.42542213883672, 187.07945590994365, 191.7334896810506, 196.38752345215752, 201.04155722326448, 205.6955909943714, 210.34962476547835, 215.00365853658528 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "Cities=Zhejiang
Lags=%{x}
Values=%{y}", "legendgroup": "Zhejiang", "marker": { "color": "#636efa", "symbol": "circle" }, "mode": "markers", "name": "Zhejiang", "showlegend": true, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 10, 27, 43, 62, 104, 128, 173, 296, 428, 538, 599, 661, 724, 829, 895, 954, 1006, 1048, 1075, 1092, 1117, 1131, 1145, 1155, 1162, 1167, 1171, 1172, 1174, 1175, 1203, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "OLS trendline
Values = 33.1881 * Lags + 210.557
R2=0.806849

Cities=Zhejiang
Lags=%{x}
Values=%{y} (trend)", "legendgroup": "Zhejiang", "marker": { "color": "#636efa", "symbol": "circle" }, "mode": "lines", "name": "Zhejiang", "showlegend": false, "type": "scattergl", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 210.55731707317125, 243.7454033771112, 276.9334896810511, 310.121575984991, 343.30966228893095, 376.4977485928709, 409.6858348968108, 442.8739212007507, 476.06200750469065, 509.2500938086306, 542.4381801125705, 575.6262664165104, 608.8143527204504, 642.0024390243902, 675.1905253283302, 708.3786116322701, 741.5666979362101, 774.75478424015, 807.9428705440899, 841.1309568480299, 874.3190431519698, 907.5071294559096, 940.6952157598496, 973.8833020637895, 1007.0713883677295, 1040.2594746716695, 1073.4475609756093, 1106.6356472795492, 1139.8237335834892, 1173.011819887429, 1206.1999061913689, 1239.387992495309, 1272.576078799249, 1305.7641651031886, 1338.9522514071286, 1372.1403377110687, 1405.3284240150087, 1438.5165103189483, 1471.7045966228884, 1504.8926829268285 ], "yaxis": "y" } ], "layout": { "legend": { "title": { "text": "Cities" }, "tracegroupgap": 0 }, "margin": { "t": 60 }, "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 } }, "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": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "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 }, "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", "domain": [ 0, 1 ], "title": { "text": "Lags" } }, "yaxis": { "anchor": "x", "domain": [ 0, 1 ], "title": { "text": "Values" } } } }, "text/html": [ "
\n", " \n", " \n", "
\n", " \n", "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import plotly.express as px\n", "fig = px.scatter(df_china, x=\"Lags\", y = \"Values\", color=\"Cities\", trendline=\"ols\")\n", "fig.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Hubei Linear regression" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plot.ly" }, "data": [ { "hoverlabel": { "namelength": 0 }, "hovertemplate": "Lags=%{x}
Values=%{y}", "legendgroup": "", "marker": { "color": "#636efa", "symbol": "circle" }, "mode": "markers", "name": "", "showlegend": false, "type": "scatter", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ 444, 444, 549, 761, 1058, 1423, 3554, 3554, 4903, 5806, 7153, 11177, 13522, 16678, 19665, 22112, 24953, 27100, 29631, 31728, 33366, 33366, 48206, 54406, 56249, 58182, 59989, 61682, 62031, 62442, 62662, 64084, 64084, 64287, 64786, 65187, 65596, 65914, 66337, 66907 ], "yaxis": "y" }, { "hoverlabel": { "namelength": 0 }, "hovertemplate": "OLS trendline
Values = 2180.77 * Lags + -7375.64
R2=0.943146

Lags=%{x}
Values=%{y} (trend)", "legendgroup": "", "marker": { "color": "#636efa", "symbol": "circle" }, "mode": "lines", "name": "", "showlegend": false, "type": "scatter", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "xaxis": "x", "y": [ -7375.641463414604, -5194.867542213855, -3014.0936210131067, -833.3196998123585, 1347.4542213883906, 3528.2281425891397, 5709.002063789887, 7889.775984990636, 10070.549906191385, 12251.323827392132, 14432.097748592883, 16612.871669793632, 18793.645590994376, 20974.419512195127, 23155.193433395878, 25335.96735459663, 27516.741275797373, 29697.515196998123, 31878.289118198867, 34059.06303939962, 36239.83696060037, 38420.61088180111, 40601.38480300186, 42782.158724202614, 44962.93264540336, 47143.70656660411, 49324.48048780486, 51505.25440900561, 53686.028330206354, 55866.802251407105, 58047.576172607856, 60228.35009380861, 62409.12401500935, 64589.897936210094, 66770.67185741085, 68951.4457786116, 71132.21969981234, 73312.9936210131, 75493.76754221384, 77674.54146341459 ], "yaxis": "y" } ], "layout": { "legend": { "tracegroupgap": 0 }, "margin": { "t": 60 }, "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 } }, "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": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "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 }, "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", "domain": [ 0, 1 ], "title": { "text": "Lags" } }, "yaxis": { "anchor": "x", "domain": [ 0, 1 ], "title": { "text": "Values" } } } }, "text/html": [ "
\n", " \n", " \n", "
\n", " \n", "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from sklearn.linear_model import LinearRegression\n", "df_hubei = df_china[df_china[\"Cities\"] == \"Hubei\"]\n", "df_hubei = df_hubei.drop([\"Cities\"],axis=1) \n", "\n", "fig = px.scatter(df_hubei, x=\"Lags\", y = \"Values\", trendline=\"ols\")\n", "fig.show()" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYMAAAD4CAYAAAAO9oqkAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO3deXyU1b3H8c9PFsVaG6yoNahgVUoQEY2IF7WKVnCpUq9arbflVigu0LpX0Kt1LVFUVERlc5ciIiIKSpG4s0gQJCxS4lYIqFgWF6JAcu4f50kYksnMJJnkmeX7fr3yysx5npk5eV7w/OZsv2POOUREJLvtFHYFREQkfAoGIiKiYCAiIgoGIiKCgoGIiADNw65Afe25556uXbt2YVdDRCRtLFiw4CvnXJtox9I2GLRr146ioqKwqyEikjbM7LPajiXUTWRmV5rZUjNbYmb/MLNdzKy9mc0zs5Vm9qyZtQzO3Tl4XhIcbxfxPkOC8hVm1iuivHdQVmJmg+v/p4qISH3EDQZmlgv8Bch3zh0KNAPOB+4EhjvnDgY2AP2Cl/QDNjjnDgKGB+dhZnnB6zoBvYGHzKyZmTUDRgKnAnnABcG5IiLSRBIdQG4OtDKz5sCuwFqgJzApOP4E0Cd4fFbwnOD4SWZmQfkE59wPzrlPgBKgW/BT4pz72Dm3BZgQnCsiIk0kbjBwzpUCdwP/xgeBTcACYKNzbltw2mogN3icC6wKXrstOP+nkeXVXlNbeQ1mNsDMisysaN26dYn8fSIikoBEuola47+ptwf2BX6E79KprjLJkdVyrK7lNQudG+2cy3fO5bdpE3VAXERE6iGRbqKTgU+cc+ucc1uBycB/ATlBtxFAW2BN8Hg1sB9AcPwnwPrI8mqvqa1cRESaSCLB4N9AdzPbNej7PwlYBrwOnBOc0xd4MXg8NXhOcLzQ+dSoU4Hzg9lG7YGDgfeA+cDBweyklvhB5qkN/9NERCRRcdcZOOfmmdkk4H1gG7AQGA1MAyaY2e1B2bjgJeOAp8ysBN8iOD94n6VmNhEfSLYBA51z5QBmNgiYgZ+p9Khzbmny/kQRkQzxz3/CypUwcGDS39rSdT+D/Px8p0VnIpIV1q+Hq6+Gxx+Hww6DoiJo0aLOb2NmC5xz+dGOKTeRiEgqe/55yMuDp56C66+HefPqFQjiSdt0FCIiGe3zz2HQIB8MunaFV1+Fww9vtI9Ty0BEJJU457uD8vLg5ZehoMC3BhoxEIBaBiIiqeOzz2DAAD9QfOyxMHYsdOjQJB+tloGISNgqKmDECOjUCWbPhgcfhDffbLJAAGoZiIiE68MPoX9/ePdd6N0bHnkEDjigyauhloGISBi2boW//x26dIHly+HJJ2H69FACAahlICLS9N5/H/r1g0WL4NxzfRfR3nuHWiW1DEREmkpZGQwZAt26+amjkyfDxImhBwJQy0BEpGm8845vDfzrX3DRRXD33dC6ddi1qqKWgYhIY/rmG7947LjjYMsWmDkTxo1LqUAACgYiIo3n1Vfh0EPhoYfgiiuguBhOPjnsWkWlYCAikmzr10PfvnDqqfCjH/lpo8OHw267hV2zWikYiIgk06RJ0LEjjB8PN94ICxfCMceEXau4NIAsIpIMa9f6sYHJk+HII31KiS5dwq5VwtQyEBFpCOfgscd8Yrnp0+Guu2Du3LQKBKCWgYhI/X3yiU8s99prfrbQ2LFwyCFh16pe1DIQEamr8nJ44AE/U2juXD9b6I030jYQgFoGIiJ1s3y5Xzw2Z46fLfTII7D//mHXqsHUMhARScTWrXDHHX6TmRUr/DaU06ZlRCAAtQxEROJbsMCnkFi8GM47zyeW22uvsGuVVAoGIiK1KSuDW27xeYT22gteeAH69AmlKlMWljJsxgrWbCxj35xWXNurA3265ibt/RUMRESiefttPzawcqX/fffdkJMTSlWmLCxlyORiyraWA1C6sYwhk4sBkhYQNGYgIhLp669h4EA4/njYts1PGx07ttEDwZSFpfQoKKT94Gn0KChkysLSqmPDZqyoCgSVyraWM2zGiqR9vloGIiKVXnkFLr4YVq/2ieVuv93nFkpQrK6ceMdiffNfs7Es6ufVVl4fCgYiIv/5D1x5pZ8h1LGjTywXJZ9QfW/oQMybfaxv/n265rJvTitKo9z4981plZy/H3UTiUg2c87vNNaxI/zjH6zofzkn/O5e2r+4vkZXTeXNvnRjGY7tN/TKc2Ld0ON188T75n9trw60atFsh2OtWjTj2l4dGvTnR1LLQESyRuQ3+847beaRuePY9/UZcOSRFI54hoFLyin7tn7f3uvTlVN5LN43/8rWh2YTiYgEGtwvv2Ub5xbP5MbCcbQs38qSy2/g0Ltv5sa736Js65YdPqsuN/t4N/RYx67t1WGHbiSo+c2/T9fcpN78q1MwEJG00dB++Z+uK2Xoqw9y3GeLmLffoVzX+89s3ecg3m3evME3+3g39FjHmuKbfzwKBiKSNuL1vdfajXPYPpzy2gSufetJym0nbjjlMsYf3htnO2FJutknckOPdayxv/nHo2AgIiklVldPffrldy1ZAcf9H3+bM4fCA/O5oddA1u7epup4Mm/2sW7oYd/s41EwEJEm1ZD59nXpl29RvpWL5z3PX2Y/Czm7U3T7AwwsO4iybRVV5yTzZp/uzDkXdh3qJT8/3xUVFYVdDZGsEy9HTl1u9uBvyEPP7kyfrrn0KCiMerPPzWnFu4N7xnw9bO+X77x2JXe9cj8d133K6l5n0fbJ0bDXXo2e3yfVmdkC51x+tGNqGYhIwuJ9c493vKHTM+N9e9/p+zK+Hvx/XPD2c6z/cWvmDn+U7lf8sep9MvmbfUMpGIhIwuLdzBt6s09kpW2tN/Q33+TM/v2hpAT696fNsGG0CSmxXDrSCmQRSVi8m3kiN/toIgdx67zS9uuv4dJL4YQToKICZs2CMWNCyzCarhIKBmaWY2aTzOxDM1tuZseY2R5mNtPMVga/Wwfnmpk9YGYlZrbYzI6IeJ++wfkrzaxvRPmRZlYcvOYBM7Pk/6kikqjaMmjGu5k39Gbfp2suQ8/uTG5OKww/VlA5nhDV9Ol+H+LRo+Gqq/zmMz171vXPFRLvJrofeNU5d46ZtQR2Ba4HZjnnCsxsMDAYuA44FTg4+DkaeBg42sz2AP4G5AMOWGBmU51zG4JzBgBzgelAb+CVJP2NIlIHsfr9402/bOzpmVW++sonlnv6acjLg9mz4eijG/7HZ7G4wcDMdgeOB/4XwDm3BdhiZmcBJwSnPQG8gQ8GZwFPOj9NaW7QqvhZcO5M59z64H1nAr3N7A1gd+fcnKD8SaAPCgYioYjV7//u4J5V50S7mTf69Ezn4LnnYNAg2LABbroJrr8edt65fu8nVRJpGRwIrAMeM7MuwALgcmBv59xaAOfcWjOr3BA0F1gV8frVQVms8tVRymswswH4FgT7Z8gm1CKpJpEZPbFu5o02Y2fNGrjsMnjxRcjP95vOHHZY8j8nSyUyZtAcOAJ42DnXFfgO3yVUm2j9/a4e5TULnRvtnMt3zuW3adMm2iki0kDx+v2bnHN+p7G8PJgxA4YNgzlzFAiSLJFgsBpY7ZybFzyfhA8OXwTdPwS/v4w4f7+I17cF1sQpbxulXEQaSawtFpsid37CPv4YTj4Z/vQnOPxwKC6Ga66B5poVn2xxg4Fz7nNglZlV/ks4CVgGTAUqZwT1BV4MHk8F/hDMKuoObAq6k2YAp5hZ62Dm0SnAjODYN2bWPZhF9IeI9xKRJIu3SUudZ/Q0hvJyGD7czxSaPx9GjYLCQjjooKarQ5ZJNLz+GXgmmEn0MfBHfCCZaGb9gH8D5wbnTgdOA0qAzcG5OOfWm9ltwPzgvFsrB5OBS4HHgVb4gWMNHos0kngLwyDklbpLl0K/fjBvHpx+OjzyCLRtG/910iAJBQPn3CL8lNDqTopyrgMG1vI+jwKPRikvAg5NpC4i0jBNsbl6vWzZAgUFfhP6n/wEnnkGLrgAtOyoSajjTSQDxUrI1hSbq9fZ/Pm+NVBc7APA/feDJok0KaWjEMkw8cYEUmqAePNm+OtfoXt3WL8epk6F8eMVCEKgYCCSYeLtBpYSA8QAb74JXbr4qaL9+/uxgl//umnrIFXUTSSSYRIZEwh1gPjrr+G66/zA8IEH+llCJ54YTl2kioKBSBpKuzGBStOmwSWX+NXEV10Ft90Gu+4adq0EdROJpJ20GhOo9NVX8D//A2ec4WcKzZ4N99yjQJBCFAxE0kzajAmATyUxYQJ07AgTJ8LNN8P77yvDaApSN5FImkn5MYFKpaV+05mXXoJu3WDcOL+iWFKSWgYiaSblEslV55zfaSwvz2cWvece3y2kQJDSFAxE0kxKjglU+ugjOOkkGDAAjjzSLyK76ipo1iz+ayVUCgYiaSalxgQqlZfDvfdC586wYIHfhnLWLPj5z8Ork9SJxgxE0lBKjAlUWrLEp5J47z2/aOzhhyE3ReomCVPLQETqZ8sWuOUWOOIIv+/AP/7hdyFTIEhLahmISN3Nnw8XXeRbBb/7nU8st+eeYddKGkAtAxFJ3ObNfqex7t39hvQvveRTTSsQpD21DEQkMa+/7ref/OgjuPhiuPNOv5pYMoJaBiIS26ZN/ubfs6d//vrrPsmcAkFGUTAQkdq99JJfPDZ2rO8eWrwYTjgh7FpJI1AwEJGa1q3zA8Nnngk//SnMnev3HVBiuYylMQORFBQrRXWjcs5PEf3LX/y+A7fcAoMHQ8uWjf/ZEioFA5EUU5miujIzaWWKaqBxA8Lq1T6x3Msv+6yi48ZBp06N93mSUtRNJJJi4qWoTrqKCp8+olMnn0Li3nvh3XcVCLKMWgYiKSaRFNVJU1Lip4u+8YafLTRmjN+KUrKOWgYiKaZJUlSXl/vU0ocd5jebGTPGp5tWIMhaCgYiKabRU1QvWQLHHOOniv7qV7BsGfTvD2bJeX9JSwoGIimm0VJUb9nit5084gj49FO/HeWUKUosJ4DGDERSUtJTVL/3nk8st3QpXHgh3Hef8gnJDtQyEMlkmzfD1Vf7bqFNm/y00aefViCQGtQyEMlUr7/uxwI+/tjnFrrrLth997BrJSlKLQORTLNpk9+DuGdPPyhcmVhOgUBiUDAQySSVieXGjVNiOakTBQORTLBuHVxwgRLLSb0pGIikM+dg/Hjo2BGef94nlisqgqOOCrtmkmY0gCySrlavhksugWnTlFhOGkwtA5F0U1EBo0b5sYHCQhg+XInlpMHUMhBJJytX+sRyb74JJ53ks40qn5AkgVoGIulg2za4+26fWG7RIr8N5cyZCgSSNGoZiKS6xYuhXz8/MHzmmfDww7DvvmHXSjJMwi0DM2tmZgvN7OXgeXszm2dmK83sWTNrGZTvHDwvCY63i3iPIUH5CjPrFVHeOygrMbPByfvzRNLYDz/A3/4GRx4Jn322PbGcAoE0grp0E10OLI94ficw3Dl3MLAB6BeU9wM2OOcOAoYH52FmecD5QCegN/BQEGCaASOBU4E84ILgXJHsNXeuzy56661w/vk+zfRvf6s009JoEgoGZtYWOB0YGzw3oCcwKTjlCaBP8Pis4DnB8ZOC888CJjjnfnDOfQKUAN2CnxLn3MfOuS3AhOBckezz3Xdw1VXwX//lN6R/+WV46ikllpNGl2jL4D7gr0BF8PynwEbn3Lbg+WqgMt9uLrAKIDi+KTi/qrzaa2orr8HMBphZkZkVrVu3LsGqi6SJWbOgc2c/VfSSS3y66dNPD7tWkiXiBgMzOwP40jm3ILI4yqkuzrG6ltcsdG60cy7fOZffpk2bGLUWSSMbN/rpoiefDM2b+/2IH3pIieWkSSUym6gHcKaZnQbsAuyObynkmFnz4Nt/W2BNcP5qYD9gtZk1B34CrI8orxT5mtrKRTLbiy/CpZfCF1/AX//qdyJrlcS9jkUSFLdl4Jwb4pxr65xrhx8ALnTOXQi8DpwTnNYXeDF4PDV4TnC80DnngvLzg9lG7YGDgfeA+cDBweyklsFnTE3KXyeSqr780g8I9+kDbdrAvHlw550KBBKahqwzuA6YYGa3AwuBcUH5OOApMyvBtwjOB3DOLTWzicAyYBsw0DlXDmBmg4AZQDPgUefc0gbUSyR1OQfPPAOXXw7ffgu33eZbBC1bhl0zyXLmv7Snn/z8fFdUVBR2NUQSt2qVHxiePh26d/eJ5fI0i1qajpktcM7lRzumdBQija2iwq8a7tTJDw7fdx+8844CgaQUpaMQaUwrV/p9iN96yyeWGzMG2rcPu1YiNahlINIYtm3zG9Afdhh88IHvEpo5U4FAUpZaBiLJ9sEHPrHcggVw1ll+zYDyCUmKU8tAJFl++AFuvBHy8/1g8cSJ8MILCgSSFtQyEEmGOXN8a2D5cvjDH+Dee/3G9CJpQsFApCG++w5uuAEeeADatvXTRk89FYApC0sZNmMFazaWsW9OK67t1YE+Xben3Yp3XKQpKRiI1Ndrr/mcQp9+CgMHwtCh8OMfA/5GP2RyMWVbywEo3VjGkMnFAPTpmhv3uEhT05iBSF1t3Oi7hH71K2jRwk8bffDBqkAAMGzGiqobfaWyreUMm7EioeMiTU3BQKQuXnzRLxZ74gkYPNjPHDruuBqnrdlYFvXlleXxjos0NQUDkUR88cX2xHJ77QXz5jHlvEH0uH8O7QdPo0dBIVMWlladvm9O9IRzleXxjos0NQUDkVicg6ef9q2BKVPgjjtg/nym7LQPQyYXU7qxDMf2Pv/KgHBtrw60atFsh7dq1aIZ1/bqkNBxkaamYCBSm1Wr4Iwz4Pe/hw4dYNEiuP56aNEibp9/n665DD27M7k5rTAgN6cVQ8/uXDU4HO+4SFPTbCKR6ioqYNQon1q6osInlhs0CJpt/yafSJ9/n665MW/u8Y6LNCW1DEQi/etfcMIJcNllcMwxsGSJ33ug2Y5dOurzl0yjYCAC2xPLdekCxcXw2GNMKXiUHs9+EnWAWH3+kmnUTSTywQdw0UXw/vvwm9/AyJFM+bwi5qKwyu4drSCWTKFgINnrhx/g9tuhoMDnEZo0Cf77vwEY9kRhrQPEkYPAuvlLplAwkOw0e7ZfRfzhhz6x3PDhsMceVYe1KEyyjcYMJLt8+60fED72WNi8GV591a8mjggEoAFiyT4KBpI9Zs6Ezp19htGBA/1MoV69op6qAWLJNuomksy3YQNccw08+qhfPPb223DssUEK6flRB4A1QCzZRsFAMtuUKX7NwJdfwpAhcNNNsMsuCaWQ1gCxZBN1E0lm+uILOO88P1V0773hvffg73+HXXYBlEJapDoFA8kszsGTT0LHjjB1qg8A770HRxyxw2maLSSyIwUDyRyffea3nOzb1weDRYt811CLFjVO1WwhkR0pGEj6q6iAkSPh0EPhnXdgxAg/SPyLXzBlYSk9CgprpJTQbCGRHWkAWdLbihXQv78PAqec4rONtmsHxN+HGDRbSKSSgoGkp61b4Z574OabYddd4bHHfPeQWdUpsQaJK2cK6eYv4ikYSPpZuNCnkli40OcSevBB2GefGqdpkFgkcRozkPTx/fdwww1w1FGwZo1PLDdpUtRAABokFqkLBQNJD7NnQ9eufqro738Py5ZVZRitjQaJRRKnbiJJbd9+61sDI0bA/vvDjBl+oDjgU0pEHwTWILFI4hQMJHX9858wYAD8+98+sdzQobDbblWHlVJCJHnUTSSpZ8MG+OMffUbRXXbxawZGjNghEIBSSogkk4KBpJbJkyEvD556yq8eXrQIevSIeqpmC4kkj4KBpIbPP4dzzvGDwvvsA/Pn75BYLhrNFhJJnrjBwMz2M7PXzWy5mS01s8uD8j3MbKaZrQx+tw7KzcweMLMSM1tsZkdEvFff4PyVZtY3ovxIMysOXvOAWcTKIclslYnl8vLg5Ze3J5br2jXuSzVbSCR5EmkZbAOuds51BLoDA80sDxgMzHLOHQzMCp4DnAocHPwMAB4GHzyAvwFHA92Av1UGkOCcARGv693wP01SXmRiuby8qInlasstBH5weOjZncnNaYUBuTmtGHp2Zw0Yi9RD3NlEzrm1wNrg8TdmthzIBc4CTghOewJ4A7guKH/SOeeAuWaWY2Y/C86d6ZxbD2BmM4HeZvYGsLtzbk5Q/iTQB3glOX+ipJyKCnjoIRgcfH8YMcJvQLPTjt9NNFtIpOnUaczAzNoBXYF5wN5BoKgMGHsFp+UCqyJetjooi1W+Okp5tM8fYGZFZla0bt26ulRdUsWKFXD88fDnP/tN6ZcuhUGDagQC0GwhkaaUcDAws92A54ErnHNfxzo1SpmrR3nNQudGO+fynXP5bdq0iVdlSSVbt/p1Al26+NXDjz8Or7wCBxxQ60s0W0ik6SQUDMysBT4QPOOcmxwUfxF0/xD8/jIoXw3sF/HytsCaOOVto5RLpli4EI4+Gq6/Hn79ax8MqmUYjUazhUSaTiKziQwYByx3zt0bcWgqUDkjqC/wYkT5H4JZRd2BTUE30gzgFDNrHQwcnwLMCI59Y2bdg8/6Q8R7STr7/nsfAI46Ctauheefh+eeqzWxXHWaLSTSdBJJR9ED+D1QbGaLgrLrgQJgopn1A/4NnBscmw6cBpQAm4E/Ajjn1pvZbcD84LxbKweTgUuBx4FW+IFjDR6nu3ff9WmmV6zwq4nvuQdat47/ugjKLSTSdMxP+kk/+fn5rqioKOxqSHXffONbAyNH+sRyY8bAr35V6+mxEs2JSHKZ2QLnXH60Y0pUJ8kzY4ZPLLdqlZ8tdMcdNfIJRUpk6qiINA2lo5CGW78e/vd/oXdvvwXl22/D/ffHDASgqaMiqUTBQBrm+ef96uGnn/bdQwsX1ppYrjpNHRVJHQoGUj9r1/qkcuecA/vuC0VFvlsoRmK56jR1VCR1KBhI3TjnF4zl5cG0aVBQ4BPLHX54nd9KU0dFUocGkCVxn37qB4hnzoTjjvMzhTrU/8atqaMiqUPBQOKrqPBTRYcM8auGR46ESy6Jmk+ounhTR5VoTiQ1KBhIbMuXQ//+MHu2ny00apRfP5AATR0VSR8aM5Dotm71G80cfjh8+KHfgGb69IQDAWjqqEg6UctAanr/fZ9KYtEiOO88eOAB2HvvOr+Npo6KpA+1DGS7sjI/LtCtm9+T+IUX4Nln6xUIQFNHRdKJgoF477zju4QKCnx66WXLoE+fBr2lpo6KpA91E2W7b77xrYGRI6FdOz9t9OST6/QWtc0Y0tRRkfShYJDNXn0VLr7YJ5a7/HK4/fa4+YSqizdjSFNHRdKDuomy0X/+47uCTj0VfvQjv/fAfffVORCAZgyJZAoFg2ziHEya5FNJjB8PN97oE8sdc0y931IzhkQyg4JBtqhMLHfuubDffj6x3K23ws47N+htNWNIJDMoGGQ65+DRR6FjR3jlFbjzTpg7F7p0Scrba8aQSGbQAHIm++QTn1jutdfg+ON9YrlDDknqR2jGkEhmUDDIROXl2xPLNWsGDz/sg0ICieXqQzOGRNKfgkGmWb7cp5KYM8fPFho1yo8RiIjEoGCQKbZuhbvu8oPCu+0GTz0FF17oU043ULw01CKS/hQMMsGCBXDRRbB4sU8sN2IE7LVXUt5aaahFsoNmE6WzsjIYPBiOPhrWrdueWC5JgQC0qEwkW6hlkK7eestvOrNypf89bBjk5NTrrWJ1A2lRmUh2UMsg3Xz9NVx2Gfzyl7Btm582OmZMgwLBkMnFlG4sw7G9G2jKwlJAi8pEsoWCQTp55RU49FB45BG48kooLoaTTor7sikLS+lRUEj7wdPoUVBYdaOH+N1AWlQmkh3UTZQOvvrK3/yfftrnFZo9G7p3T+il8QaA43UDaVGZSHZQMEhlzsFzz8GgQbBhA9x0E1x/fZ3yCcX65t+nay775rSiNEpAiOwG0qIykcynbqJUtWYNnH02/Pa3cMABfvroLbfUObFcvG/+6gYSEVDLIPVUJpa7+mr44Qc/S+iKK5hS/AXDCgqjdtXEmg0U75u/uoFEBBQMUssnn8Cf/gSzZvnZQmPHwkEHxez3B2KOCVzbq8MOx6HmN391A4mIgkEqKC/3q4ZvuMEnlnvkER8UgsRy8Wb8xBoT0Dd/EUmEgkHYli3zieXmzoXTT/cZRqsllqvPwq/IY/rmLyLxaAA5LFu2wG23QdeusHIlRXeMoEePK2k/cnGNtQCxFn5pUZiIJIOCQROJXPjVb+BDbOrUxU8VPftspk8s5PdlB1G66fuoq4BjzfjRbCARSQZ1EyUoXhrnWMcrB4Dd5u+47p3x/Gn+FL7arTXLhz9K9yv+yB0FhQ3u99eYgIg0RFYFg/re0OOt4o13fNiMFRz20SIKXn2A9hvWMr5LL4aeeBG7f78n75LYmECsfn+NCYhIQ6VMMDCz3sD9QDNgrHOuIJnv35AberxVvDGP//zHXPrs3fzPolf4LGcfLjj/DuYc4Dej/za42SeyClhEpDGlxJiBmTUDRgKnAnnABWaWl8zPiDc9M9bxeN/cazt+yIK3oFMnLvhgBmOO6kOvix6sCgSw/Wavfn8RCVuqtAy6ASXOuY8BzGwCcBawLFkfUN8bemWXUaxv7tWPt968iZtmjeE3y96ATp14546HuHdlC76vZeGX1gKISNhSJRjkAqsinq8Gjq5+kpkNAAYA7L///nX6gLre0COPx1vFW3V8yzbO+PBtbn5tFLt//x0fDriSX4wo4JctWzI0zniF+v1FJEypEgyi7druahQ4NxoYDZCfn1/jeCwJ39CjHI/3zb1P11x2Wfc5u175F45fNptlbTuw+J4H6XneyVXvpZu9iKSyVAkGq4HIZbdtgTXJ/IBEbujxjke9mTsH48bR+5pr/EKyYcPIu+IK8pqnyqUVEYnPnKvTF+zGqYRZc+BfwElAKTAf+J1zbmltr8nPz3dFRUVNVMNafPyxzyFUWAgnnOC3nzzooHDrJCJSCzNb4JzLj3YsJWYTOee2AYOAGcByYGKsQBC68nIYPtxvQVlUBKNG+UyjCgQikqZSpi/DOTcdmB52PeJautQnlps3D844wyeWa9s27FqJiDRISrQM0oFwup8AAAWnSURBVMKWLXDrrT6x3EcfwfjxMHWqAoGIZISUaRmktPnzfWuguBguuADuvx/atAm7ViIiSaOWQSybN8O110L37rB+vW8JjB+vQCAiGUctg9q88YafKVRSAhdfDHfeCT/5Sdi1EhFpFGoZVLdpE1xyCZx4ol9DUFjot6FUIBCRDKZgEGnaNOjUya8XuPpqWLzYBwURkQynYACwbh1ceKGfKpqTA7Nnw913w667hl0zEZEmkd3BwDmYMAHy8uC55+Dmm+H99+HoGjnyREQyWvYOIJeWwqWXwksvQbduMG6cX1EsIpKFsq9lUFEBo0f71sBrr8E99/huIQUCEcli2dUyKCuD007z00ZPPNEPFP/852HXSkQkdNkVDFq1gkMOgd/9Dvr3B4u2jYKISPbJrmAAPsOoiIjsIPvGDEREpAYFAxERUTAQEREFAxERQcFARERQMBARERQMREQEBQMREQHMORd2HerFzNYBn9Xz5XsCXyWxOsmkutWP6lY/qlv9pGvdDnDORd23N22DQUOYWZFzLj/sekSjutWP6lY/qlv9ZGLd1E0kIiIKBiIikr3BYHTYFYhBdasf1a1+VLf6ybi6ZeWYgYiI7ChbWwYiIhJBwUBERLIrGJhZbzNbYWYlZjY47PpEMrNPzazYzBaZWVEK1OdRM/vSzJZElO1hZjPNbGXwu3UK1e1mMysNrt8iMzsthHrtZ2avm9lyM1tqZpcH5aFftxh1S4XrtouZvWdmHwR1uyUob29m84Lr9qyZtUyhuj1uZp9EXLfDm7puEXVsZmYLzezl4Hn9rptzLit+gGbAR8CBQEvgAyAv7HpF1O9TYM+w6xFRn+OBI4AlEWV3AYODx4OBO1OobjcD14R8zX4GHBE8/jHwLyAvFa5bjLqlwnUzYLfgcQtgHtAdmAicH5Q/AlyaQnV7HDgnzOsWUcergPHAy8Hzel23bGoZdANKnHMfO+e2ABOAs0KuU8pyzr0FrK9WfBbwRPD4CaBPk1YqUEvdQuecW+ucez94/A2wHMglBa5bjLqFznnfBk9bBD8O6AlMCsrDum611S0lmFlb4HRgbPDcqOd1y6ZgkAusini+mhT5zxBwwD/NbIGZDQi7MrXY2zm3FvzNBdgr5PpUN8jMFgfdSKF0YVUys3ZAV/w3yZS6btXqBilw3YKujkXAl8BMfCt+o3NuW3BKaP9fq9fNOVd53e4IrttwM9s5jLoB9wF/BSqC5z+lntctm4KBRSlLmQgP9HDOHQGcCgw0s+PDrlCaeRj4OXA4sBa4J6yKmNluwPPAFc65r8OqRzRR6pYS1805V+6cOxxoi2/Fd4x2WtPWKvjQanUzs0OBIcAvgKOAPYDrmrpeZnYG8KVzbkFkcZRTE7pu2RQMVgP7RTxvC6wJqS41OOfWBL+/BF7A/4dINV+Y2c8Agt9fhlyfKs65L4L/tBXAGEK6fmbWAn+zfcY5NzkoTonrFq1uqXLdKjnnNgJv4Pvlc8yseXAo9P+vEXXrHXS7OefcD8BjhHPdegBnmtmn+G7vnviWQr2uWzYFg/nAwcFIe0vgfGBqyHUCwMx+ZGY/rnwMnAIsif2qUEwF+gaP+wIvhliXHVTebAO/IYTrF/TXjgOWO+fujTgU+nWrrW4pct3amFlO8LgVcDJ+TON14JzgtLCuW7S6fRgR3A3fJ9/k1805N8Q519Y51w5/Pyt0zl1Ifa9b2CPhTfkDnIafRfERcEPY9Ymo14H42U0fAEtToW7AP/DdBlvxrap++P7IWcDK4PceKVS3p4BiYDH+5vuzEOp1LL5JvhhYFPyclgrXLUbdUuG6HQYsDOqwBLgpKD8QeA8oAZ4Ddk6huhUG120J8DTBjKOwfoAT2D6bqF7XTekoREQkq7qJRESkFgoGIiKiYCAiIgoGIiKCgoGIiKBgICIiKBiIiAjw/2enGEMHee0mAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Accuracy: 0.9431456103160005\n" ] } ], "source": [ "X = df_hubei.iloc[:, 1].values.reshape(-1, 1) # values converts it into a numpy array\n", "Y = df_hubei.iloc[:, 0].values.reshape(-1, 1) # -1 means that calculate the dimension of rows, but have 1 column\n", "linear_regressor = LinearRegression() # create object for the class\n", "linear_regressor.fit(X, Y) # perform linear regression\n", "acc = linear_regressor.score(X, Y)\n", "Y_pred = linear_regressor.predict(X) # make predictions\n", "plt.scatter(X, Y)\n", "plt.plot(X, Y_pred, color='red')\n", "plt.show()\n", "print(\"Accuracy:\" ,acc)" ] }, { "cell_type": "code", "execution_count": 111, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[-7375.64146341],\n", " [-5194.86754221],\n", " [-3014.09362101],\n", " [ -833.31969981],\n", " [ 1347.45422139],\n", " [ 3528.22814259],\n", " [ 5709.00206379],\n", " [ 7889.77598499],\n", " [10070.54990619],\n", " [12251.32382739],\n", " [14432.09774859],\n", " [16612.87166979],\n", " [18793.64559099],\n", " [20974.4195122 ],\n", " [23155.1934334 ],\n", " [25335.9673546 ],\n", " [27516.7412758 ],\n", " [29697.515197 ],\n", " [31878.2891182 ],\n", " [34059.0630394 ],\n", " [36239.8369606 ],\n", " [38420.6108818 ],\n", " [40601.384803 ],\n", " [42782.1587242 ],\n", " [44962.9326454 ],\n", " [47143.7065666 ],\n", " [49324.4804878 ],\n", " [51505.25440901],\n", " [53686.02833021],\n", " [55866.80225141],\n", " [58047.57617261],\n", " [60228.35009381],\n", " [62409.12401501],\n", " [64589.89793621],\n", " [66770.67185741],\n", " [68951.44577861],\n", " [71132.21969981],\n", " [73312.99362101],\n", " [75493.76754221],\n", " [77674.54146341]])" ] }, "execution_count": 111, "metadata": {}, "output_type": "execute_result" } ], "source": [ "\n", "predictions = linear_regressor.predict(X)" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Prediction: [-7375.64146341] - Day: [0] - Actual: [444]\n", "Prediction: [-5194.86754221] - Day: [1] - Actual: [444]\n", "Prediction: [-3014.09362101] - Day: [2] - Actual: [549]\n", "Prediction: [-833.31969981] - Day: [3] - Actual: [761]\n", "Prediction: [1347.45422139] - Day: [4] - Actual: [1058]\n", "Prediction: [3528.22814259] - Day: [5] - Actual: [1423]\n", "Prediction: [5709.00206379] - Day: [6] - Actual: [3554]\n", "Prediction: [7889.77598499] - Day: [7] - Actual: [3554]\n", "Prediction: [10070.54990619] - Day: [8] - Actual: [4903]\n", "Prediction: [12251.32382739] - Day: [9] - Actual: [5806]\n", "Prediction: [14432.09774859] - Day: [10] - Actual: [7153]\n", "Prediction: [16612.87166979] - Day: [11] - Actual: [11177]\n", "Prediction: [18793.64559099] - Day: [12] - Actual: [13522]\n", "Prediction: [20974.4195122] - Day: [13] - Actual: [16678]\n", "Prediction: [23155.1934334] - Day: [14] - Actual: [19665]\n", "Prediction: [25335.9673546] - Day: [15] - Actual: [22112]\n", "Prediction: [27516.7412758] - Day: [16] - Actual: [24953]\n", "Prediction: [29697.515197] - Day: [17] - Actual: [27100]\n", "Prediction: [31878.2891182] - Day: [18] - Actual: [29631]\n", "Prediction: [34059.0630394] - Day: [19] - Actual: [31728]\n", "Prediction: [36239.8369606] - Day: [20] - Actual: [33366]\n", "Prediction: [38420.6108818] - Day: [21] - Actual: [33366]\n", "Prediction: [40601.384803] - Day: [22] - Actual: [48206]\n", "Prediction: [42782.1587242] - Day: [23] - Actual: [54406]\n", "Prediction: [44962.9326454] - Day: [24] - Actual: [56249]\n", "Prediction: [47143.7065666] - Day: [25] - Actual: [58182]\n", "Prediction: [49324.4804878] - Day: [26] - Actual: [59989]\n", "Prediction: [51505.25440901] - Day: [27] - Actual: [61682]\n", "Prediction: [53686.02833021] - Day: [28] - Actual: [62031]\n", "Prediction: [55866.80225141] - Day: [29] - Actual: [62442]\n", "Prediction: [58047.57617261] - Day: [30] - Actual: [62662]\n", "Prediction: [60228.35009381] - Day: [31] - Actual: [64084]\n", "Prediction: [62409.12401501] - Day: [32] - Actual: [64084]\n", "Prediction: [64589.89793621] - Day: [33] - Actual: [64287]\n", "Prediction: [66770.67185741] - Day: [34] - Actual: [64786]\n", "Prediction: [68951.44577861] - Day: [35] - Actual: [65187]\n", "Prediction: [71132.21969981] - Day: [36] - Actual: [65596]\n", "Prediction: [73312.99362101] - Day: [37] - Actual: [65914]\n", "Prediction: [75493.76754221] - Day: [38] - Actual: [66337]\n", "Prediction: [77674.54146341] - Day: [39] - Actual: [66907]\n" ] } ], "source": [ "for x in range(len(predictions)):\n", " print(\"Prediction: \",predictions[x],\"- Day:\", X[x],\"- Actual: \", Y[x])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Prediction for 01/03/2020, 02/03/2020, 03/03/2020" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Giorno 39 : 77674.54146341463\n", "Giorno 40 : 79855.31538461539\n", "Giorno 41 : 82036.08930581613\n" ] } ], "source": [ "prediction = linear_regressor.predict([[39],[40],[41]])\n", "l = 39\n", "for x in prediction:\n", " print(\"Giorno \",l,\": \",x[0])\n", " l+=1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Logistic regression" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "E:\\ProgramData\\Anaconda3\\lib\\site-packages\\sklearn\\linear_model\\logistic.py:432: FutureWarning:\n", "\n", "Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n", "\n", "E:\\ProgramData\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:724: DataConversionWarning:\n", "\n", "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n", "\n", "E:\\ProgramData\\Anaconda3\\lib\\site-packages\\sklearn\\linear_model\\logistic.py:469: FutureWarning:\n", "\n", "Default multi_class will be changed to 'auto' in 0.22. Specify the multi_class option to silence this warning.\n", "\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Accuracy: 0.125\n" ] } ], "source": [ "from sklearn.linear_model import LogisticRegression\n", "\n", "\n", "X = df_hubei.iloc[:, 1].values.reshape(-1, 1) # values converts it into a numpy array\n", "Y = df_hubei.iloc[:, 0].values.reshape(-1, 1) # -1 means that calculate the dimension of rows, but have 1 column\n", "logistic = LogisticRegression(random_state=0) # create object for the class\n", "logistic.fit(X, Y) # perform linear regression\n", "acc = logistic.score(X, Y)\n", "Y_pred = logistic.predict(X) # make predictions\n", "\n", "\n", "plt.scatter(X, Y)\n", "plt.plot(X, Y_pred, color='red')\n", "plt.show()\n", "print(\"Accuracy:\" ,acc)\n", "\n", "#plt.plot(X_test, ols.coef_ * X_test + ols.intercept_, linewidth=1)\n" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([64084], dtype=int64)" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Y_pred = logistic.predict([[41]])\n", "Y_pred " ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Accuracy: 0.25\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "E:\\ProgramData\\Anaconda3\\lib\\site-packages\\sklearn\\linear_model\\logistic.py:432: FutureWarning:\n", "\n", "Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n", "\n", "E:\\ProgramData\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:724: DataConversionWarning:\n", "\n", "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n", "\n", "E:\\ProgramData\\Anaconda3\\lib\\site-packages\\sklearn\\linear_model\\logistic.py:469: FutureWarning:\n", "\n", "Default multi_class will be changed to 'auto' in 0.22. Specify the multi_class option to silence this warning.\n", "\n" ] } ], "source": [ "prob = logistic.predict_proba(X)\n", "from sklearn import linear_model\n", "from scipy.special import expit\n", "clf = linear_model.LogisticRegression(C=1e5)\n", "clf.fit(X, Y)\n", "acc = clf.score(X, Y)\n", "\n", "print(\"Accuracy:\" ,acc)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\n", "# Random Forest regression" ] }, { "cell_type": "code", "execution_count": 217, "metadata": {}, "outputs": [], "source": [ "X = df_hubei.iloc[:, 1].values.reshape(-1, 1) # values converts it into a numpy array\n", "Y = df_hubei.iloc[:, 0].values.reshape(-1, 1) # -1 means that calculate the dimension of rows, but have 1 column" ] }, { "cell_type": "code", "execution_count": 237, "metadata": { "scrolled": true }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "E:\\ProgramData\\Anaconda3\\lib\\site-packages\\ipykernel_launcher.py:3: DataConversionWarning:\n", "\n", "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples,), for example using ravel().\n", "\n" ] }, { "data": { "text/plain": [ "RandomForestRegressor(bootstrap=True, criterion='mse', max_depth=None,\n", " max_features='auto', max_leaf_nodes=None,\n", " min_impurity_decrease=0.0, min_impurity_split=None,\n", " min_samples_leaf=1, min_samples_split=2,\n", " min_weight_fraction_leaf=0.0, n_estimators=10,\n", " n_jobs=None, oob_score=False, random_state=42, verbose=0,\n", " warm_start=False)" ] }, "execution_count": 237, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from sklearn.ensemble import RandomForestRegressor\n", "regressor = RandomForestRegressor(n_estimators=10,random_state=42)\n", "regressor.fit(X,Y)" ] }, { "cell_type": "code", "execution_count": 238, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Prediction: 475.7 - Day: [0] - Actual: [444]\n", "Prediction: 475.7 - Day: [1] - Actual: [444]\n", "Prediction: 549.2 - Day: [2] - Actual: [549]\n", "Prediction: 769.5 - Day: [3] - Actual: [761]\n", "Prediction: 939.2 - Day: [4] - Actual: [1058]\n", "Prediction: 1247.3 - Day: [5] - Actual: [1423]\n", "Prediction: 3091.3 - Day: [6] - Actual: [3554]\n", "Prediction: 3304.4 - Day: [7] - Actual: [3554]\n", "Prediction: 4948.5 - Day: [8] - Actual: [4903]\n", "Prediction: 5894.8 - Day: [9] - Actual: [5806]\n", "Prediction: 6883.6 - Day: [10] - Actual: [7153]\n", "Prediction: 9969.8 - Day: [11] - Actual: [11177]\n", "Prediction: 13287.5 - Day: [12] - Actual: [13522]\n", "Prediction: 14865.5 - Day: [13] - Actual: [16678]\n", "Prediction: 19841.1 - Day: [14] - Actual: [19665]\n", "Prediction: 21946.1 - Day: [15] - Actual: [22112]\n", "Prediction: 24315.4 - Day: [16] - Actual: [24953]\n", "Prediction: 26709.0 - Day: [17] - Actual: [27100]\n", "Prediction: 28910.1 - Day: [18] - Actual: [29631]\n", "Prediction: 31262.7 - Day: [19] - Actual: [31728]\n", "Prediction: 32664.9 - Day: [20] - Actual: [33366]\n", "Prediction: 35306.2 - Day: [21] - Actual: [33366]\n", "Prediction: 47282.3 - Day: [22] - Actual: [48206]\n", "Prediction: 53970.3 - Day: [23] - Actual: [54406]\n", "Prediction: 55880.4 - Day: [24] - Actual: [56249]\n", "Prediction: 57782.8 - Day: [25] - Actual: [58182]\n", "Prediction: 59977.6 - Day: [26] - Actual: [59989]\n", "Prediction: 61004.8 - Day: [27] - Actual: [61682]\n", "Prediction: 61897.6 - Day: [28] - Actual: [62031]\n", "Prediction: 62270.9 - Day: [29] - Actual: [62442]\n", "Prediction: 62902.4 - Day: [30] - Actual: [62662]\n", "Prediction: 63799.6 - Day: [31] - Actual: [64084]\n", "Prediction: 64084.0 - Day: [32] - Actual: [64084]\n", "Prediction: 64205.8 - Day: [33] - Actual: [64287]\n", "Prediction: 64656.1 - Day: [34] - Actual: [64786]\n", "Prediction: 65228.7 - Day: [35] - Actual: [65187]\n", "Prediction: 65351.4 - Day: [36] - Actual: [65596]\n", "Prediction: 65917.9 - Day: [37] - Actual: [65914]\n", "Prediction: 66366.4 - Day: [38] - Actual: [66337]\n", "Prediction: 66636.7 - Day: [39] - Actual: [66907]\n", "\n", "Accuracy of : 0.9995179670300028\n" ] } ], "source": [ "predictions = regressor.predict(X)\n", "for x in range(len(predictions)):\n", " print(\"Prediction: \",predictions[x],\"- Day:\", X[x],\"- Actual: \", Y[x])\n", " \n", "acc = regressor.score(X,Y)\n", "print(\"\\nAccuracy of : \",acc)" ] }, { "cell_type": "code", "execution_count": 239, "metadata": {}, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plot.ly" }, "data": [ { "name": "Actual Cases", "type": "scatter", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "y": [ 444, 444, 549, 761, 1058, 1423, 3554, 3554, 4903, 5806, 7153, 11177, 13522, 16678, 19665, 22112, 24953, 27100, 29631, 31728, 33366, 33366, 48206, 54406, 56249, 58182, 59989, 61682, 62031, 62442, 62662, 64084, 64084, 64287, 64786, 65187, 65596, 65914, 66337, 66907 ] }, { "name": "Predicted", "type": "scatter", "x": [ 0, 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, 32, 33, 34, 35, 36, 37, 38, 39 ], "y": [ 475.7, 475.7, 549.2, 769.5, 939.2, 1247.3, 3091.3, 3304.4, 4948.5, 5894.8, 6883.6, 9969.8, 13287.5, 14865.5, 19841.1, 21946.1, 24315.4, 26709, 28910.1, 31262.7, 32664.9, 35306.2, 47282.3, 53970.3, 55880.4, 57782.8, 59977.6, 61004.8, 61897.6, 62270.9, 62902.4, 63799.6, 64084, 64205.8, 64656.1, 65228.7, 65351.4, 65917.9, 66366.4, 66636.7 ] } ], "layout": { "font": { "color": "#7f7f7f", "family": "Courier New, monospace", "size": 18 }, "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 } }, "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": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "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 }, "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 } } }, "title": { "text": "Forecast of cases using RF" }, "xaxis": { "title": { "text": "Day" } }, "yaxis": { "title": { "text": "Values" } } } }, "text/html": [ "
\n", " \n", " \n", "
\n", " \n", "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "Accuracy of : 0.9995179670300028\n" ] } ], "source": [ "#plt.scatter(X, Y)\n", "#plt.plot(X, Y, color=\"red\")\n", "newY=[]\n", "newX=[]\n", "\n", "\n", " \n", "for i in range(len(Y)):\n", " newY+=[Y[i][0]]\n", "\n", "for i in range(len(X)):\n", " newX+=[X[i][0]]\n", "import plotly.graph_objects as go\n", "\n", "fig = go.Figure()\n", "\n", "fig.add_trace(go.Scatter(\n", " x=newX,\n", " y=newY,\n", " name=\"Actual Cases\" # this sets its legend entry\n", "))\n", "\n", "fig.add_trace(go.Scatter(\n", " x=newX,\n", " y=predictions,\n", " name=\"Predicted\" # this sets its legend entry\n", "))\n", "\n", "fig.update_layout(\n", " title=\"Forecast of cases using RF\",\n", " xaxis_title=\"Day\",\n", " yaxis_title=\"Values\",\n", " font=dict(\n", " family=\"Courier New, monospace\",\n", " size=18,\n", " color=\"#7f7f7f\"\n", " )\n", ")\n", "\n", "fig.show()\n", "\n", "acc = regressor.score(X,Y)\n", "print(\"\\nAccuracy of : \",acc)\n" ] }, { "cell_type": "code", "execution_count": 240, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([ 475.7, 475.7, 549.2, 769.5, 939.2, 1247.3, 3091.3,\n", " 3304.4, 4948.5, 5894.8, 6883.6, 9969.8, 13287.5, 14865.5,\n", " 19841.1, 21946.1, 24315.4, 26709. , 28910.1, 31262.7, 32664.9,\n", " 35306.2, 47282.3, 53970.3, 55880.4, 57782.8, 59977.6, 61004.8,\n", " 61897.6, 62270.9, 62902.4, 63799.6, 64084. , 64205.8, 64656.1,\n", " 65228.7, 65351.4, 65917.9, 66366.4, 66636.7])" ] }, "execution_count": 240, "metadata": {}, "output_type": "execute_result" } ], "source": [ "predictions" ] }, { "cell_type": "code", "execution_count": 324, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "E:\\ProgramData\\Anaconda3\\lib\\site-packages\\ipykernel_launcher.py:7: DataConversionWarning:\n", "\n", "A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples,), for example using ravel().\n", "\n" ] }, { "ename": "FileNotFoundError", "evalue": "[WinError 2] \"dot\" not found in path.", "output_type": "error", "traceback": [ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[1;31mFileNotFoundError\u001b[0m Traceback (most recent call last)", "\u001b[1;32mE:\\ProgramData\\Anaconda3\\lib\\site-packages\\pydot.py\u001b[0m in \u001b[0;36mcreate\u001b[1;34m(self, prog, format, encoding)\u001b[0m\n\u001b[0;32m 1914\u001b[0m \u001b[0marguments\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0marguments\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1915\u001b[1;33m \u001b[0mworking_dir\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mtmp_dir\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 1916\u001b[0m )\n", "\u001b[1;32mE:\\ProgramData\\Anaconda3\\lib\\site-packages\\pydot.py\u001b[0m in \u001b[0;36mcall_graphviz\u001b[1;34m(program, arguments, working_dir, **kwargs)\u001b[0m\n\u001b[0;32m 135\u001b[0m \u001b[0mstdout\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0msubprocess\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mPIPE\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 136\u001b[1;33m \u001b[1;33m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 137\u001b[0m )\n", "\u001b[1;32mE:\\ProgramData\\Anaconda3\\lib\\subprocess.py\u001b[0m in \u001b[0;36m__init__\u001b[1;34m(self, args, bufsize, executable, stdin, stdout, stderr, preexec_fn, close_fds, shell, cwd, env, universal_newlines, startupinfo, creationflags, restore_signals, start_new_session, pass_fds, encoding, errors, text)\u001b[0m\n\u001b[0;32m 774\u001b[0m \u001b[0merrread\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0merrwrite\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 775\u001b[1;33m restore_signals, start_new_session)\n\u001b[0m\u001b[0;32m 776\u001b[0m \u001b[1;32mexcept\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", "\u001b[1;32mE:\\ProgramData\\Anaconda3\\lib\\subprocess.py\u001b[0m in \u001b[0;36m_execute_child\u001b[1;34m(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, unused_restore_signals, unused_start_new_session)\u001b[0m\n\u001b[0;32m 1177\u001b[0m \u001b[0mos\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfspath\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mcwd\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mcwd\u001b[0m \u001b[1;32mis\u001b[0m \u001b[1;32mnot\u001b[0m \u001b[1;32mNone\u001b[0m \u001b[1;32melse\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1178\u001b[1;33m startupinfo)\n\u001b[0m\u001b[0;32m 1179\u001b[0m \u001b[1;32mfinally\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", "\u001b[1;31mFileNotFoundError\u001b[0m: [WinError 2] Impossibile trovare il file specificato", "\nDuring handling of the above exception, another exception occurred:\n", "\u001b[1;31mFileNotFoundError\u001b[0m Traceback (most recent call last)", "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[0;32m 10\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 11\u001b[0m \u001b[1;33m(\u001b[0m\u001b[0mgraph\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m)\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mpydot\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mgraph_from_dot_file\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'small_tree.dot'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 12\u001b[1;33m \u001b[0mgraph\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mwrite_png\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'small_tree.png'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m;\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[1;32mE:\\ProgramData\\Anaconda3\\lib\\site-packages\\pydot.py\u001b[0m in \u001b[0;36mnew_method\u001b[1;34m(path, f, prog, encoding)\u001b[0m\n\u001b[0;32m 1732\u001b[0m self.write(\n\u001b[0;32m 1733\u001b[0m \u001b[0mpath\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mformat\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mf\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mprog\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mprog\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1734\u001b[1;33m encoding=encoding)\n\u001b[0m\u001b[0;32m 1735\u001b[0m \u001b[0mname\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;34m'write_{fmt}'\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mformat\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfmt\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mfrmt\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1736\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m__setattr__\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mname\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mnew_method\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", "\u001b[1;32mE:\\ProgramData\\Anaconda3\\lib\\site-packages\\pydot.py\u001b[0m in \u001b[0;36mwrite\u001b[1;34m(self, path, prog, format, encoding)\u001b[0m\n\u001b[0;32m 1815\u001b[0m \u001b[0mf\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mwrite\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0ms\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1816\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1817\u001b[1;33m \u001b[0ms\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcreate\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mprog\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mformat\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mencoding\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mencoding\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 1818\u001b[0m \u001b[1;32mwith\u001b[0m \u001b[0mio\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mopen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mpath\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mmode\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m'wb'\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;32mas\u001b[0m \u001b[0mf\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1819\u001b[0m \u001b[0mf\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mwrite\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0ms\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", "\u001b[1;32mE:\\ProgramData\\Anaconda3\\lib\\site-packages\\pydot.py\u001b[0m in \u001b[0;36mcreate\u001b[1;34m(self, prog, format, encoding)\u001b[0m\n\u001b[0;32m 1920\u001b[0m args[1] = '\"{prog}\" not found in path.'.format(\n\u001b[0;32m 1921\u001b[0m prog=prog)\n\u001b[1;32m-> 1922\u001b[1;33m \u001b[1;32mraise\u001b[0m \u001b[0mOSError\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m*\u001b[0m\u001b[0margs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 1923\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1924\u001b[0m \u001b[1;32mraise\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", "\u001b[1;31mFileNotFoundError\u001b[0m: [WinError 2] \"dot\" not found in path." ] } ], "source": [ "# Import tools needed for visualization\n", "\n", "feature_list = list(df_hubei.columns[0])\n", "from sklearn.tree import export_graphviz\n", "import pydot\n", "rf_small = RandomForestRegressor(n_estimators=10, max_depth = 3)\n", "rf_small.fit(train_features, train_labels)# Extract the small tree\n", "tree_small = rf_small.estimators_[5]# Save the tree as a png image\n", "export_graphviz(tree_small, out_file = 'small_tree.dot', feature_names = [\"Values\"], rounded = True, precision = 1)\n", "\n", "(graph, ) = pydot.graph_from_dot_file('small_tree.dot')\n", "graph.write_png('small_tree.png');" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "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": 2 }