{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Plotly\n", "\n", "[Dokumentace](https://plot.ly/python/reference)" ] }, { "cell_type": "code", "execution_count": 74, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/vnd.plotly.v1+html": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Naimportujeme potřebné knihovny\n", "import numpy as np\n", "import pandas as pd\n", "from plotly.offline import iplot, init_notebook_mode, plot\n", "import plotly.graph_objs as go\n", "\n", "# Následující řádek je potřebný pro vykreslení grafu v Jupyter Notebooku\n", "init_notebook_mode()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Ukázat distribuci" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Histogram\n", "\n", "[Data](https://github.com/fivethirtyeight/data/tree/master/police-killings)\n", "\n", "[Tutoriál](https://plot.ly/python/histograms/)" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [], "source": [ "pd.options.display.max_rows = 999\n", "pd.options.display.max_columns = 999" ] }, { "cell_type": "code", "execution_count": 45, "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", "
nameagegenderraceethnicitymonthdayyearstreetaddresscitystatelatitudelongitudestate_fpcounty_fptract_cegeo_idcounty_idnamelsadlawenforcementagencycausearmedpopshare_whiteshare_blackshare_hispanicp_incomeh_incomecounty_incomecomp_incomecounty_bucketnat_bucketpovuratecollege
0A'donte Washington16MaleBlackFebruary232015Clearview LnMillbrookAL32.529577-86.3628291513090210510309021051Census Tract 309.02Millbrook Police DepartmentGunshotNo377960.530.55.62837551367.0547660.9379363.03.014.10.0976860.168510
1Aaron Rutledge27MaleWhiteApril22015300 block Iris Park DrPinevilleLA31.321739-92.4348602279117002207901170022079Census Tract 117Rapides Parish Sheriff's OfficeGunshotNo276953.836.20.51467827972.0409300.6834112.01.028.80.0657240.111402
2Aaron Siler26MaleWhiteMarch14201522nd Ave and 56th StKenoshaWI42.583560-87.835710555912005505900120055059Census Tract 12Kenosha Police DepartmentGunshotNo407973.87.716.82528645365.0549300.8258692.03.014.60.1662930.147312
3Aaron Valdez25MaleHispanic/LatinoMarch1120153000 Seminole AveSouth GateCA33.939298-118.21946363753560760375356076037Census Tract 5356.07South Gate Police DepartmentGunshotFirearm43431.20.698.81719448295.0559090.8638143.03.011.70.1248270.050133
4Adam Jovicic29MaleWhiteMarch192015364 Hiwood AveMunroe FallsOH41.148575-81.429878391535308003915353080039153Census Tract 5308Kent Police DepartmentGunshotNo680992.51.41.73395468785.0496691.3848685.04.01.90.0635500.403954
\n", "
" ], "text/plain": [ " name age gender raceethnicity month day year \\\n", "0 A'donte Washington 16 Male Black February 23 2015 \n", "1 Aaron Rutledge 27 Male White April 2 2015 \n", "2 Aaron Siler 26 Male White March 14 2015 \n", "3 Aaron Valdez 25 Male Hispanic/Latino March 11 2015 \n", "4 Adam Jovicic 29 Male White March 19 2015 \n", "\n", " streetaddress city state latitude longitude \\\n", "0 Clearview Ln Millbrook AL 32.529577 -86.362829 \n", "1 300 block Iris Park Dr Pineville LA 31.321739 -92.434860 \n", "2 22nd Ave and 56th St Kenosha WI 42.583560 -87.835710 \n", "3 3000 Seminole Ave South Gate CA 33.939298 -118.219463 \n", "4 364 Hiwood Ave Munroe Falls OH 41.148575 -81.429878 \n", "\n", " state_fp county_fp tract_ce geo_id county_id \\\n", "0 1 51 30902 1051030902 1051 \n", "1 22 79 11700 22079011700 22079 \n", "2 55 59 1200 55059001200 55059 \n", "3 6 37 535607 6037535607 6037 \n", "4 39 153 530800 39153530800 39153 \n", "\n", " namelsad lawenforcementagency cause armed \\\n", "0 Census Tract 309.02 Millbrook Police Department Gunshot No \n", "1 Census Tract 117 Rapides Parish Sheriff's Office Gunshot No \n", "2 Census Tract 12 Kenosha Police Department Gunshot No \n", "3 Census Tract 5356.07 South Gate Police Department Gunshot Firearm \n", "4 Census Tract 5308 Kent Police Department Gunshot No \n", "\n", " pop share_white share_black share_hispanic p_income h_income \\\n", "0 3779 60.5 30.5 5.6 28375 51367.0 \n", "1 2769 53.8 36.2 0.5 14678 27972.0 \n", "2 4079 73.8 7.7 16.8 25286 45365.0 \n", "3 4343 1.2 0.6 98.8 17194 48295.0 \n", "4 6809 92.5 1.4 1.7 33954 68785.0 \n", "\n", " county_income comp_income county_bucket nat_bucket pov urate \\\n", "0 54766 0.937936 3.0 3.0 14.1 0.097686 \n", "1 40930 0.683411 2.0 1.0 28.8 0.065724 \n", "2 54930 0.825869 2.0 3.0 14.6 0.166293 \n", "3 55909 0.863814 3.0 3.0 11.7 0.124827 \n", "4 49669 1.384868 5.0 4.0 1.9 0.063550 \n", "\n", " college \n", "0 0.168510 \n", "1 0.111402 \n", "2 0.147312 \n", "3 0.050133 \n", "4 0.403954 " ] }, "execution_count": 45, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Načteme data\n", "police_killings = pd.read_csv('police_killings.csv', encoding='latin-1')\n", "# Zobrazíme prvních 10 řádků\n", "police_killings.head()" ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "linkText": "Export to plot.ly", "plotlyServerURL": "https://plot.ly", "showLink": false }, "data": [ { "type": "histogram", "uid": "53a53142-b631-4438-ad11-5f1d6a768d85", "x": [ "16", "27", "26", "25", "29", "29", "22", "35", "44", "31", "76", "40", "Unknown", "31", "23", "39", "25", "54", "24", "57", "21", "42", "21", "36", "26", "49", "54", "26", "48", "33", "21", "41", "48", "36", "41", "29", "27", "45", "32", "35", "36", "35", "40", "18", "34", "39", "21", "62", "43", "44", "29", "35", "50", "18", "25", "31", "29", "49", "23", "45", "26", "35", "34", "46", "29", "39", "28", "51", "67", "53", "25", "30", "24", "35", "43", "24", "29", "38", "31", "36", "23", "38", "53", "24", "26", "28", "34", "28", "40", "51", "44", "25", "56", "37", "58", "39", "37", "35", "26", "47", "31", "60", "32", "45", "42", "17", "22", "33", "18", "39", "59", "33", "58", "58", "47", "41", "64", "45", "53", "24", "48", "29", "40", "34", "21", "26", "45", "25", "17", "24", "42", "29", "42", "30", "29", "39", "63", "49", "41", "27", "30", "60", "77", "19", "37", "54", "29", "30", "24", "21", "44", "40", "32", "22", "43", "52", "27", "34", "20", "25", "24", "20", "46", "42", "43", "41", "59", "25", "42", "64", "22", "24", "63", "56", "60", "54", "37", "22", "39", "45", "57", "42", "41", "19", "26", "34", "69", "64", "35", "40", "19", "27", "37", "17", "39", "74", "42", "47", "43", "46", "44", "31", "47", "41", "43", "40", "32", "31", "20", "20", "33", "22", "41", "41", "32", "16", "29", "42", "29", "47", "53", "18", "47", "34", "36", "63", "36", "27", "28", "33", "32", "42", "31", "17", "28", "24", "71", "51", "28", "53", "54", "45", "33", "48", "34", "23", "35", "33", "32", "52", "30", "23", "35", "42", "37", "56", "36", "27", "30", "31", "46", "51", "72", "28", "63", "28", "33", "24", "27", "24", "28", "28", "17", "46", "52", "39", "49", "30", "51", "16", "18", "22", "40", "61", "52", "51", "36", "36", "59", "17", "18", "41", "33", "25", "23", "47", "58", "47", "34", "28", "37", "87", "39", "27", "35", "36", "24", "26", "34", "51", "49", "41", "54", "36", "26", "35", "22", "27", "42", "32", "32", "25", "26", "53", "26", "40", "55", "29", "31", "19", "57", "40", "35", "35", "39", "37", "36", "62", "43", "32", "34", "37", "37", "33", "35", "40", "21", "30", "23", "26", "39", "33", "34", "37", "26", "24", "25", "31", "49", "59", "50", "37", "28", "26", "23", "32", "24", "42", "34", "68", "31", "83", "35", "29", "50", "56", "43", "38", "63", "27", "36", "55", "36", "68", "61", "46", "47", "26", "37", "22", "18", "39", "49", "23", "47", "32", "45", "51", "31", "54", "31", "23", "29", "28", "31", "24", "27", "57", "39", "38", "34", "39", "20", "35", "36", "38", "33", "57", "38", "72", "37", "47", "43", "37", "75", "21", "20", "29", "37", "41", "22", "23", "64", "34", "49", "32", "25", "39", "53", "27", "36", "20", "39", "19", "34", "36", "34", "31", "45", "34", "Unknown", "Unknown", "Unknown", "31", "28", "57", "29", "50", "40", "35", "53", "59", "18", "28", "52", "38", "48" ] } ], "layout": { "title": { "text": "Věk osob zabitých policisty" }, "xaxis": { "title": { "text": "Věk" } }, "yaxis": { "title": { "text": "Četnost" } } } }, "text/html": [ "
" ], "text/vnd.plotly.v1+html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Vytvoříme histogram\n", "trace = go.Histogram(x=police_killings.age)\n", "# I když je histogram 1, musí být součástí seznamu\n", "data = [trace]\n", "# Vytvoříme objekt go.Layout, kde specifikujeme název grafu a popis osy\n", "layout = go.Layout(\n", " title='Věk osob zabitých policisty',\n", " xaxis=dict(title='Věk'),\n", " yaxis=dict(title='Četnost')\n", ")\n", "# Dáme všechno dohromady do objektu go.Figure\n", "fig = go.Figure(data=data, layout=layout)\n", "# Vykreslíme graf\n", "iplot(fig)" ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "linkText": "Export to plot.ly", "plotlyServerURL": "https://plot.ly", "showLink": false }, "data": [ { "type": "histogram", "uid": "cc823561-73cf-4684-a689-33f73cf3556f", "y": [ "16", "27", "26", "25", "29", "29", "22", "35", "44", "31", "76", "40", "Unknown", "31", "23", "39", "25", "54", "24", "57", "21", "42", "21", "36", "26", "49", "54", "26", "48", "33", "21", "41", "48", "36", "41", "29", "27", "45", "32", "35", "36", "35", "40", "18", "34", "39", "21", "62", "43", "44", "29", "35", "50", "18", "25", "31", "29", "49", "23", "45", "26", "35", "34", "46", "29", "39", "28", "51", "67", "53", "25", "30", "24", "35", "43", "24", "29", "38", "31", "36", "23", "38", "53", "24", "26", "28", "34", "28", "40", "51", "44", "25", "56", "37", "58", "39", "37", "35", "26", "47", "31", "60", "32", "45", "42", "17", "22", "33", "18", "39", "59", "33", "58", "58", "47", "41", "64", "45", "53", "24", "48", "29", "40", "34", "21", "26", "45", "25", "17", "24", "42", "29", "42", "30", "29", "39", "63", "49", "41", "27", "30", "60", "77", "19", "37", "54", "29", "30", "24", "21", "44", "40", "32", "22", "43", "52", "27", "34", "20", "25", "24", "20", "46", "42", "43", "41", "59", "25", "42", "64", "22", "24", "63", "56", "60", "54", "37", "22", "39", "45", "57", "42", "41", "19", "26", "34", "69", "64", "35", "40", "19", "27", "37", "17", "39", "74", "42", "47", "43", "46", "44", "31", "47", "41", "43", "40", "32", "31", "20", "20", "33", "22", "41", "41", "32", "16", "29", "42", "29", "47", "53", "18", "47", "34", "36", "63", "36", "27", "28", "33", "32", "42", "31", "17", "28", "24", "71", "51", "28", "53", "54", "45", "33", "48", "34", "23", "35", "33", "32", "52", "30", "23", "35", "42", "37", "56", "36", "27", "30", "31", "46", "51", "72", "28", "63", "28", "33", "24", "27", "24", "28", "28", "17", "46", "52", "39", "49", "30", "51", "16", "18", "22", "40", "61", "52", "51", "36", "36", "59", "17", "18", "41", "33", "25", "23", "47", "58", "47", "34", "28", "37", "87", "39", "27", "35", "36", "24", "26", "34", "51", "49", "41", "54", "36", "26", "35", "22", "27", "42", "32", "32", "25", "26", "53", "26", "40", "55", "29", "31", "19", "57", "40", "35", "35", "39", "37", "36", "62", "43", "32", "34", "37", "37", "33", "35", "40", "21", "30", "23", "26", "39", "33", "34", "37", "26", "24", "25", "31", "49", "59", "50", "37", "28", "26", "23", "32", "24", "42", "34", "68", "31", "83", "35", "29", "50", "56", "43", "38", "63", "27", "36", "55", "36", "68", "61", "46", "47", "26", "37", "22", "18", "39", "49", "23", "47", "32", "45", "51", "31", "54", "31", "23", "29", "28", "31", "24", "27", "57", "39", "38", "34", "39", "20", "35", "36", "38", "33", "57", "38", "72", "37", "47", "43", "37", "75", "21", "20", "29", "37", "41", "22", "23", "64", "34", "49", "32", "25", "39", "53", "27", "36", "20", "39", "19", "34", "36", "34", "31", "45", "34", "Unknown", "Unknown", "Unknown", "31", "28", "57", "29", "50", "40", "35", "53", "59", "18", "28", "52", "38", "48" ] } ], "layout": { "title": { "text": "Věk osob zabitých policisty" }, "xaxis": { "title": { "text": "Věk" } }, "yaxis": { "title": { "text": "Četnost" } } } }, "text/html": [ "
" ], "text/vnd.plotly.v1+html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Vytvoříme histogram\n", "trace = go.Histogram(y=police_killings.age)\n", "# I když je histogram 1, musí být součástí seznamu\n", "data = [trace]\n", "# Vytvoříme objekt go.Layout, kde specifikujeme název grafu a popis osy\n", "layout = go.Layout(\n", " title='Věk osob zabitých policisty',\n", " xaxis=dict(title='Věk'),\n", " yaxis=dict(title='Četnost')\n", ")\n", "# Dáme všechno dohromady do objektu go.Figure\n", "fig = go.Figure(data=data, layout=layout)\n", "# Vykreslíme graf\n", "iplot(fig)" ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Figure({\n", " 'data': [{'type': 'histogram',\n", " 'uid': '53a53142-b631-4438-ad11-5f1d6a768d85',\n", " 'x': array(['16', '27', '26', ..., '52', '38', '48'], dtype=object)}],\n", " 'layout': {'title': {'text': 'Věk osob zabitých policisty'},\n", " 'xaxis': {'title': {'text': 'Věk'}},\n", " 'yaxis': {'title': {'text': 'Četnost'}}}\n", "})" ] }, "execution_count": 47, "metadata": {}, "output_type": "execute_result" } ], "source": [ "fig" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Plotly objekty\n", "\n", "Plotly vytváří slovník (`fig`), který obsahuje 2 klíčové částí: data (`data`) a rozložení grafu (`layout`).\n", "\n", "Součástí dat může být jeden nebo několik objektů z plotly, v tomto případě `go.Histogram`." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "linkText": "Export to plot.ly", "plotlyServerURL": "https://plot.ly", "showLink": false }, "data": [ { "type": "histogram", "uid": "f8545f9a-e95d-4df7-b51b-f2a0432e8081", "x": [ "16", "27", "26", "25", "29", "29", "22", "35", "44", "31", "76", "40", "Unknown", "31", "23", "39", "25", "54", "24", "57", "21", "42", "21", "36", "26", "49", "54", "26", "48", "33", "21", "41", "48", "36", "41", "29", "27", "45", "32", "35", "36", "35", "40", "18", "34", "39", "21", "62", "43", "44", "29", "35", "50", "18", "25", "31", "29", "49", "23", "45", "26", "35", "34", "46", "29", "39", "28", "51", "67", "53", "25", "30", "24", "35", "43", "24", "29", "38", "31", "36", "23", "38", "53", "24", "26", "28", "34", "28", "40", "51", "44", "25", "56", "37", "58", "39", "37", "35", "26", "47", "31", "60", "32", "45", "42", "17", "22", "33", "18", "39", "59", "33", "58", "58", "47", "41", "64", "45", "53", "24", "48", "29", "40", "34", "21", "26", "45", "25", "17", "24", "42", "29", "42", "30", "29", "39", "63", "49", "41", "27", "30", "60", "77", "19", "37", "54", "29", "30", "24", "21", "44", "40", "32", "22", "43", "52", "27", "34", "20", "25", "24", "20", "46", "42", "43", "41", "59", "25", "42", "64", "22", "24", "63", "56", "60", "54", "37", "22", "39", "45", "57", "42", "41", "19", "26", "34", "69", "64", "35", "40", "19", "27", "37", "17", "39", "74", "42", "47", "43", "46", "44", "31", "47", "41", "43", "40", "32", "31", "20", "20", "33", "22", "41", "41", "32", "16", "29", "42", "29", "47", "53", "18", "47", "34", "36", "63", "36", "27", "28", "33", "32", "42", "31", "17", "28", "24", "71", "51", "28", "53", "54", "45", "33", "48", "34", "23", "35", "33", "32", "52", "30", "23", "35", "42", "37", "56", "36", "27", "30", "31", "46", "51", "72", "28", "63", "28", "33", "24", "27", "24", "28", "28", "17", "46", "52", "39", "49", "30", "51", "16", "18", "22", "40", "61", "52", "51", "36", "36", "59", "17", "18", "41", "33", "25", "23", "47", "58", "47", "34", "28", "37", "87", "39", "27", "35", "36", "24", "26", "34", "51", "49", "41", "54", "36", "26", "35", "22", "27", "42", "32", "32", "25", "26", "53", "26", "40", "55", "29", "31", "19", "57", "40", "35", "35", "39", "37", "36", "62", "43", "32", "34", "37", "37", "33", "35", "40", "21", "30", "23", "26", "39", "33", "34", "37", "26", "24", "25", "31", "49", "59", "50", "37", "28", "26", "23", "32", "24", "42", "34", "68", "31", "83", "35", "29", "50", "56", "43", "38", "63", "27", "36", "55", "36", "68", "61", "46", "47", "26", "37", "22", "18", "39", "49", "23", "47", "32", "45", "51", "31", "54", "31", "23", "29", "28", "31", "24", "27", "57", "39", "38", "34", "39", "20", "35", "36", "38", "33", "57", "38", "72", "37", "47", "43", "37", "75", "21", "20", "29", "37", "41", "22", "23", "64", "34", "49", "32", "25", "39", "53", "27", "36", "20", "39", "19", "34", "36", "34", "31", "45", "34", "Unknown", "Unknown", "Unknown", "31", "28", "57", "29", "50", "40", "35", "53", "59", "18", "28", "52", "38", "48" ] } ], "layout": { "title": { "text": "Věk osob zabitých policisty" }, "xaxis": { "title": { "text": "Věk" } } } }, "text/html": [ "
" ], "text/vnd.plotly.v1+html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# První způsob - používáme Plotly objekty pro layout a figure\n", "trace = go.Histogram(x=police_killings.age)\n", "data = [trace]\n", "layout = go.Layout(\n", " title='Věk osob zabitých policisty',\n", " xaxis=dict(title='Věk')\n", ")\n", "fig = go.Figure(data=data, layout=layout)\n", "iplot(fig)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "linkText": "Export to plot.ly", "plotlyServerURL": "https://plot.ly", "showLink": false }, "data": [ { "type": "histogram", "uid": "91e2b9df-3d21-43a0-bc8c-b554260acbeb", "x": [ "16", "27", "26", "25", "29", "29", "22", "35", "44", "31", "76", "40", "Unknown", "31", "23", "39", "25", "54", "24", "57", "21", "42", "21", "36", "26", "49", "54", "26", "48", "33", "21", "41", "48", "36", "41", "29", "27", "45", "32", "35", "36", "35", "40", "18", "34", "39", "21", "62", "43", "44", "29", "35", "50", "18", "25", "31", "29", "49", "23", "45", "26", "35", "34", "46", "29", "39", "28", "51", "67", "53", "25", "30", "24", "35", "43", "24", "29", "38", "31", "36", "23", "38", "53", "24", "26", "28", "34", "28", "40", "51", "44", "25", "56", "37", "58", "39", "37", "35", "26", "47", "31", "60", "32", "45", "42", "17", "22", "33", "18", "39", "59", "33", "58", "58", "47", "41", "64", "45", "53", "24", "48", "29", "40", "34", "21", "26", "45", "25", "17", "24", "42", "29", "42", "30", "29", "39", "63", "49", "41", "27", "30", "60", "77", "19", "37", "54", "29", "30", "24", "21", "44", "40", "32", "22", "43", "52", "27", "34", "20", "25", "24", "20", "46", "42", "43", "41", "59", "25", "42", "64", "22", "24", "63", "56", "60", "54", "37", "22", "39", "45", "57", "42", "41", "19", "26", "34", "69", "64", "35", "40", "19", "27", "37", "17", "39", "74", "42", "47", "43", "46", "44", "31", "47", "41", "43", "40", "32", "31", "20", "20", "33", "22", "41", "41", "32", "16", "29", "42", "29", "47", "53", "18", "47", "34", "36", "63", "36", "27", "28", "33", "32", "42", "31", "17", "28", "24", "71", "51", "28", "53", "54", "45", "33", "48", "34", "23", "35", "33", "32", "52", "30", "23", "35", "42", "37", "56", "36", "27", "30", "31", "46", "51", "72", "28", "63", "28", "33", "24", "27", "24", "28", "28", "17", "46", "52", "39", "49", "30", "51", "16", "18", "22", "40", "61", "52", "51", "36", "36", "59", "17", "18", "41", "33", "25", "23", "47", "58", "47", "34", "28", "37", "87", "39", "27", "35", "36", "24", "26", "34", "51", "49", "41", "54", "36", "26", "35", "22", "27", "42", "32", "32", "25", "26", "53", "26", "40", "55", "29", "31", "19", "57", "40", "35", "35", "39", "37", "36", "62", "43", "32", "34", "37", "37", "33", "35", "40", "21", "30", "23", "26", "39", "33", "34", "37", "26", "24", "25", "31", "49", "59", "50", "37", "28", "26", "23", "32", "24", "42", "34", "68", "31", "83", "35", "29", "50", "56", "43", "38", "63", "27", "36", "55", "36", "68", "61", "46", "47", "26", "37", "22", "18", "39", "49", "23", "47", "32", "45", "51", "31", "54", "31", "23", "29", "28", "31", "24", "27", "57", "39", "38", "34", "39", "20", "35", "36", "38", "33", "57", "38", "72", "37", "47", "43", "37", "75", "21", "20", "29", "37", "41", "22", "23", "64", "34", "49", "32", "25", "39", "53", "27", "36", "20", "39", "19", "34", "36", "34", "31", "45", "34", "Unknown", "Unknown", "Unknown", "31", "28", "57", "29", "50", "40", "35", "53", "59", "18", "28", "52", "38", "48" ] } ], "layout": { "title": { "text": "Věk osob zabitých policisty" }, "xaxis": { "title": { "text": "Věk" } } } }, "text/html": [ "
" ], "text/vnd.plotly.v1+html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Druhý způsob - používáme slovníky (dict) pro layout a figure\n", "trace = go.Histogram(x=police_killings.age)\n", "data = [trace]\n", "layout = dict(\n", " title='Věk osob zabitých policisty',\n", " xaxis=dict(title='Věk')\n", ")\n", "fig = dict(data=data, layout=layout)\n", "iplot(fig)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Boxplot \n", "\n", "[Data](https://github.com/fivethirtyeight/data/tree/master/police-killings)\n", "\n", "[Tutoriál](https://plot.ly/python/box-plots/)" ] }, { "cell_type": "code", "execution_count": 49, "metadata": {}, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "linkText": "Export to plot.ly", "plotlyServerURL": "https://plot.ly", "showLink": false }, "data": [ { "type": "box", "uid": "7f2818d9-c669-4f6b-ad5a-5c2375f2a203", "x": [ "16", "27", "26", "25", "29", "29", "22", "35", "44", "31", "76", "40", "Unknown", "31", "23", "39", "25", "54", "24", "57", "21", "42", "21", "36", "26", "49", "54", "26", "48", "33", "21", "41", "48", "36", "41", "29", "27", "45", "32", "35", "36", "35", "40", "18", "34", "39", "21", "62", "43", "44", "29", "35", "50", "18", "25", "31", "29", "49", "23", "45", "26", "35", "34", "46", "29", "39", "28", "51", "67", "53", "25", "30", "24", "35", "43", "24", "29", "38", "31", "36", "23", "38", "53", "24", "26", "28", "34", "28", "40", "51", "44", "25", "56", "37", "58", "39", "37", "35", "26", "47", "31", "60", "32", "45", "42", "17", "22", "33", "18", "39", "59", "33", "58", "58", "47", "41", "64", "45", "53", "24", "48", "29", "40", "34", "21", "26", "45", "25", "17", "24", "42", "29", "42", "30", "29", "39", "63", "49", "41", "27", "30", "60", "77", "19", "37", "54", "29", "30", "24", "21", "44", "40", "32", "22", "43", "52", "27", "34", "20", "25", "24", "20", "46", "42", "43", "41", "59", "25", "42", "64", "22", "24", "63", "56", "60", "54", "37", "22", "39", "45", "57", "42", "41", "19", "26", "34", "69", "64", "35", "40", "19", "27", "37", "17", "39", "74", "42", "47", "43", "46", "44", "31", "47", "41", "43", "40", "32", "31", "20", "20", "33", "22", "41", "41", "32", "16", "29", "42", "29", "47", "53", "18", "47", "34", "36", "63", "36", "27", "28", "33", "32", "42", "31", "17", "28", "24", "71", "51", "28", "53", "54", "45", "33", "48", "34", "23", "35", "33", "32", "52", "30", "23", "35", "42", "37", "56", "36", "27", "30", "31", "46", "51", "72", "28", "63", "28", "33", "24", "27", "24", "28", "28", "17", "46", "52", "39", "49", "30", "51", "16", "18", "22", "40", "61", "52", "51", "36", "36", "59", "17", "18", "41", "33", "25", "23", "47", "58", "47", "34", "28", "37", "87", "39", "27", "35", "36", "24", "26", "34", "51", "49", "41", "54", "36", "26", "35", "22", "27", "42", "32", "32", "25", "26", "53", "26", "40", "55", "29", "31", "19", "57", "40", "35", "35", "39", "37", "36", "62", "43", "32", "34", "37", "37", "33", "35", "40", "21", "30", "23", "26", "39", "33", "34", "37", "26", "24", "25", "31", "49", "59", "50", "37", "28", "26", "23", "32", "24", "42", "34", "68", "31", "83", "35", "29", "50", "56", "43", "38", "63", "27", "36", "55", "36", "68", "61", "46", "47", "26", "37", "22", "18", "39", "49", "23", "47", "32", "45", "51", "31", "54", "31", "23", "29", "28", "31", "24", "27", "57", "39", "38", "34", "39", "20", "35", "36", "38", "33", "57", "38", "72", "37", "47", "43", "37", "75", "21", "20", "29", "37", "41", "22", "23", "64", "34", "49", "32", "25", "39", "53", "27", "36", "20", "39", "19", "34", "36", "34", "31", "45", "34", "Unknown", "Unknown", "Unknown", "31", "28", "57", "29", "50", "40", "35", "53", "59", "18", "28", "52", "38", "48" ] } ], "layout": { "title": { "text": "Věk osob zabitých policisty" }, "xaxis": { "title": { "text": "Věk" } } } }, "text/html": [ "
" ], "text/vnd.plotly.v1+html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Pro vykreslení boxplotu použijeme objekt go.Box\n", "# Když specifikujeme osu X, vykreslí se horizontální boxplot\n", "trace = go.Box(x=police_killings.age)\n", "data = [trace]\n", "layout = dict(\n", " title='Věk osob zabitých policisty',\n", " xaxis=dict(title='Věk')\n", ")\n", "fig = dict(data=data, layout=layout)\n", "iplot(fig)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "linkText": "Export to plot.ly", "plotlyServerURL": "https://plot.ly", "showLink": false }, "data": [ { "type": "box", "uid": "343bf93d-5200-423b-abb8-7d24f361dc92", "y": [ "16", "27", "26", "25", "29", "29", "22", "35", "44", "31", "76", "40", "Unknown", "31", "23", "39", "25", "54", "24", "57", "21", "42", "21", "36", "26", "49", "54", "26", "48", "33", "21", "41", "48", "36", "41", "29", "27", "45", "32", "35", "36", "35", "40", "18", "34", "39", "21", "62", "43", "44", "29", "35", "50", "18", "25", "31", "29", "49", "23", "45", "26", "35", "34", "46", "29", "39", "28", "51", "67", "53", "25", "30", "24", "35", "43", "24", "29", "38", "31", "36", "23", "38", "53", "24", "26", "28", "34", "28", "40", "51", "44", "25", "56", "37", "58", "39", "37", "35", "26", "47", "31", "60", "32", "45", "42", "17", "22", "33", "18", "39", "59", "33", "58", "58", "47", "41", "64", "45", "53", "24", "48", "29", "40", "34", "21", "26", "45", "25", "17", "24", "42", "29", "42", "30", "29", "39", "63", "49", "41", "27", "30", "60", "77", "19", "37", "54", "29", "30", "24", "21", "44", "40", "32", "22", "43", "52", "27", "34", "20", "25", "24", "20", "46", "42", "43", "41", "59", "25", "42", "64", "22", "24", "63", "56", "60", "54", "37", "22", "39", "45", "57", "42", "41", "19", "26", "34", "69", "64", "35", "40", "19", "27", "37", "17", "39", "74", "42", "47", "43", "46", "44", "31", "47", "41", "43", "40", "32", "31", "20", "20", "33", "22", "41", "41", "32", "16", "29", "42", "29", "47", "53", "18", "47", "34", "36", "63", "36", "27", "28", "33", "32", "42", "31", "17", "28", "24", "71", "51", "28", "53", "54", "45", "33", "48", "34", "23", "35", "33", "32", "52", "30", "23", "35", "42", "37", "56", "36", "27", "30", "31", "46", "51", "72", "28", "63", "28", "33", "24", "27", "24", "28", "28", "17", "46", "52", "39", "49", "30", "51", "16", "18", "22", "40", "61", "52", "51", "36", "36", "59", "17", "18", "41", "33", "25", "23", "47", "58", "47", "34", "28", "37", "87", "39", "27", "35", "36", "24", "26", "34", "51", "49", "41", "54", "36", "26", "35", "22", "27", "42", "32", "32", "25", "26", "53", "26", "40", "55", "29", "31", "19", "57", "40", "35", "35", "39", "37", "36", "62", "43", "32", "34", "37", "37", "33", "35", "40", "21", "30", "23", "26", "39", "33", "34", "37", "26", "24", "25", "31", "49", "59", "50", "37", "28", "26", "23", "32", "24", "42", "34", "68", "31", "83", "35", "29", "50", "56", "43", "38", "63", "27", "36", "55", "36", "68", "61", "46", "47", "26", "37", "22", "18", "39", "49", "23", "47", "32", "45", "51", "31", "54", "31", "23", "29", "28", "31", "24", "27", "57", "39", "38", "34", "39", "20", "35", "36", "38", "33", "57", "38", "72", "37", "47", "43", "37", "75", "21", "20", "29", "37", "41", "22", "23", "64", "34", "49", "32", "25", "39", "53", "27", "36", "20", "39", "19", "34", "36", "34", "31", "45", "34", "Unknown", "Unknown", "Unknown", "31", "28", "57", "29", "50", "40", "35", "53", "59", "18", "28", "52", "38", "48" ] } ], "layout": { "title": { "text": "Věk osob zabitých policisty" }, "xaxis": { "title": { "text": "Věk" } } } }, "text/html": [ "
" ], "text/vnd.plotly.v1+html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Když specifikujeme osu Y, vykreslí se vertikální boxplot\n", "trace = go.Box(y=police_killings.age)\n", "data = [trace]\n", "layout = dict(\n", " title='Věk osob zabitých policisty',\n", " xaxis=dict(title='Věk')\n", ")\n", "fig = dict(data=data, layout=layout)\n", "iplot(fig)" ] }, { "cell_type": "code", "execution_count": 53, "metadata": {}, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "linkText": "Export to plot.ly", "plotlyServerURL": "https://plot.ly", "showLink": false }, "data": [ { "boxpoints": "all", "name": "všechny body", "type": "box", "uid": "921f83b4-adaa-4098-8f04-4174a0e6c3db", "x": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], "y": [ "16", "27", "26", "25", "29", "29", "22", "35", "44", "31", "76", "40", "Unknown", "31", "23", "39", "25", "54", "24", "57", "21", "42", "21", "36", "26", "49", "54", "26", "48", "33", "21", "41", "48", "36", "41", "29", "27", "45", "32", "35", "36", "35", "40", "18", "34", "39", "21", "62", "43", "44", "29", "35", "50", "18", "25", "31", "29", "49", "23", "45", "26", "35", "34", "46", "29", "39", "28", "51", "67", "53", "25", "30", "24", "35", "43", "24", "29", "38", "31", "36", "23", "38", "53", "24", "26", "28", "34", "28", "40", "51", "44", "25", "56", "37", "58", "39", "37", "35", "26", "47", "31", "60", "32", "45", "42", "17", "22", "33", "18", "39", "59", "33", "58", "58", "47", "41", "64", "45", "53", "24", "48", "29", "40", "34", "21", "26", "45", "25", "17", "24", "42", "29", "42", "30", "29", "39", "63", "49", "41", "27", "30", "60", "77", "19", "37", "54", "29", "30", "24", "21", "44", "40", "32", "22", "43", "52", "27", "34", "20", "25", "24", "20", "46", "42", "43", "41", "59", "25", "42", "64", "22", "24", "63", "56", "60", "54", "37", "22", "39", "45", "57", "42", "41", "19", "26", "34", "69", "64", "35", "40", "19", "27", "37", "17", "39", "74", "42", "47", "43", "46", "44", "31", "47", "41", "43", "40", "32", "31", "20", "20", "33", "22", "41", "41", "32", "16", "29", "42", "29", "47", "53", "18", "47", "34", "36", "63", "36", "27", "28", "33", "32", "42", "31", "17", "28", "24", "71", "51", "28", "53", "54", "45", "33", "48", "34", "23", "35", "33", "32", "52", "30", "23", "35", "42", "37", "56", "36", "27", "30", "31", "46", "51", "72", "28", "63", "28", "33", "24", "27", "24", "28", "28", "17", "46", "52", "39", "49", "30", "51", "16", "18", "22", "40", "61", "52", "51", "36", "36", "59", "17", "18", "41", "33", "25", "23", "47", "58", "47", "34", "28", "37", "87", "39", "27", "35", "36", "24", "26", "34", "51", "49", "41", "54", "36", "26", "35", "22", "27", "42", "32", "32", "25", "26", "53", "26", "40", "55", "29", "31", "19", "57", "40", "35", "35", "39", "37", "36", "62", "43", "32", "34", "37", "37", "33", "35", "40", "21", "30", "23", "26", "39", "33", "34", "37", "26", "24", "25", "31", "49", "59", "50", "37", "28", "26", "23", "32", "24", "42", "34", "68", "31", "83", "35", "29", "50", "56", "43", "38", "63", "27", "36", "55", "36", "68", "61", "46", "47", "26", "37", "22", "18", "39", "49", "23", "47", "32", "45", "51", "31", "54", "31", "23", "29", "28", "31", "24", "27", "57", "39", "38", "34", "39", "20", "35", "36", "38", "33", "57", "38", "72", "37", "47", "43", "37", "75", "21", "20", "29", "37", "41", "22", "23", "64", "34", "49", "32", "25", "39", "53", "27", "36", "20", "39", "19", "34", "36", "34", "31", "45", "34", "Unknown", "Unknown", "Unknown", "31", "28", "57", "29", "50", "40", "35", "53", "59", "18", "28", "52", "38", "48" ] }, { "boxpoints": false, "name": "jenom vousy", "type": "box", "uid": "893b03cc-a9e3-4ba3-b04d-5ecb8b7619c3", "x": [ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ], "y": [ "16", "27", "26", "25", "29", "29", "22", "35", "44", "31", "76", "40", "Unknown", "31", "23", "39", "25", "54", "24", "57", "21", "42", "21", "36", "26", "49", "54", "26", "48", "33", "21", "41", "48", "36", "41", "29", "27", "45", "32", "35", "36", "35", "40", "18", "34", "39", "21", "62", "43", "44", "29", "35", "50", "18", "25", "31", "29", "49", "23", "45", "26", "35", "34", "46", "29", "39", "28", "51", "67", "53", "25", "30", "24", "35", "43", "24", "29", "38", "31", "36", "23", "38", "53", "24", "26", "28", "34", "28", "40", "51", "44", "25", "56", "37", "58", "39", "37", "35", "26", "47", "31", "60", "32", "45", "42", "17", "22", "33", "18", "39", "59", "33", "58", "58", "47", "41", "64", "45", "53", "24", "48", "29", "40", "34", "21", "26", "45", "25", "17", "24", "42", "29", "42", "30", "29", "39", "63", "49", "41", "27", "30", "60", "77", "19", "37", "54", "29", "30", "24", "21", "44", "40", "32", "22", "43", "52", "27", "34", "20", "25", "24", "20", "46", "42", "43", "41", "59", "25", "42", "64", "22", "24", "63", "56", "60", "54", "37", "22", "39", "45", "57", "42", "41", "19", "26", "34", "69", "64", "35", "40", "19", "27", "37", "17", "39", "74", "42", "47", "43", "46", "44", "31", "47", "41", "43", "40", "32", "31", "20", "20", "33", "22", "41", "41", "32", "16", "29", "42", "29", "47", "53", "18", "47", "34", "36", "63", "36", "27", "28", "33", "32", "42", "31", "17", "28", "24", "71", "51", "28", "53", "54", "45", "33", "48", "34", "23", "35", "33", "32", "52", "30", "23", "35", "42", "37", "56", "36", "27", "30", "31", "46", "51", "72", "28", "63", "28", "33", "24", "27", "24", "28", "28", "17", "46", "52", "39", "49", "30", "51", "16", "18", "22", "40", "61", "52", "51", "36", "36", "59", "17", "18", "41", "33", "25", "23", "47", "58", "47", "34", "28", "37", "87", "39", "27", "35", "36", "24", "26", "34", "51", "49", "41", "54", "36", "26", "35", "22", "27", "42", "32", "32", "25", "26", "53", "26", "40", "55", "29", "31", "19", "57", "40", "35", "35", "39", "37", "36", "62", "43", "32", "34", "37", "37", "33", "35", "40", "21", "30", "23", "26", "39", "33", "34", "37", "26", "24", "25", "31", "49", "59", "50", "37", "28", "26", "23", "32", "24", "42", "34", "68", "31", "83", "35", "29", "50", "56", "43", "38", "63", "27", "36", "55", "36", "68", "61", "46", "47", "26", "37", "22", "18", "39", "49", "23", "47", "32", "45", "51", "31", "54", "31", "23", "29", "28", "31", "24", "27", "57", "39", "38", "34", "39", "20", "35", "36", "38", "33", "57", "38", "72", "37", "47", "43", "37", "75", "21", "20", "29", "37", "41", "22", "23", "64", "34", "49", "32", "25", "39", "53", "27", "36", "20", "39", "19", "34", "36", "34", "31", "45", "34", "Unknown", "Unknown", "Unknown", "31", "28", "57", "29", "50", "40", "35", "53", "59", "18", "28", "52", "38", "48" ] }, { "boxpoints": "suspectedoutliers", "name": "možné odlehlé body", "type": "box", "uid": "98008469-0fe0-40e6-87e7-339901790501", "x": [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 ], "y": [ "16", "27", "26", "25", "29", "29", "22", "35", "44", "31", "76", "40", "Unknown", "31", "23", "39", "25", "54", "24", "57", "21", "42", "21", "36", "26", "49", "54", "26", "48", "33", "21", "41", "48", "36", "41", "29", "27", "45", "32", "35", "36", "35", "40", "18", "34", "39", "21", "62", "43", "44", "29", "35", "50", "18", "25", "31", "29", "49", "23", "45", "26", "35", "34", "46", "29", "39", "28", "51", "67", "53", "25", "30", "24", "35", "43", "24", "29", "38", "31", "36", "23", "38", "53", "24", "26", "28", "34", "28", "40", "51", "44", "25", "56", "37", "58", "39", "37", "35", "26", "47", "31", "60", "32", "45", "42", "17", "22", "33", "18", "39", "59", "33", "58", "58", "47", "41", "64", "45", "53", "24", "48", "29", "40", "34", "21", "26", "45", "25", "17", "24", "42", "29", "42", "30", "29", "39", "63", "49", "41", "27", "30", "60", "77", "19", "37", "54", "29", "30", "24", "21", "44", "40", "32", "22", "43", "52", "27", "34", "20", "25", "24", "20", "46", "42", "43", "41", "59", "25", "42", "64", "22", "24", "63", "56", "60", "54", "37", "22", "39", "45", "57", "42", "41", "19", "26", "34", "69", "64", "35", "40", "19", "27", "37", "17", "39", "74", "42", "47", "43", "46", "44", "31", "47", "41", "43", "40", "32", "31", "20", "20", "33", "22", "41", "41", "32", "16", "29", "42", "29", "47", "53", "18", "47", "34", "36", "63", "36", "27", "28", "33", "32", "42", "31", "17", "28", "24", "71", "51", "28", "53", "54", "45", "33", "48", "34", "23", "35", "33", "32", "52", "30", "23", "35", "42", "37", "56", "36", "27", "30", "31", "46", "51", "72", "28", "63", "28", "33", "24", "27", "24", "28", "28", "17", "46", "52", "39", "49", "30", "51", "16", "18", "22", "40", "61", "52", "51", "36", "36", "59", "17", "18", "41", "33", "25", "23", "47", "58", "47", "34", "28", "37", "87", "39", "27", "35", "36", "24", "26", "34", "51", "49", "41", "54", "36", "26", "35", "22", "27", "42", "32", "32", "25", "26", "53", "26", "40", "55", "29", "31", "19", "57", "40", "35", "35", "39", "37", "36", "62", "43", "32", "34", "37", "37", "33", "35", "40", "21", "30", "23", "26", "39", "33", "34", "37", "26", "24", "25", "31", "49", "59", "50", "37", "28", "26", "23", "32", "24", "42", "34", "68", "31", "83", "35", "29", "50", "56", "43", "38", "63", "27", "36", "55", "36", "68", "61", "46", "47", "26", "37", "22", "18", "39", "49", "23", "47", "32", "45", "51", "31", "54", "31", "23", "29", "28", "31", "24", "27", "57", "39", "38", "34", "39", "20", "35", "36", "38", "33", "57", "38", "72", "37", "47", "43", "37", "75", "21", "20", "29", "37", "41", "22", "23", "64", "34", "49", "32", "25", "39", "53", "27", "36", "20", "39", "19", "34", "36", "34", "31", "45", "34", "Unknown", "Unknown", "Unknown", "31", "28", "57", "29", "50", "40", "35", "53", "59", "18", "28", "52", "38", "48" ] }, { "boxpoints": "outliers", "name": "vousy a odlehlé body", "type": "box", "uid": "fec4a1fc-2fa8-4153-91bf-23a3554dc8d7", "y": [ "16", "27", "26", "25", "29", "29", "22", "35", "44", "31", "76", "40", "Unknown", "31", "23", "39", "25", "54", "24", "57", "21", "42", "21", "36", "26", "49", "54", "26", "48", "33", "21", "41", "48", "36", "41", "29", "27", "45", "32", "35", "36", "35", "40", "18", "34", "39", "21", "62", "43", "44", "29", "35", "50", "18", "25", "31", "29", "49", "23", "45", "26", "35", "34", "46", "29", "39", "28", "51", "67", "53", "25", "30", "24", "35", "43", "24", "29", "38", "31", "36", "23", "38", "53", "24", "26", "28", "34", "28", "40", "51", "44", "25", "56", "37", "58", "39", "37", "35", "26", "47", "31", "60", "32", "45", "42", "17", "22", "33", "18", "39", "59", "33", "58", "58", "47", "41", "64", "45", "53", "24", "48", "29", "40", "34", "21", "26", "45", "25", "17", "24", "42", "29", "42", "30", "29", "39", "63", "49", "41", "27", "30", "60", "77", "19", "37", "54", "29", "30", "24", "21", "44", "40", "32", "22", "43", "52", "27", "34", "20", "25", "24", "20", "46", "42", "43", "41", "59", "25", "42", "64", "22", "24", "63", "56", "60", "54", "37", "22", "39", "45", "57", "42", "41", "19", "26", "34", "69", "64", "35", "40", "19", "27", "37", "17", "39", "74", "42", "47", "43", "46", "44", "31", "47", "41", "43", "40", "32", "31", "20", "20", "33", "22", "41", "41", "32", "16", "29", "42", "29", "47", "53", "18", "47", "34", "36", "63", "36", "27", "28", "33", "32", "42", "31", "17", "28", "24", "71", "51", "28", "53", "54", "45", "33", "48", "34", "23", "35", "33", "32", "52", "30", "23", "35", "42", "37", "56", "36", "27", "30", "31", "46", "51", "72", "28", "63", "28", "33", "24", "27", "24", "28", "28", "17", "46", "52", "39", "49", "30", "51", "16", "18", "22", "40", "61", "52", "51", "36", "36", "59", "17", "18", "41", "33", "25", "23", "47", "58", "47", "34", "28", "37", "87", "39", "27", "35", "36", "24", "26", "34", "51", "49", "41", "54", "36", "26", "35", "22", "27", "42", "32", "32", "25", "26", "53", "26", "40", "55", "29", "31", "19", "57", "40", "35", "35", "39", "37", "36", "62", "43", "32", "34", "37", "37", "33", "35", "40", "21", "30", "23", "26", "39", "33", "34", "37", "26", "24", "25", "31", "49", "59", "50", "37", "28", "26", "23", "32", "24", "42", "34", "68", "31", "83", "35", "29", "50", "56", "43", "38", "63", "27", "36", "55", "36", "68", "61", "46", "47", "26", "37", "22", "18", "39", "49", "23", "47", "32", "45", "51", "31", "54", "31", "23", "29", "28", "31", "24", "27", "57", "39", "38", "34", "39", "20", "35", "36", "38", "33", "57", "38", "72", "37", "47", "43", "37", "75", "21", "20", "29", "37", "41", "22", "23", "64", "34", "49", "32", "25", "39", "53", "27", "36", "20", "39", "19", "34", "36", "34", "31", "45", "34", "Unknown", "Unknown", "Unknown", "31", "28", "57", "29", "50", "40", "35", "53", "59", "18", "28", "52", "38", "48" ] } ], "layout": { "showlegend": false, "title": { "text": "Vykreslení odlehlých hodnot" } } }, "text/html": [ "
" ], "text/vnd.plotly.v1+html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Tady vytvoříme několik boxplotů a potom je všechny vykreslíme do jednoho grafu tím\n", "# že je dáme do jednoho seznamu data, který použijeme pro vytvoření objektu fig\n", "trace1 = go.Box(x=[0] * len(police_killings),\n", " y=police_killings.age, name='všechny body', boxpoints='all'\n", ")\n", "trace2 = go.Box(x=[0.5] * len(police_killings),\n", " y=police_killings.age, name='jenom vousy', boxpoints=False\n", ")\n", "trace3 = go.Box(x=[2] * len(police_killings),\n", " y=police_killings.age, name='možné odlehlé body', \n", " boxpoints='suspectedoutliers'\n", ")\n", "trace4 = go.Box(\n", " y=police_killings.age, name='vousy a odlehlé body', \n", " boxpoints='outliers'\n", ")\n", "data = [trace1, trace2, trace3, trace4]\n", "layout = dict(\n", " title='Vykreslení odlehlých hodnot',\n", " showlegend=False\n", ")\n", "fig = dict(data=data, layout=layout)\n", "iplot(fig)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Cvičení\n", "\n", "Budeme používat [data o ceně nemovitostí z Kaggle](https://www.kaggle.com/alphaepsilon/housing-prices-dataset).\n", "Máte 2 soubory: data [`housing.csv`](housing.csv) a popis dat [`housing_description.txt`](housing_description.txt).\n", "\n", "Ukažte distribuci cen domů. \n", "- Vyberte jeden z typů grafů. \n", "- Pokud budete mít čas, udělejte všechny typy grafů (histogram a boxplot). \n", "- Pokud ješte nějaký čas zbyde, vytvořte graf cen domů dle toho, zda domy mají nebo nemají ústřední klimatizaci (`CentralAir`)." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Pochopit vztah" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Bodový graf\n", "\n", "[Tutoriál](https://plot.ly/python/line-and-scatter/)" ] }, { "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", "
airlineavail_seat_km_per_weekincidents_85_99fatal_accidents_85_99fatalities_85_99incidents_00_14fatal_accidents_00_14fatalities_00_14
0Aer Lingus320906734200000
1Aeroflot*119767231876141286188
2Aerolineas Argentinas385803648600100
3Aeromexico*5968718133164500
4Air Canada1865253802200200
\n", "
" ], "text/plain": [ " airline avail_seat_km_per_week incidents_85_99 \\\n", "0 Aer Lingus 320906734 2 \n", "1 Aeroflot* 1197672318 76 \n", "2 Aerolineas Argentinas 385803648 6 \n", "3 Aeromexico* 596871813 3 \n", "4 Air Canada 1865253802 2 \n", "\n", " fatal_accidents_85_99 fatalities_85_99 incidents_00_14 \\\n", "0 0 0 0 \n", "1 14 128 6 \n", "2 0 0 1 \n", "3 1 64 5 \n", "4 0 0 2 \n", "\n", " fatal_accidents_00_14 fatalities_00_14 \n", "0 0 0 \n", "1 1 88 \n", "2 0 0 \n", "3 0 0 \n", "4 0 0 " ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "airline = pd.read_csv('airline-safety.csv')\n", "airline.head()" ] }, { "cell_type": "code", "execution_count": 57, "metadata": {}, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "linkText": "Export to plot.ly", "plotlyServerURL": "https://plot.ly", "showLink": false }, "data": [ { "mode": "markers", "type": "scatter", "uid": "a2417587-de61-4db5-a23a-fe64804590fa", "x": [ 0, 6, 1, 5, 2, 6, 4, 5, 5, 4, 7, 17, 1, 0, 6, 2, 2, 0, 0, 24, 4, 1, 5, 0, 4, 3, 1, 5, 0, 2, 1, 1, 0, 3, 3, 10, 2, 5, 3, 6, 11, 2, 1, 8, 4, 3, 1, 7, 0, 2, 8, 14, 11, 1, 0, 2 ], "y": [ 0, 88, 0, 0, 0, 337, 158, 7, 88, 0, 0, 416, 0, 0, 0, 0, 225, 0, 0, 51, 14, 0, 92, 0, 22, 143, 0, 0, 0, 283, 0, 0, 0, 0, 537, 46, 1, 0, 0, 110, 0, 83, 0, 0, 0, 0, 3, 188, 0, 1, 84, 109, 23, 0, 0, 0 ] } ], "layout": { "hovermode": "closest", "title": { "text": "Letová bezpečnost 2000 - 2014" }, "xaxis": { "title": { "text": "Počet incidentů" } }, "yaxis": { "title": { "text": "Počet incidentů s fatálními následky" } } } }, "text/html": [ "
" ], "text/vnd.plotly.v1+html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Pro bodový graf použijeme object Scatter a parametr mode nastavíme na 'markers'\n", "trace = go.Scatter(\n", " x=airline.incidents_00_14,\n", " y=airline.fatalities_00_14,\n", " mode='markers'\n", ")\n", "data = [trace]\n", "layout = dict(title='Letová bezpečnost 2000 - 2014',\n", " xaxis=dict(title='Počet incidentů'),\n", " yaxis=dict(title='Počet incidentů s fatálními následky'),\n", " hovermode='closest'\n", ")\n", "fig = dict(data=data, layout=layout)\n", "iplot(fig)" ] }, { "cell_type": "code", "execution_count": 54, "metadata": {}, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "linkText": "Export to plot.ly", "plotlyServerURL": "https://plot.ly", "showLink": false }, "data": [ { "mode": "markers", "type": "scatter", "uid": "627a514e-2f72-4687-b77c-a90b6d17e6e8", "x": [ 0, 6, 1, 5, 2, 6, 4, 5, 5, 4, 7, 17, 1, 0, 6, 2, 2, 0, 0, 24, 4, 1, 5, 0, 4, 3, 1, 5, 0, 2, 1, 1, 0, 3, 3, 10, 2, 5, 3, 6, 11, 2, 1, 8, 4, 3, 1, 7, 0, 2, 8, 14, 11, 1, 0, 2 ], "y": [ 0, 88, 0, 0, 0, 337, 158, 7, 88, 0, 0, 416, 0, 0, 0, 0, 225, 0, 0, 51, 14, 0, 92, 0, 22, 143, 0, 0, 0, 283, 0, 0, 0, 0, 537, 46, 1, 0, 0, 110, 0, 83, 0, 0, 0, 0, 3, 188, 0, 1, 84, 109, 23, 0, 0, 0 ] } ], "layout": { "title": { "text": "Letová bezpečnost 2000 - 2014" }, "xaxis": { "title": { "text": "Počet incidentů" } }, "yaxis": { "title": { "text": "Počet incidentů s fatálními následky" } } } }, "text/html": [ "
" ], "text/vnd.plotly.v1+html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Pro bodový graf použijeme object Scatter a parametr mode nastavíme na 'markers'\n", "trace = go.Scatter(\n", " x=airline.incidents_00_14,\n", " y=airline.fatalities_00_14,\n", " mode='markers'\n", ")\n", "data = [trace]\n", "layout = dict(title='Letová bezpečnost 2000 - 2014',\n", " xaxis=dict(title='Počet incidentů'),\n", " yaxis=dict(title='Počet incidentů s fatálními následky')\n", ")\n", "fig = dict(data=data, layout=layout)\n", "iplot(fig)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Bublinový graf\n", "\n", "[Tutoriál](https://plot.ly/python/bubble-charts/)" ] }, { "cell_type": "code", "execution_count": 62, "metadata": {}, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "linkText": "Export to plot.ly", "plotlyServerURL": "https://plot.ly", "showLink": false }, "data": [ { "hoverinfo": "text", "marker": { "size": [ 3, 11, 3, 5, 18, 30, 8, 7, 9, 6, 18, 52, 3, 3, 31, 25, 8, 4, 5, 65, 5, 3, 4, 5, 6, 3, 4, 11, 15, 2, 18, 17, 10, 34, 10, 3, 4, 19, 2, 6, 8, 23, 6, 32, 3, 7, 2, 15, 6, 17, 19, 71, 24, 6, 10, 4 ] }, "mode": "markers", "text": [ "Aerolinka: Aer Lingus
Počet místo kilometrů týdně: 3*10^8", "Aerolinka: Aeroflot*
Počet místo kilometrů týdně: 11*10^8", "Aerolinka: Aerolineas Argentinas
Počet místo kilometrů týdně: 3*10^8", "Aerolinka: Aeromexico*
Počet místo kilometrů týdně: 5*10^8", "Aerolinka: Air Canada
Počet místo kilometrů týdně: 18*10^8", "Aerolinka: Air France
Počet místo kilometrů týdně: 30*10^8", "Aerolinka: Air India*
Počet místo kilometrů týdně: 8*10^8", "Aerolinka: Air New Zealand*
Počet místo kilometrů týdně: 7*10^8", "Aerolinka: Alaska Airlines*
Počet místo kilometrů týdně: 9*10^8", "Aerolinka: Alitalia
Počet místo kilometrů týdně: 6*10^8", "Aerolinka: All Nippon Airways
Počet místo kilometrů týdně: 18*10^8", "Aerolinka: American*
Počet místo kilometrů týdně: 52*10^8", "Aerolinka: Austrian Airlines
Počet místo kilometrů týdně: 3*10^8", "Aerolinka: Avianca
Počet místo kilometrů týdně: 3*10^8", "Aerolinka: British Airways*
Počet místo kilometrů týdně: 31*10^8", "Aerolinka: Cathay Pacific*
Počet místo kilometrů týdně: 25*10^8", "Aerolinka: China Airlines
Počet místo kilometrů týdně: 8*10^8", "Aerolinka: Condor
Počet místo kilometrů týdně: 4*10^8", "Aerolinka: COPA
Počet místo kilometrů týdně: 5*10^8", "Aerolinka: Delta / Northwest*
Počet místo kilometrů týdně: 65*10^8", "Aerolinka: Egyptair
Počet místo kilometrů týdně: 5*10^8", "Aerolinka: El Al
Počet místo kilometrů týdně: 3*10^8", "Aerolinka: Ethiopian Airlines
Počet místo kilometrů týdně: 4*10^8", "Aerolinka: Finnair
Počet místo kilometrů týdně: 5*10^8", "Aerolinka: Garuda Indonesia
Počet místo kilometrů týdně: 6*10^8", "Aerolinka: Gulf Air
Počet místo kilometrů týdně: 3*10^8", "Aerolinka: Hawaiian Airlines
Počet místo kilometrů týdně: 4*10^8", "Aerolinka: Iberia
Počet místo kilometrů týdně: 11*10^8", "Aerolinka: Japan Airlines
Počet místo kilometrů týdně: 15*10^8", "Aerolinka: Kenya Airways
Počet místo kilometrů týdně: 2*10^8", "Aerolinka: KLM*
Počet místo kilometrů týdně: 18*10^8", "Aerolinka: Korean Air
Počet místo kilometrů týdně: 17*10^8", "Aerolinka: LAN Airlines
Počet místo kilometrů týdně: 10*10^8", "Aerolinka: Lufthansa*
Počet místo kilometrů týdně: 34*10^8", "Aerolinka: Malaysia Airlines
Počet místo kilometrů týdně: 10*10^8", "Aerolinka: Pakistan International
Počet místo kilometrů týdně: 3*10^8", "Aerolinka: Philippine Airlines
Počet místo kilometrů týdně: 4*10^8", "Aerolinka: Qantas*
Počet místo kilometrů týdně: 19*10^8", "Aerolinka: Royal Air Maroc
Počet místo kilometrů týdně: 2*10^8", "Aerolinka: SAS*
Počet místo kilometrů týdně: 6*10^8", "Aerolinka: Saudi Arabian
Počet místo kilometrů týdně: 8*10^8", "Aerolinka: Singapore Airlines
Počet místo kilometrů týdně: 23*10^8", "Aerolinka: South African
Počet místo kilometrů týdně: 6*10^8", "Aerolinka: Southwest Airlines
Počet místo kilometrů týdně: 32*10^8", "Aerolinka: Sri Lankan / AirLanka
Počet místo kilometrů týdně: 3*10^8", "Aerolinka: SWISS*
Počet místo kilometrů týdně: 7*10^8", "Aerolinka: TACA
Počet místo kilometrů týdně: 2*10^8", "Aerolinka: TAM
Počet místo kilometrů týdně: 15*10^8", "Aerolinka: TAP - Air Portugal
Počet místo kilometrů týdně: 6*10^8", "Aerolinka: Thai Airways
Počet místo kilometrů týdně: 17*10^8", "Aerolinka: Turkish Airlines
Počet místo kilometrů týdně: 19*10^8", "Aerolinka: United / Continental*
Počet místo kilometrů týdně: 71*10^8", "Aerolinka: US Airways / America West*
Počet místo kilometrů týdně: 24*10^8", "Aerolinka: Vietnam Airlines
Počet místo kilometrů týdně: 6*10^8", "Aerolinka: Virgin Atlantic
Počet místo kilometrů týdně: 10*10^8", "Aerolinka: Xiamen Airlines
Počet místo kilometrů týdně: 4*10^8" ], "type": "scatter", "uid": "3449e1d6-3b5c-4b59-b333-bbae9b4bd002", "x": [ 0, 6, 1, 5, 2, 6, 4, 5, 5, 4, 7, 17, 1, 0, 6, 2, 2, 0, 0, 24, 4, 1, 5, 0, 4, 3, 1, 5, 0, 2, 1, 1, 0, 3, 3, 10, 2, 5, 3, 6, 11, 2, 1, 8, 4, 3, 1, 7, 0, 2, 8, 14, 11, 1, 0, 2 ], "y": [ 0, 88, 0, 0, 0, 337, 158, 7, 88, 0, 0, 416, 0, 0, 0, 0, 225, 0, 0, 51, 14, 0, 92, 0, 22, 143, 0, 0, 0, 283, 0, 0, 0, 0, 537, 46, 1, 0, 0, 110, 0, 83, 0, 0, 0, 0, 3, 188, 0, 1, 84, 109, 23, 0, 0, 0 ] } ], "layout": { "hovermode": "closest", "title": { "text": "Letová bezpečnost 2000 - 2014
Velikost bodů představuje počet místo kilometrů týdně" }, "xaxis": { "title": { "text": "Počet incidentů" } }, "yaxis": { "title": { "text": "Počet incidentů s fatálními následky" } } } }, "text/html": [ "
" ], "text/vnd.plotly.v1+html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Vytvoříme anotaci k bodům tím, že projdeme řádky tabulky a vytvoříme seznam obsahující popísek ke každému bodu\n", "hover_text = []\n", "for index, row in airline.iterrows():\n", " hover_text.append(('Aerolinka: {}
' + 'Počet místo kilometrů týdně: {}*10^8').format(\n", " row.airline, row.avail_seat_km_per_week//10**8)\n", ")\n", "trace = go.Scatter(\n", " x=airline.incidents_00_14,\n", " y=airline.fatalities_00_14,\n", " mode='markers',\n", " text=hover_text,\n", " hoverinfo='text',\n", " marker=dict(\n", " # Nastavujeme velikost bubliny jako sloupec avail_seat_km_per_week dělený 10^8\n", " size=airline.avail_seat_km_per_week//10**8\n", " )\n", ")\n", "data = [trace]\n", "layout = dict(title='Letová bezpečnost 2000 - 2014
Velikost bodů představuje počet místo kilometrů týdně',\n", " xaxis=dict(title='Počet incidentů'),\n", " yaxis=dict(title='Počet incidentů s fatálními následky'),\n", " # Nasledující řádek specifikuje, že se má zobrazovat popisek nejblizšího ke kurzoru bodu\n", " hovermode='closest'\n", ")\n", "fig = dict(data=data, layout=layout)\n", "iplot(fig)" ] }, { "cell_type": "code", "execution_count": 64, "metadata": {}, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "linkText": "Export to plot.ly", "plotlyServerURL": "https://plot.ly", "showLink": false }, "data": [ { "hoverinfo": "y+text", "marker": { "size": [ 3, 11, 3, 5, 18, 30, 8, 7, 9, 6, 18, 52, 3, 3, 31, 25, 8, 4, 5, 65, 5, 3, 4, 5, 6, 3, 4, 11, 15, 2, 18, 17, 10, 34, 10, 3, 4, 19, 2, 6, 8, 23, 6, 32, 3, 7, 2, 15, 6, 17, 19, 71, 24, 6, 10, 4 ] }, "mode": "markers", "text": [ "CZK", "CZK", "CZK", "CZK", "CZK", "CZK", "CZK", "CZK", "CZK", "CZK", "CZK", "CZK", "CZK", "CZK", "CZK", "CZK", "CZK", "CZK", "CZK", "CZK", "CZK", "CZK", "CZK", "CZK", "CZK", "CZK", "CZK", "CZK", "CZK", "CZK", "CZK", "CZK", "CZK", "CZK", "CZK", "CZK", "CZK", "CZK", "CZK", "CZK", "CZK", "CZK", "CZK", "CZK", "CZK", "CZK", "CZK", "CZK", "CZK", "CZK", "CZK", "CZK", "CZK", "CZK", "CZK", "CZK" ], "type": "scatter", "uid": "ab90d62d-0538-4ade-a83e-03caea126ae7", "x": [ 0, 6, 1, 5, 2, 6, 4, 5, 5, 4, 7, 17, 1, 0, 6, 2, 2, 0, 0, 24, 4, 1, 5, 0, 4, 3, 1, 5, 0, 2, 1, 1, 0, 3, 3, 10, 2, 5, 3, 6, 11, 2, 1, 8, 4, 3, 1, 7, 0, 2, 8, 14, 11, 1, 0, 2 ], "y": [ 0, 88, 0, 0, 0, 337, 158, 7, 88, 0, 0, 416, 0, 0, 0, 0, 225, 0, 0, 51, 14, 0, 92, 0, 22, 143, 0, 0, 0, 283, 0, 0, 0, 0, 537, 46, 1, 0, 0, 110, 0, 83, 0, 0, 0, 0, 3, 188, 0, 1, 84, 109, 23, 0, 0, 0 ] } ], "layout": { "hovermode": "closest", "title": { "text": "Letová bezpečnost 2000 - 2014
Velikost bodů představuje počet místo kilometrů týdně" }, "xaxis": { "title": { "text": "Počet incidentů" } }, "yaxis": { "title": { "text": "Počet incidentů s fatálními následky" } } } }, "text/html": [ "
" ], "text/vnd.plotly.v1+html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Vytvoříme anotaci k bodům tím, že projdeme řádky tabulky a vytvoříme seznam obsahující popísek ke každému bodu\n", "hover_text = ['CZK'] * len(airline)\n", "\n", "trace = go.Scatter(\n", " x=airline.incidents_00_14,\n", " y=airline.fatalities_00_14,\n", " mode='markers',\n", " text=hover_text,\n", " hoverinfo='y+text',\n", " marker=dict(\n", " # Nastavujeme velikost bubliny jako sloupec avail_seat_km_per_week dělený 10^8\n", " size=airline.avail_seat_km_per_week//10**8\n", " )\n", ")\n", "data = [trace]\n", "layout = dict(title='Letová bezpečnost 2000 - 2014
Velikost bodů představuje počet místo kilometrů týdně',\n", " xaxis=dict(title='Počet incidentů'),\n", " yaxis=dict(title='Počet incidentů s fatálními následky'),\n", " # Nasledující řádek specifikuje, že se má zobrazovat popisek nejblizšího ke kurzoru bodu\n", " hovermode='closest'\n", ")\n", "fig = dict(data=data, layout=layout)\n", "iplot(fig)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Cvičení\n", "\n", "Použijte data o nemovitostech z předešlého cvičení.\n", "\n", "- Udělejte graf vztahu plochy dřevěné terasy (`WoodDeckSF`) a ceny domu.\n", "- Pokud zbyde čas, použijte navíc velikost pozemku (`LotArea`)." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Srovnat" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Sloupcový graf\n", "\n", "[Tutoriál](https://plot.ly/python/bar-charts/)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "scrolled": false }, "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", "
yearmonthdate_of_monthday_of_weekbirths
020001169083
120001278006
2200013111363
3200014213032
4200015312558
\n", "
" ], "text/plain": [ " year month date_of_month day_of_week births\n", "0 2000 1 1 6 9083\n", "1 2000 1 2 7 8006\n", "2 2000 1 3 1 11363\n", "3 2000 1 4 2 13032\n", "4 2000 1 5 3 12558" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "birth = pd.read_csv('US_births_2000-2014_SSA.csv')\n", "birth.head()" ] }, { "cell_type": "code", "execution_count": 65, "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", "
yeardate_of_monthday_of_weekbirths
month
12007.00000016.0000003.98494610908.791398
22006.99056614.6367924.00235811145.502358
32007.00000016.0000004.01505411124.647312
42007.00000015.5000003.99555611023.888889
52007.00000016.0000003.98709711173.000000
62007.00000015.5000004.01777811474.133333
72007.00000016.0000003.98924711721.329032
82007.00000016.0000004.00860211914.344086
92007.00000015.5000004.00666711999.093333
102007.00000016.0000003.98064511404.010753
112007.00000015.5000004.01333311130.555556
122007.00000016.0000003.99784911170.821505
\n", "
" ], "text/plain": [ " year date_of_month day_of_week births\n", "month \n", "1 2007.000000 16.000000 3.984946 10908.791398\n", "2 2006.990566 14.636792 4.002358 11145.502358\n", "3 2007.000000 16.000000 4.015054 11124.647312\n", "4 2007.000000 15.500000 3.995556 11023.888889\n", "5 2007.000000 16.000000 3.987097 11173.000000\n", "6 2007.000000 15.500000 4.017778 11474.133333\n", "7 2007.000000 16.000000 3.989247 11721.329032\n", "8 2007.000000 16.000000 4.008602 11914.344086\n", "9 2007.000000 15.500000 4.006667 11999.093333\n", "10 2007.000000 16.000000 3.980645 11404.010753\n", "11 2007.000000 15.500000 4.013333 11130.555556\n", "12 2007.000000 16.000000 3.997849 11170.821505" ] }, "execution_count": 65, "metadata": {}, "output_type": "execute_result" } ], "source": [ "birth.groupby('month').mean()" ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "linkText": "Export to plot.ly", "plotlyServerURL": "https://plot.ly", "showLink": false }, "data": [ { "marker": { "color": "#2bae64", "line": { "width": 1.5 } }, "type": "bar", "uid": "7b4cfc9a-4809-4d56-bb5d-5e70b8292fe0", "x": [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 ], "y": [ 10908.791397849462, 11145.502358490567, 11124.647311827957, 11023.888888888889, 11173, 11474.133333333333, 11721.329032258065, 11914.344086021505, 11999.093333333334, 11404.010752688173, 11130.555555555555, 11170.821505376343 ] } ], "layout": { "title": { "text": "Počet narození v letech 2000 - 2014 v USA" }, "xaxis": { "title": { "text": "Měsíc" }, "type": "category" }, "yaxis": { "title": { "text": "Počet narození" } } } }, "text/html": [ "
" ], "text/vnd.plotly.v1+html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "trace = go.Bar(\n", " x=birth.groupby('month').mean().index,\n", " y=birth.groupby('month').mean().births,\n", " marker=dict(\n", " color='#2bae64',\n", " line=dict(\n", " width=1.5,\n", " )\n", " )\n", ")\n", "data = [trace]\n", "layout = dict(title='Počet narození v letech 2000 - 2014 v USA',\n", " # type='category' zobrazí všechny hodnoty na ose x\n", " xaxis=dict(title='Měsíc', type='category'),\n", " yaxis=dict(title='Počet narození')\n", ")\n", "fig = dict(data=data, layout=layout)\n", "iplot(fig)" ] }, { "cell_type": "code", "execution_count": 66, "metadata": {}, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "linkText": "Export to plot.ly", "plotlyServerURL": "https://plot.ly", "showLink": false }, "data": [ { "marker": { "color": "#2bae64", "line": { "width": 1.5 } }, "type": "bar", "uid": "87ed0bfc-aa01-4f85-8668-8868ef83e1d7", "x": [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 ], "y": [ 10908.791397849462, 11145.502358490567, 11124.647311827957, 11023.888888888889, 11173, 11474.133333333333, 11721.329032258065, 11914.344086021505, 11999.093333333334, 11404.010752688173, 11130.555555555555, 11170.821505376343 ] } ], "layout": { "title": { "text": "Počet narození v letech 2000 - 2014 v USA" }, "xaxis": { "title": { "text": "Měsíc" } }, "yaxis": { "title": { "text": "Počet narození" } } } }, "text/html": [ "
" ], "text/vnd.plotly.v1+html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "trace = go.Bar(\n", " x=birth.groupby('month').mean().index,\n", " y=birth.groupby('month').mean().births,\n", " marker=dict(\n", " color='#2bae64',\n", " line=dict(\n", " width=1.5,\n", " )\n", " )\n", ")\n", "data = [trace]\n", "layout = dict(title='Počet narození v letech 2000 - 2014 v USA',\n", " # type='category' zobrazí všechny hodnoty na ose x\n", " xaxis=dict(title='Měsíc'),\n", " yaxis=dict(title='Počet narození')\n", ")\n", "fig = dict(data=data, layout=layout)\n", "iplot(fig)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Boxplot u různých skupin" ] }, { "cell_type": "code", "execution_count": 75, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'file:///Users/nasta/Projects/interactive-dashboards/test.html'" ] }, "execution_count": 75, "metadata": {}, "output_type": "execute_result" } ], "source": [ "trace = go.Box(\n", " x=birth.month,\n", " y=birth.births,\n", " marker=dict(\n", " color='#2bae64',\n", " line=dict(\n", " width=1.5,\n", " )\n", " )\n", ")\n", "data = [trace]\n", "layout = dict(title='Počet narození v letech 2000 - 2014 v USA',\n", " # type='category' zobrazí všechny hodnoty na ose x\n", " xaxis=dict(title='Měsíc'),\n", " yaxis=dict(title='Počet narození')\n", ")\n", "fig = dict(data=data, layout=layout)\n", "plot(fig, filename='test.html')" ] }, { "cell_type": "code", "execution_count": 77, "metadata": {}, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "linkText": "Export to plot.ly", "plotlyServerURL": "https://plot.ly", "showLink": false }, "data": [ { "boxpoints": "all", "marker": { "color": "#2bae64", "line": { "width": 1.5 } }, "type": "box", "uid": "f4a57775-a3a2-4616-853c-eef39eadca89", "x": [ 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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12 ], "y": [ 9083, 8006, 11363, 13032, 12558, 12466, 12516, 8934, 7949, 11668, 12611, 12398, 11815, 12180, 8525, 7657, 10824, 12350, 12405, 12506, 11953, 8855, 7856, 11449, 12593, 12143, 12408, 11934, 8805, 7764, 11133, 12614, 12465, 12062, 12035, 8624, 7862, 11630, 12879, 12315, 12612, 12411, 8836, 7933, 12152, 13017, 12504, 12520, 12406, 8861, 7943, 10610, 12664, 12252, 12423, 12204, 9026, 7836, 11455, 11895, 12672, 12524, 12390, 9054, 7734, 11375, 12420, 12338, 12615, 12152, 8822, 7937, 11157, 12773, 12428, 12431, 12385, 8677, 7782, 11595, 12689, 12272, 12396, 12327, 9155, 7815, 11291, 12650, 12077, 12071, 11820, 8388, 7540, 11397, 12797, 12209, 12192, 12213, 8743, 7759, 11333, 12850, 12545, 11907, 12053, 8887, 7859, 11322, 12783, 12562, 12301, 11257, 8367, 7483, 11309, 12488, 12245, 12235, 11989, 8703, 7641, 11621, 12934, 12259, 12434, 12539, 8814, 7797, 11604, 12744, 12607, 12442, 12132, 8747, 7617, 11587, 12898, 12729, 12580, 12174, 8673, 7887, 11582, 13097, 12669, 13026, 12726, 8991, 7873, 8272, 11954, 12941, 13363, 12695, 8940, 7983, 11647, 12765, 12474, 12751, 12504, 9134, 8116, 11848, 12683, 12849, 12798, 12727, 9143, 8162, 11649, 13017, 12729, 12809, 12603, 9094, 8178, 12164, 13354, 13033, 13462, 13225, 9376, 8100, 11345, 9550, 12346, 13853, 13658, 9631, 8586, 12420, 13584, 12827, 12980, 13230, 9627, 8423, 12053, 13663, 13001, 13173, 13027, 9463, 8166, 12128, 13176, 12931, 13155, 12890, 9465, 8444, 11860, 13356, 12835, 13092, 12940, 9398, 8350, 11864, 13693, 13170, 12953, 12729, 9305, 8313, 11927, 13374, 13174, 13099, 13124, 9276, 8346, 12003, 13406, 12929, 13021, 12926, 9341, 8240, 12074, 13237, 13111, 13287, 13145, 9265, 8248, 8603, 12200, 13917, 13512, 13487, 9860, 8552, 12405, 13649, 13299, 13739, 13552, 9780, 8683, 12554, 13850, 13775, 13350, 13189, 9494, 8539, 12432, 13540, 13467, 13515, 13045, 9335, 8453, 12223, 13245, 13154, 13288, 12774, 9131, 8119, 11343, 13124, 12907, 13038, 11723, 9163, 8156, 12001, 13106, 12816, 12502, 12471, 8956, 7938, 11810, 12995, 12780, 12787, 12333, 8978, 8124, 11558, 11372, 12927, 13066, 12630, 9084, 8078, 11862, 12822, 12829, 12778, 12554, 9318, 8070, 11480, 13153, 12953, 13061, 12888, 9137, 8077, 12974, 13991, 12420, 8144, 9805, 8537, 7950, 12175, 13799, 13114, 12818, 12545, 8914, 7930, 11501, 12997, 12697, 12820, 12548, 8853, 8022, 11811, 13627, 12567, 12640, 12656, 9184, 8026, 12590, 13829, 13762, 13524, 12248, 8484, 6971, 6719, 10395, 13252, 13900, 13607, 9405, 7892, 7663, 10635, 12449, 12678, 12647, 9180, 7883, 11447, 12386, 12455, 12433, 12735, 8836, 7818, 10926, 12327, 12344, 12648, 12339, 8771, 7850, 11444, 12446, 12244, 12570, 12191, 8795, 7761, 11513, 12488, 12477, 12477, 12470, 8650, 7716, 11825, 12536, 12343, 12390, 12343, 8791, 7563, 11670, 12267, 13191, 12632, 12355, 8609, 7555, 10522, 12373, 12492, 12482, 12242, 8656, 7794, 11332, 12334, 12209, 12530, 12383, 8935, 7799, 11411, 12339, 12351, 12440, 12461, 8807, 7697, 11595, 12534, 12578, 12525, 12460, 9006, 7526, 11352, 12868, 12690, 12472, 12432, 8830, 7800, 11290, 12570, 12469, 12366, 12059, 8770, 7212, 11673, 12864, 12655, 12438, 12407, 8755, 7718, 11617, 13031, 12912, 12733, 10881, 8262, 7230, 11220, 12867, 12381, 12257, 12296, 8849, 7758, 11672, 12981, 12728, 12560, 12335, 8574, 7602, 11416, 13037, 12542, 12596, 12276, 8795, 8001, 11635, 13032, 12477, 12632, 12296, 8692, 7479, 11577, 13124, 12625, 12630, 12313, 8803, 7732, 11680, 13047, 12936, 13179, 12722, 8911, 7529, 7993, 12013, 13334, 13051, 12677, 8920, 7887, 11500, 12683, 12804, 12566, 12451, 8756, 7674, 11776, 13218, 12342, 12655, 12394, 8780, 7722, 11756, 12785, 12704, 12615, 12299, 8452, 7639, 11575, 12939, 12809, 13059, 12922, 9247, 8145, 12390, 13364, 9608, 12531, 13151, 9544, 8249, 12036, 13614, 13026, 13188, 12187, 9269, 8047, 12383, 13657, 13241, 13293, 12950, 9410, 8116, 12099, 13532, 12988, 13022, 12677, 9102, 7892, 12150, 13218, 12960, 13097, 12859, 9143, 8062, 12008, 13488, 13185, 13339, 13094, 9275, 8261, 11682, 13325, 13332, 13372, 13102, 9294, 7945, 12313, 13590, 13146, 13158, 12996, 9229, 8115, 12080, 13792, 13160, 13520, 13461, 9248, 8239, 8115, 12501, 14055, 13925, 13721, 9344, 8347, 12459, 13590, 13149, 13186, 13444, 9662, 8319, 12664, 13526, 13575, 13750, 13341, 9607, 8495, 12564, 14063, 13441, 13199, 13174, 9243, 8042, 12425, 13523, 13056, 13182, 12851, 8872, 7744, 11531, 12886, 12858, 12568, 12676, 8659, 7753, 11649, 12770, 12599, 12579, 12359, 8747, 7506, 11705, 12896, 12676, 12516, 12296, 8458, 7676, 11389, 12534, 10913, 12879, 12374, 8572, 7533, 11668, 12662, 12419, 12519, 12416, 8665, 7599, 11670, 12382, 12602, 12936, 12979, 8774, 7495, 12709, 13603, 12167, 7513, 9594, 8100, 7456, 11732, 13249, 12516, 12474, 12019, 8255, 7385, 11548, 12605, 12609, 12188, 11693, 8372, 7498, 11655, 12798, 12884, 12230, 12405, 8615, 7432, 12392, 13657, 13404, 13871, 13530, 9062, 7245, 7626, 6603, 11040, 14151, 14235, 9563, 7840, 10272, 7927, 10723, 12465, 12671, 8902, 7647, 11548, 12515, 11654, 12596, 12276, 8591, 7471, 11530, 12369, 11996, 12412, 12251, 8434, 7462, 10921, 12361, 12252, 12549, 12069, 8530, 7510, 11354, 12215, 12146, 12125, 12130, 9021, 7442, 11412, 12488, 12210, 12418, 12444, 8706, 7569, 11547, 12779, 12069, 13062, 12548, 8710, 7484, 10907, 12262, 12817, 12384, 12667, 8639, 7488, 11547, 12487, 12303, 12370, 12388, 8507, 7624, 11661, 12678, 12372, 12525, 12244, 8606, 7633, 11197, 12667, 12031, 12583, 12472, 8696, 7680, 11621, 12674, 12577, 12502, 12252, 8569, 7419, 11507, 12840, 12568, 12454, 11449, 8270, 7083, 10264, 12884, 12372, 12262, 12006, 8301, 7109, 11706, 12741, 12418, 12236, 12272, 8448, 7578, 11412, 12847, 12575, 12490, 12297, 8224, 7298, 11576, 12457, 12297, 12469, 11917, 8243, 7502, 11422, 12666, 12297, 12405, 12130, 8215, 7447, 11362, 12505, 12334, 12219, 12329, 8329, 7487, 11404, 12909, 12705, 12609, 12218, 8528, 7470, 11788, 12916, 12670, 13123, 12775, 8515, 7282, 7765, 12148, 13436, 12963, 12568, 8547, 7662, 11433, 12616, 12663, 12745, 12280, 8524, 7485, 11863, 12713, 12758, 12457, 12562, 8708, 7685, 11738, 13139, 12598, 12847, 12377, 8676, 7661, 11972, 13425, 13167, 13310, 12996, 8994, 7831, 12584, 14187, 13626, 9481, 11326, 8816, 8080, 12253, 13814, 13264, 13215, 12760, 8896, 7884, 12370, 13606, 13396, 13395, 12900, 8799, 7954, 12194, 13630, 13231, 13345, 12914, 9073, 7915, 12148, 13593, 13311, 13267, 13127, 8963, 7833, 12191, 13407, 13035, 13420, 12893, 9078, 7970, 12311, 13603, 13302, 13551, 13132, 9298, 7925, 12299, 13820, 13356, 13232, 13133, 9086, 7961, 12182, 13788, 13398, 13426, 13300, 9122, 7947, 8297, 12613, 13969, 14021, 13680, 9354, 8077, 12875, 13940, 12655, 14247, 13028, 9388, 8433, 12793, 14241, 13953, 13899, 13721, 9613, 8222, 12795, 14205, 13518, 13469, 13298, 9250, 7968, 12232, 13625, 13512, 13044, 12814, 8922, 7801, 11970, 13066, 12658, 12684, 12467, 8451, 7416, 11559, 12788, 12642, 12507, 12197, 8534, 7405, 11690, 13214, 12656, 12679, 12523, 8414, 7690, 11853, 12833, 12274, 10850, 12591, 8561, 7502, 11761, 12906, 12602, 12653, 12472, 8615, 7691, 11509, 12725, 12097, 12485, 12273, 8295, 7353, 11790, 12716, 12574, 12716, 12978, 8581, 7650, 12470, 13377, 11544, 7392, 9341, 8159, 7402, 11929, 13314, 12684, 12596, 11775, 8513, 7339, 11547, 12867, 12632, 12850, 11600, 8420, 7516, 12344, 13454, 13580, 13665, 14015, 9092, 7607, 11396, 9131, 6774, 11242, 13650, 9114, 8035, 13158, 12582, 7908, 11124, 12252, 8519, 7495, 11364, 12657, 12167, 12081, 12517, 8471, 7297, 11197, 12918, 12140, 12136, 12110, 8431, 7498, 11045, 12288, 12097, 12185, 12107, 8379, 7389, 11418, 12595, 12100, 12289, 11989, 8667, 7685, 11498, 12566, 12011, 12352, 12381, 8573, 7482, 11996, 12961, 12595, 12340, 13051, 8850, 7669, 10707, 12637, 12626, 12545, 12689, 8883, 7723, 11874, 12882, 12356, 12657, 12533, 8587, 7545, 12774, 12871, 12483, 12604, 12503, 8649, 7387, 11671, 12935, 12520, 12333, 12770, 8601, 7472, 11990, 12960, 12587, 12755, 12653, 8488, 7420, 11654, 13054, 12549, 12601, 12493, 8691, 7493, 11481, 12000, 12994, 12599, 12669, 8440, 7265, 11750, 13020, 12397, 12689, 12397, 8517, 7234, 11800, 13055, 12947, 12926, 11680, 8155, 7155, 11465, 12696, 12616, 12530, 12255, 8343, 7453, 11666, 12672, 12306, 12727, 12549, 8488, 7551, 12001, 13165, 12667, 12902, 12710, 8706, 7576, 12118, 12685, 12833, 13074, 12840, 8687, 7606, 12035, 13239, 13380, 13393, 13176, 8769, 7690, 7933, 12390, 13854, 13497, 13224, 8850, 7650, 12041, 13090, 12853, 12850, 12869, 8670, 7606, 11917, 13326, 13154, 13092, 12013, 8696, 7680, 12388, 13443, 13082, 12975, 12693, 8734, 7742, 12236, 13578, 13468, 13330, 12862, 8862, 7723, 12261, 13930, 13823, 13487, 9504, 8269, 7871, 12630, 13906, 13508, 13600, 13096, 8908, 7946, 12281, 13711, 13480, 13729, 13225, 8926, 8058, 12419, 13775, 13539, 13569, 12977, 8978, 7830, 12434, 13825, 13557, 13445, 13242, 8882, 7838, 12233, 13735, 13363, 13539, 13352, 9226, 7954, 12282, 13995, 13202, 13391, 13206, 9316, 8181, 12437, 13831, 13464, 13528, 13478, 9240, 7936, 12631, 14008, 13854, 14099, 13769, 9344, 7865, 8164, 12684, 14427, 14161, 13897, 9400, 8188, 12701, 13869, 14180, 13196, 13848, 9574, 8500, 13068, 14399, 14018, 14066, 13560, 9688, 8500, 12987, 14376, 13841, 13865, 13846, 9177, 8206, 12522, 13413, 13398, 13638, 13284, 8983, 7744, 12104, 13523, 13509, 13285, 13306, 8721, 7816, 11455, 13274, 12949, 12711, 12676, 8564, 7561, 12073, 13300, 13054, 12817, 12566, 8568, 7818, 11956, 13426, 12950, 12600, 11005, 8491, 7716, 12443, 13374, 12998, 12801, 12535, 8719, 7481, 12117, 13166, 12680, 12438, 12433, 8309, 7486, 12006, 13330, 12879, 12988, 13036, 8623, 7383, 13035, 13732, 12069, 7340, 9407, 8043, 7330, 12213, 13454, 13199, 12631, 12180, 8247, 7383, 11708, 13001, 12739, 12502, 12484, 8303, 7462, 12319, 13649, 13454, 13865, 13693, 8953, 7657, 13249, 12939, 9272, 6744, 10431, 8785, 7763, 13125, 14700, 12540, 8205, 10586, 8337, 7359, 11489, 12755, 12716, 12781, 12469, 8337, 7316, 11813, 12639, 12965, 12837, 12424, 8442, 7512, 11152, 12810, 12753, 12675, 12643, 8632, 7556, 11611, 12892, 12373, 12313, 12375, 8310, 7270, 11686, 13211, 12580, 12572, 12371, 8533, 7440, 11654, 13139, 12966, 12957, 11749, 8944, 7603, 11280, 12790, 12954, 12709, 12720, 8481, 7552, 11565, 13009, 12800, 12621, 12403, 8488, 7301, 12017, 12943, 12696, 12611, 12407, 8532, 7304, 11816, 12988, 12777, 12797, 12519, 8398, 7401, 11903, 12873, 12979, 12710, 12480, 8329, 7548, 11842, 12978, 12765, 12835, 12372, 8602, 7549, 11788, 13078, 12542, 12138, 12776, 8479, 7559, 12013, 13122, 12929, 12836, 11695, 8148, 6969, 11751, 12613, 12732, 12785, 12482, 8584, 7447, 11792, 13128, 12787, 12866, 12442, 8595, 7507, 12020, 13147, 12756, 12617, 12364, 8259, 7433, 11839, 12824, 12852, 12707, 12582, 8599, 7380, 12243, 13229, 12989, 12373, 12688, 8498, 7614, 12172, 13294, 12576, 13036, 12625, 8614, 7628, 12341, 13451, 12891, 13470, 12941, 8720, 7511, 7869, 12440, 13785, 13644, 13059, 8706, 7451, 12173, 13339, 12806, 13141, 12691, 8581, 7649, 12200, 13317, 13141, 13165, 12785, 8492, 7629, 12093, 13237, 13096, 13267, 13074, 8786, 7715, 12383, 13587, 13444, 13887, 13271, 8900, 7820, 8978, 13221, 14496, 14056, 13874, 9040, 7862, 12621, 13214, 13610, 13601, 13411, 9067, 7797, 12286, 13804, 13370, 13574, 12974, 9046, 7549, 12266, 13454, 13258, 13281, 12934, 8858, 7837, 12428, 13249, 13498, 13234, 12935, 8860, 7773, 12310, 13571, 13405, 13448, 12275, 8884, 7885, 12328, 13551, 13274, 13088, 13228, 8944, 7950, 12285, 13556, 13116, 13196, 12971, 9049, 7783, 12342, 13582, 13418, 13539, 13245, 8881, 7875, 8281, 12884, 14492, 14526, 14081, 9253, 8281, 12644, 14172, 13641, 13432, 13577, 9387, 8251, 12963, 13932, 13749, 13969, 13722, 9142, 8143, 12674, 13882, 13416, 13443, 13256, 8886, 7719, 12591, 13707, 13317, 13383, 13122, 8716, 7709, 11758, 13405, 13069, 13259, 13111, 8802, 7661, 12252, 13271, 12967, 12959, 12887, 8627, 7699, 12341, 13464, 13178, 13287, 12473, 8616, 7556, 12173, 13212, 13004, 13075, 12900, 8789, 7734, 12420, 13351, 13017, 12976, 12783, 8626, 7503, 12293, 13528, 13124, 13348, 13063, 8694, 7742, 13463, 14238, 12430, 7614, 9370, 8118, 7540, 12315, 13916, 13385, 12989, 12604, 8616, 7606, 12054, 13372, 13179, 12872, 12719, 8550, 7649, 11809, 13360, 13380, 13418, 13090, 8623, 7552, 13587, 14390, 13006, 11043, 7813, 6259, 7087, 12276, 13965, 13642, 13314, 10130, 7317, 6871, 11153, 12644, 12671, 12733, 12581, 8376, 7169, 11803, 12949, 12842, 12357, 12562, 8502, 7192, 11059, 12677, 12726, 12847, 12579, 8255, 7376, 11716, 13295, 12733, 12680, 12578, 8303, 7402, 11530, 13263, 12966, 12638, 12671, 8539, 7432, 11867, 12927, 12469, 12865, 12517, 8462, 7395, 12386, 13378, 13029, 12718, 12589, 8318, 7342, 11087, 12699, 12685, 12733, 12495, 8293, 7449, 11678, 13042, 12765, 13018, 12772, 8499, 7382, 11801, 12969, 12700, 12920, 12777, 8511, 7239, 12086, 13144, 12718, 13118, 12690, 8557, 7454, 12108, 13386, 12910, 12912, 12111, 7980, 6923, 11820, 13028, 12947, 12834, 11760, 8574, 7065, 12457, 13274, 13200, 12996, 12747, 8355, 7443, 12143, 13146, 12452, 12976, 13063, 8291, 7214, 12023, 13197, 13120, 12978, 12543, 8244, 7267, 12002, 13157, 12929, 12822, 12342, 8280, 7230, 11980, 13079, 12841, 14357, 12496, 8204, 7349, 12155, 13299, 12762, 13251, 11803, 8610, 7515, 12307, 13659, 13378, 13114, 13007, 8490, 7386, 12445, 13740, 13793, 13654, 13378, 8688, 7270, 7886, 12610, 14054, 13666, 13483, 8686, 7791, 12363, 13481, 13138, 13422, 13230, 8621, 7487, 11843, 13815, 13261, 13033, 12821, 8573, 7522, 12332, 13439, 13342, 13458, 13032, 8737, 7603, 12488, 13813, 14039, 14003, 13759, 8862, 7668, 7733, 12847, 14562, 14627, 14136, 9189, 7829, 12626, 13884, 13431, 14038, 13685, 9036, 7793, 12698, 13791, 13603, 13870, 13390, 8916, 7762, 12651, 13671, 13528, 13621, 13260, 8987, 7743, 12415, 13730, 13350, 13511, 13413, 8820, 7662, 12553, 13893, 13593, 14011, 13610, 9049, 7867, 12740, 13998, 13801, 14009, 13365, 9118, 7776, 12487, 13739, 13569, 13824, 13327, 8952, 7743, 12711, 13933, 13898, 14160, 13904, 9128, 7931, 8116, 13124, 14744, 14740, 14505, 9565, 8041, 13189, 13951, 14160, 14263, 14189, 9459, 8262, 13460, 14590, 14203, 13973, 13776, 9207, 8028, 12952, 13955, 13785, 13540, 13454, 8820, 7841, 12816, 13449, 13488, 13552, 13056, 8846, 7508, 12298, 13256, 13191, 12922, 13087, 8733, 7432, 12230, 13442, 12932, 13267, 12828, 8568, 7371, 12012, 13351, 12798, 13273, 12619, 8509, 7459, 10207, 13682, 13275, 13284, 12928, 8675, 7565, 12176, 13678, 13208, 13227, 12584, 8333, 7420, 12164, 13549, 13113, 13280, 13153, 8481, 7594, 13399, 14175, 12202, 7267, 9090, 7848, 7197, 12716, 13743, 13176, 13210, 12599, 8241, 7297, 12106, 13249, 13017, 13048, 12391, 8401, 7368, 12494, 13323, 13768, 13586, 13320, 8701, 7617, 13410, 14659, 14159, 12877, 10642, 7256, 6224, 8505, 13056, 14381, 13972, 13208, 8635, 7137, 8198, 11992, 12966, 13117, 13071, 8546, 7409, 11809, 12992, 12844, 13309, 11994, 8628, 7312, 11477, 13018, 13079, 13125, 13040, 8408, 7442, 12102, 12983, 12911, 13044, 12917, 8439, 7572, 12150, 12945, 12960, 13231, 13089, 8647, 7506, 12302, 13555, 13057, 13232, 13298, 8702, 7404, 11955, 13886, 13424, 13303, 13218, 8738, 7577, 11466, 13172, 13341, 13280, 12832, 8557, 7400, 12080, 13223, 13422, 13210, 13212, 8682, 7440, 12361, 13248, 13427, 13305, 13162, 8602, 7558, 11742, 13358, 13183, 13125, 13003, 8757, 7355, 12335, 13378, 13027, 13042, 12874, 8381, 7403, 12095, 13246, 13114, 13067, 12406, 8268, 7271, 12398, 13287, 13348, 13069, 12922, 8333, 7314, 12233, 13504, 13120, 12853, 12139, 8227, 7030, 11897, 13415, 12979, 13157, 12776, 8397, 7141, 12164, 13238, 13011, 13120, 12562, 8287, 7127, 12248, 13242, 13059, 12941, 12983, 8297, 7343, 12355, 13100, 13079, 12921, 12685, 8260, 7288, 12476, 13630, 13444, 13274, 12731, 8624, 7473, 12775, 13827, 13544, 14074, 13355, 8883, 7651, 8099, 13051, 14189, 14257, 13772, 8878, 7834, 13004, 11661, 13693, 14137, 13203, 8619, 7653, 12652, 13378, 13800, 13765, 13461, 8892, 7902, 12869, 14021, 13586, 13722, 13136, 8740, 7727, 12660, 14119, 14246, 14218, 14010, 9285, 7817, 11867, 9083, 13124, 15007, 14580, 9526, 8088, 13306, 14413, 13919, 13926, 14174, 9477, 8150, 13454, 14456, 14019, 14239, 14195, 9219, 8156, 13075, 14387, 14093, 14270, 13912, 9332, 8105, 12791, 14537, 14114, 14093, 13899, 9441, 7881, 13112, 14507, 14277, 14331, 13975, 9401, 7979, 13313, 14570, 14330, 14355, 13864, 9509, 8217, 13236, 14433, 14360, 14109, 13921, 9313, 8144, 13433, 14688, 14466, 14391, 14458, 9426, 8162, 8298, 13654, 15391, 15454, 15018, 9759, 8407, 12868, 15078, 14769, 15099, 14762, 9648, 8701, 13958, 15205, 14850, 14965, 14708, 9815, 8371, 13740, 14912, 14465, 14281, 13828, 9154, 8263, 13109, 14550, 14214, 14212, 13829, 9015, 7940, 12796, 14480, 14086, 13985, 12628, 8804, 7757, 12873, 14304, 13877, 13648, 13327, 8803, 7805, 12836, 14153, 13751, 13974, 13374, 8789, 7974, 12465, 12064, 13969, 13920, 13589, 8787, 7957, 12893, 13779, 13798, 13783, 13571, 8807, 7650, 12546, 14229, 13881, 14073, 14158, 8844, 7577, 14053, 14835, 13181, 7521, 9640, 8217, 7585, 13150, 14575, 13997, 13411, 13451, 8740, 7607, 12498, 13859, 13840, 13619, 12945, 8769, 7520, 12803, 14301, 13794, 13993, 13489, 9012, 7741, 13597, 14900, 14900, 14452, 12998, 8318, 6708, 6409, 11087, 14795, 14997, 14402, 9498, 7569, 7322, 11807, 13687, 13564, 13960, 8865, 7580, 12315, 13237, 13264, 13517, 13400, 8670, 7653, 11820, 12825, 13244, 13495, 12921, 8600, 7563, 12454, 13418, 13320, 13448, 13110, 8633, 7633, 12402, 13486, 13308, 13557, 13305, 8821, 7628, 12369, 13495, 13466, 13451, 13419, 8732, 7833, 12792, 13437, 13647, 13642, 13517, 8940, 7791, 11752, 13466, 13470, 13748, 13347, 8732, 7725, 12578, 13591, 13366, 13572, 13244, 8739, 7566, 12480, 13551, 13520, 13751, 13508, 8729, 7390, 12524, 13147, 13311, 13471, 13286, 8791, 7681, 12366, 13844, 13710, 13388, 13464, 8762, 7785, 12462, 13664, 13420, 13171, 13138, 8453, 7372, 12450, 13504, 13729, 13360, 12308, 8253, 6903, 12120, 13564, 13430, 13609, 12168, 8237, 7225, 12502, 13604, 13386, 13358, 13000, 8302, 7590, 12431, 13519, 13368, 13001, 12795, 8302, 7409, 12182, 13902, 13325, 13155, 12773, 8374, 7476, 12250, 13267, 13111, 13504, 13070, 8489, 7260, 12552, 13995, 13723, 13408, 12782, 8560, 7577, 12816, 14143, 13906, 14010, 13670, 8764, 7607, 7917, 13291, 14569, 14245, 13714, 8977, 7813, 12711, 13848, 13703, 13674, 13595, 8810, 7596, 12826, 13969, 13534, 14139, 13563, 8967, 7837, 13178, 14017, 13904, 13837, 13697, 9105, 7710, 12972, 14395, 14318, 14224, 13837, 9016, 7937, 13794, 14814, 9746, 13367, 14143, 10499, 8322, 13473, 14927, 14594, 14115, 13228, 9327, 7983, 13483, 14828, 14349, 14169, 14070, 9356, 7963, 13293, 14783, 14510, 14212, 14354, 9258, 8116, 13439, 14409, 14627, 14241, 13961, 9083, 8160, 13318, 14670, 14477, 14314, 13836, 9200, 7945, 13199, 14695, 14629, 14674, 14136, 9332, 8115, 13496, 14541, 14344, 14447, 14162, 9234, 8025, 13187, 14959, 14517, 14668, 14163, 9465, 7957, 8397, 13600, 15440, 15010, 14818, 9745, 8389, 13844, 14063, 14960, 14525, 14603, 9807, 8283, 13798, 15194, 14783, 15139, 14473, 9604, 8512, 13534, 14788, 14417, 14519, 13926, 9198, 7983, 13244, 14231, 14021, 13756, 13649, 8901, 7858, 12582, 14033, 14086, 13580, 13400, 8756, 7579, 12987, 14039, 13783, 13581, 13437, 8607, 7723, 12730, 13681, 13771, 13874, 13223, 8806, 7560, 12648, 13389, 11757, 13926, 13803, 8837, 7975, 13023, 14159, 13905, 13734, 13542, 8755, 7920, 12746, 13640, 13850, 14432, 14156, 9123, 7898, 13944, 14808, 13230, 7567, 9598, 8380, 7668, 13192, 14707, 14030, 13821, 12966, 8761, 7676, 12581, 13878, 13695, 13514, 13168, 8676, 7603, 12759, 13962, 13906, 13418, 13267, 8654, 7636, 13455, 14983, 14941, 15214, 14808, 9194, 7398, 7727, 6624, 12306, 15590, 15555, 9961, 8191, 11102, 8014, 11729, 13691, 13799, 9113, 7610, 12335, 13336, 13022, 13617, 13412, 8712, 7407, 12566, 13344, 13183, 13332, 13473, 8480, 7481, 11883, 13297, 13458, 13485, 13305, 8717, 7643, 12592, 13412, 13233, 13187, 13191, 8646, 7616, 12592, 13447, 13338, 13636, 13582, 8862, 7637, 12578, 13867, 13125, 14207, 13696, 8780, 7646, 12032, 13548, 13418, 13507, 13183, 8973, 7505, 12621, 13500, 13316, 13674, 11631, 8832, 7535, 12621, 13622, 13160, 13279, 13104, 8409, 7216, 12648, 13571, 13353, 13037, 13321, 8806, 7626, 13006, 13766, 13356, 13614, 12606, 8477, 7174, 12352, 13572, 13116, 13224, 12886, 8616, 7368, 12211, 12771, 13491, 13340, 13405, 8600, 7606, 12312, 13526, 13009, 13236, 13053, 8531, 7384, 12386, 13274, 13120, 13164, 13090, 8695, 7504, 12376, 13428, 13284, 13317, 12851, 8304, 7439, 12325, 13313, 13210, 13520, 12872, 8329, 7135, 12480, 13416, 13059, 13387, 12934, 8554, 7293, 12613, 13238, 13405, 13521, 13062, 8246, 7573, 12614, 13912, 13853, 13732, 13342, 8529, 7441, 7948, 13181, 14397, 13783, 13602, 8864, 7651, 12590, 13459, 13597, 13438, 13159, 8708, 7727, 12450, 13789, 13609, 13796, 12394, 8603, 7779, 12732, 13756, 13638, 13452, 13403, 8857, 7651, 12794, 13983, 13728, 13547, 13411, 8991, 7840, 12898, 14350, 14189, 14182, 9449, 8061, 7725, 13340, 14771, 14098, 13952, 13697, 9084, 7885, 12881, 14221, 14016, 13987, 13542, 8978, 7999, 13053, 14241, 13994, 13622, 13417, 8898, 7940, 13054, 14259, 13883, 13939, 13684, 9018, 7911, 13155, 13981, 13800, 13859, 15374, 9233, 7951, 13186, 14336, 13933, 14248, 13890, 9180, 7848, 13404, 14348, 14083, 14010, 13923, 8997, 8008, 13051, 14260, 14213, 14718, 14260, 9182, 8002, 8105, 13488, 14657, 14980, 14475, 9450, 8209, 13437, 14567, 14474, 13391, 14312, 9552, 8405, 13775, 14736, 14316, 14512, 14151, 9227, 8183, 13246, 14464, 14016, 14176, 13705, 9168, 7892, 12819, 13737, 13761, 13742, 13189, 8788, 7609, 12557, 13728, 13499, 13301, 13264, 8624, 7590, 11616, 13396, 13299, 13163, 12957, 8373, 7205, 12384, 13478, 13256, 13239, 12872, 8409, 7318, 12358, 13528, 12954, 12950, 11013, 8395, 7807, 12887, 13244, 13041, 13153, 13203, 8538, 7305, 12333, 13323, 12852, 12541, 12824, 8377, 7225, 12251, 13202, 12874, 13436, 13189, 8449, 7301, 13493, 13929, 12242, 7126, 9247, 7803, 7315, 13029, 14138, 13317, 13250, 12734, 8422, 7282, 12322, 13112, 13113, 12851, 12903, 8436, 7380, 12377, 13900, 13814, 14324, 14007, 8665, 7635, 13831, 13374, 9235, 6471, 10890, 8728, 7677, 13951, 15645, 12906, 8145, 10995, 8338, 7283, 12125, 13222, 13119, 13019, 12647, 8233, 7122, 12178, 12597, 13013, 12800, 12542, 8175, 7151, 11353, 12935, 12822, 13125, 12995, 8357, 7261, 12156, 13107, 12703, 12729, 12527, 8201, 7255, 12525, 13330, 12894, 12817, 12517, 8451, 7462, 12484, 13612, 13219, 13635, 11832, 8550, 7434, 11731, 13151, 13324, 13171, 12995, 8628, 7286, 12363, 13110, 13084, 13134, 12732, 8396, 7342, 12276, 13265, 12903, 13176, 13081, 8556, 7314, 12400, 13568, 12999, 13134, 12087, 8396, 7130, 12264, 13542, 12987, 12706, 12927, 8286, 7168, 12056, 13309, 13027, 12785, 12692, 8381, 7348, 12330, 13136, 12247, 13233, 13078, 8389, 7238, 12200, 13589, 13177, 13278, 12007, 7906, 6864, 11617, 13415, 12804, 13095, 12481, 8364, 7309, 12252, 13273, 12958, 12872, 12231, 8191, 7198, 12199, 13243, 12701, 12413, 12930, 8169, 7220, 12126, 13358, 12686, 13088, 12738, 8180, 7339, 12410, 13415, 12920, 13033, 12874, 8327, 7256, 12467, 13543, 13694, 13569, 13314, 8618, 7481, 8058, 13239, 14350, 14057, 13290, 8602, 7480, 12541, 13408, 13080, 13036, 12648, 8428, 7221, 12472, 13368, 13248, 13079, 12780, 8376, 7380, 12465, 13542, 13440, 13611, 12846, 8603, 7559, 12396, 13700, 13268, 13362, 12981, 8474, 7471, 12776, 14061, 14311, 13931, 10630, 7978, 7333, 12415, 14208, 14252, 13566, 13276, 8769, 7627, 12570, 14086, 13939, 14012, 13258, 8626, 7536, 12612, 13974, 13657, 13880, 13132, 8887, 7716, 12684, 14163, 13619, 13537, 13307, 8684, 7492, 12642, 13937, 13510, 13377, 13122, 8830, 7683, 12759, 14021, 13764, 13391, 13398, 8566, 7750, 13104, 14226, 13634, 13994, 13291, 8952, 7650, 12664, 13928, 13770, 13861, 13530, 8805, 7702, 12758, 14107, 13659, 13900, 13622, 8959, 7587, 7947, 13555, 16081, 14887, 13032, 9264, 7871, 13393, 14558, 14130, 14095, 13951, 9032, 8014, 13415, 14318, 13973, 14048, 13449, 9013, 7817, 12723, 13829, 13465, 13628, 13264, 8548, 7443, 12559, 13674, 13078, 13174, 12706, 8577, 7268, 12105, 12941, 12882, 13115, 12605, 8155, 7356, 12056, 13142, 12924, 12935, 12621, 8353, 7120, 12238, 13230, 13043, 12683, 11978, 7658, 7519, 12212, 13205, 12743, 12805, 12314, 8044, 7260, 11874, 13287, 12889, 12751, 11739, 8281, 7232, 11940, 12950, 12866, 12822, 13002, 8335, 7230, 13125, 13907, 11986, 6864, 8750, 7604, 7169, 12542, 13900, 13267, 12952, 12131, 7855, 7103, 11732, 12823, 12497, 12299, 11834, 8082, 7027, 12254, 13347, 12961, 13425, 13478, 8436, 7225, 13512, 14102, 11819, 8441, 6160, 7172, 7480, 13354, 14600, 13829, 11667, 7871, 6990, 6988, 11844, 12995, 12520, 12541, 12183, 7809, 6963, 11892, 12921, 12307, 12543, 12278, 8032, 7131, 11220, 12510, 12514, 12762, 12364, 7996, 7014, 11623, 12821, 12441, 12342, 11838, 8035, 6832, 11445, 12831, 12453, 12369, 12362, 7948, 6893, 11912, 12747, 12535, 12389, 12281, 7947, 7167, 11156, 12363, 12734, 12764, 12401, 8201, 7211, 11996, 12628, 12438, 12449, 12046, 7832, 6895, 11984, 12868, 12525, 12549, 12272, 7832, 6887, 11514, 12839, 12740, 12481, 12347, 7893, 6808, 11548, 12700, 12781, 12054, 12119, 8005, 6992, 11657, 12752, 12473, 12591, 12088, 7995, 6922, 11745, 12868, 12619, 11994, 11666, 7854, 6721, 11571, 12888, 12228, 12312, 11988, 7844, 6907, 11964, 12549, 12708, 12614, 12136, 7878, 6978, 11845, 13010, 12594, 12485, 12095, 7964, 6965, 12034, 12619, 12500, 12374, 11852, 7911, 6922, 11995, 12770, 12801, 12410, 11914, 7877, 6823, 12286, 12845, 12637, 12246, 12337, 7963, 7022, 11953, 12854, 12411, 12559, 12302, 8093, 7094, 11893, 13421, 12972, 13115, 12519, 8159, 7111, 7436, 12591, 13812, 13150, 12640, 8260, 7374, 11924, 12874, 12419, 12824, 11965, 8011, 6963, 11929, 12805, 12654, 12836, 12331, 8085, 7164, 11922, 12838, 12878, 12671, 12552, 8294, 7234, 12157, 13042, 12767, 13181, 12486, 7932, 7279, 8444, 12772, 13940, 13421, 12843, 8485, 7382, 12408, 12697, 13031, 13118, 12888, 8370, 7352, 11865, 13291, 13158, 12939, 12542, 8396, 7392, 12262, 13264, 12877, 12952, 12320, 8361, 7370, 12092, 13136, 12911, 12929, 12556, 8516, 7361, 12923, 13514, 13084, 13365, 12092, 8445, 7352, 12409, 13286, 13102, 12964, 12910, 8404, 7461, 12195, 13226, 13328, 13008, 12966, 8553, 7496, 12246, 13527, 13409, 13420, 13047, 8414, 7586, 7815, 13033, 14239, 14135, 13641, 8775, 7749, 12559, 13949, 13893, 13964, 13605, 8979, 7899, 12992, 13919, 13640, 13717, 13280, 8780, 7543, 12652, 13208, 13080, 12965, 13141, 8412, 7380, 12326, 13146, 12691, 12889, 12536, 8194, 8490, 12134, 12913, 12358, 12668, 12507, 8081, 7181, 11888, 12693, 12838, 12747, 12235, 8033, 7242, 12190, 13176, 12700, 12408, 11679, 7996, 6895, 12044, 13035, 12608, 12821, 12495, 8126, 7251, 12023, 12889, 12671, 12773, 12090, 8115, 7120, 12163, 13205, 12710, 13025, 12634, 8511, 7285, 13195, 13762, 11964, 7162, 8689, 7526, 7217, 12430, 13445, 13107, 12982, 12288, 7881, 7122, 11749, 12833, 12462, 12364, 12351, 8142, 7134, 11721, 12981, 12962, 12975, 12829, 8470, 7257, 13280, 14255, 13029, 11237, 7532, 6159, 6796, 12231, 13654, 13441, 13272, 9751, 7254, 6540, 11143, 12599, 11933, 12143, 12044, 7840, 6933, 11093, 13222, 11950, 11813, 12114, 7810, 7046, 10969, 12298, 12271, 12382, 12035, 7895, 7005, 11616, 12692, 12174, 12026, 11814, 7808, 6888, 11495, 12498, 11954, 11917, 11962, 8070, 7109, 11873, 12764, 11880, 12078, 12029, 8086, 6853, 12111, 12863, 12396, 12399, 12328, 7969, 7056, 10757, 12601, 12232, 12129, 11945, 7919, 6989, 11160, 12530, 12149, 12172, 11842, 7825, 6950, 11490, 12254, 12119, 11921, 11989, 7897, 6557, 11275, 12191, 11880, 12192, 11682, 7786, 7024, 11794, 12462, 12050, 12062, 11854, 7658, 6871, 11489, 12279, 12022, 12173, 11264, 8102, 7028, 11772, 12387, 11858, 12330, 11904, 7840, 6861, 11711, 12320, 11671, 12349, 11964, 7683, 6939, 11681, 12564, 12216, 12276, 11113, 7524, 6570, 11427, 12563, 12007, 12180, 11456, 7665, 6926, 11595, 12299, 11984, 12055, 11824, 7919, 6972, 11511, 12578, 12464, 12203, 11125, 7854, 7061, 11899, 12819, 12387, 12222, 12011, 7934, 7257, 11896, 12851, 12715, 12822, 12379, 8276, 7145, 7492, 12192, 13446, 13258, 12680, 8398, 7261, 11934, 12629, 12660, 12471, 12279, 8091, 7314, 11744, 12841, 12681, 12990, 12463, 8498, 7344, 12045, 13143, 13017, 12681, 12504, 8351, 7140, 12344, 13234, 13002, 13194, 13392, 8510, 7489, 7541, 12751, 13950, 14200, 13363, 8845, 7635, 12617, 13392, 12900, 13278, 13097, 8534, 7637, 12414, 13156, 13219, 13262, 12777, 8671, 7351, 12126, 13270, 13023, 13152, 12501, 8338, 7450, 12546, 13491, 13164, 13031, 12848, 8567, 7605, 12505, 13360, 13160, 13092, 12978, 8448, 7470, 12756, 13576, 13267, 13150, 12900, 8572, 7493, 12286, 13422, 12986, 13046, 12910, 8700, 7633, 12281, 13561, 13390, 13723, 13224, 8588, 7399, 7770, 12892, 14234, 13544, 13537, 9115, 7501, 12770, 13205, 13590, 13583, 13322, 8792, 7724, 12818, 13648, 13138, 13157, 13062, 8496, 7609, 12719, 13455, 12815, 12813, 12419, 8506, 7419, 12310, 12924, 12748, 12744, 12195, 8206, 7160, 11839, 12865, 12581, 12201, 12065, 8043, 7145, 11803, 12819, 12605, 12536, 11936, 7899, 7104, 11773, 12672, 12085, 12390, 12049, 7812, 6870, 9828, 13632, 12657, 12310, 11965, 8045, 7236, 11574, 12300, 11990, 11978, 14392, 8087, 6877, 11590, 12676, 12433, 12461, 12424, 8042, 7218, 12929, 13415, 11775, 6894, 8618, 7512, 6879, 12410, 13204, 12584, 12716, 11853, 7895, 6957, 11622, 12477, 12119, 12024, 11565, 7658, 6832, 12087, 12592, 12632, 12506, 12211, 7941, 6876, 12708, 13640, 13227, 12215, 10017, 6688, 5728, 8039, 12475, 13478, 12985, 12434, 8035, 6629, 7821, 11324, 12075, 12171, 11920, 7783, 6887, 11248, 11939, 11860, 12391, 11380, 7901, 6899, 10707, 12175, 11981, 11997, 11914, 7948, 6816, 11464, 12356, 11692, 12003, 11648, 7827, 6733, 11253, 11919, 11916, 12135, 11826, 7833, 6733, 11229, 12310, 11946, 11862, 11981, 7895, 7012, 11023, 12708, 12250, 12376, 11985, 7818, 6905, 10837, 12125, 12436, 12045, 11802, 7842, 6707, 11475, 12208, 11042, 12519, 11789, 8010, 7021, 11391, 12076, 11972, 11985, 11817, 7691, 6497, 11571, 11779, 11797, 11783, 11608, 8066, 6918, 11578, 12338, 12056, 11925, 11816, 7893, 6915, 11474, 12245, 12035, 11864, 11834, 7860, 6909, 11647, 12273, 12307, 11986, 10955, 7384, 6545, 11237, 12179, 11635, 12050, 10910, 7699, 6951, 11536, 12240, 11850, 11583, 11608, 7757, 6843, 11297, 12191, 11765, 11871, 11226, 7590, 6713, 11381, 12470, 12095, 11804, 11488, 7634, 6868, 11424, 12158, 11749, 11825, 11683, 7751, 6909, 11763, 12565, 12199, 12048, 11771, 7914, 7202, 11919, 12601, 12649, 12414, 12350, 7921, 7015, 7532, 12307, 13194, 12686, 12623, 8040, 7075, 12011, 12424, 12410, 12305, 12145, 8293, 7131, 11700, 12892, 11999, 12626, 12278, 8213, 7316, 12028, 12767, 12674, 12713, 12370, 8141, 7246, 12091, 12950, 12545, 12994, 12462, 8323, 7550, 12837, 13752, 9296, 12618, 12804, 8952, 7541, 12333, 13527, 13024, 12787, 12109, 8657, 7559, 12380, 13318, 12865, 12798, 12503, 8611, 7531, 12553, 13390, 13045, 13056, 12785, 8493, 7550, 12061, 13187, 12976, 13006, 12743, 8786, 7693, 12671, 13316, 13204, 13179, 12898, 8602, 7630, 12126, 13788, 13391, 13361, 12913, 8678, 7678, 12580, 13239, 12973, 12889, 13114, 8653, 7629, 12533, 13674, 12968, 13323, 13287, 8967, 7817, 8030, 12941, 13991, 13709, 13841, 8987, 7930, 12853, 12543, 13653, 13396, 13529, 9094, 7867, 12960, 13628, 13490, 13524, 13174, 8899, 8007, 12748, 13533, 13100, 13159, 12661, 8695, 7607, 12537, 13293, 12900, 12785, 12521, 8333, 7367, 11711, 12692, 12597, 13705, 12349, 8153, 7408, 12347, 12888, 12752, 12604, 12367, 8365, 7279, 12260, 12923, 12610, 12769, 11989, 8127, 7362, 11957, 12011, 11012, 13042, 12692, 8224, 7436, 11885, 12690, 12536, 12386, 12374, 8172, 7219, 12036, 12364, 12728, 12812, 12555, 8503, 7390, 12916, 13427, 12083, 7267, 9171, 7651, 7191, 12403, 13296, 12614, 12503, 11740, 8248, 7204, 11833, 12566, 12313, 12084, 11733, 7995, 7003, 11529, 12234, 14667, 11893, 11872, 7913, 7146, 11979, 13305, 12849, 13109, 13186, 8396, 6845, 7614, 6325, 11362, 14126, 13888, 9030, 7545, 10634, 7537, 10887, 12616, 12431, 8332, 7271, 11463, 12040, 11598, 11887, 12082, 8140, 7092, 11401, 11953, 11678, 12113, 11846, 7708, 7001, 10777, 11835, 11917, 12016, 11638, 8047, 6916, 11520, 12168, 11752, 11690, 11995, 7881, 6876, 11237, 12114, 11617, 12025, 11959, 7776, 6735, 11460, 12243, 11648, 12422, 11914, 7902, 7044, 10863, 12137, 11941, 11899, 11778, 7866, 6914, 11358, 11982, 11695, 11601, 12075, 7836, 7098, 11667, 12172, 11800, 11918, 11787, 7946, 6610, 11591, 12102, 11937, 11831, 11811, 7906, 7134, 11825, 12070, 12024, 12096, 11949, 7876, 6956, 11619, 12199, 12204, 12006, 10986, 7863, 6735, 10440, 12389, 12081, 12019, 11858, 7789, 6796, 11423, 12074, 11759, 11765, 11494, 7643, 6898, 11318, 12168, 11765, 11665, 11511, 7718, 6722, 11410, 11956, 11537, 11620, 11442, 7651, 6852, 11259, 11825, 11948, 11787, 11805, 7714, 6609, 11316, 12275, 11867, 11628, 11813, 7727, 7060, 11289, 12345, 12184, 12145, 11945, 7764, 7049, 11968, 12685, 12366, 12523, 12265, 8156, 6880, 7351, 12462, 13062, 12798, 12082, 8320, 7015, 11718, 12315, 12343, 11935, 12203, 8184, 7306, 11852, 12304, 11924, 12096, 12046, 8235, 7267, 12166, 12754, 12217, 12417, 12175, 8301, 7435, 12033, 12819, 12526, 12733, 12585, 8325, 7319, 12558, 13437, 13247, 8883, 11318, 8420, 7454, 12493, 13408, 12915, 12806, 12535, 8485, 7536, 12506, 13083, 12912, 12824, 12528, 8389, 7564, 12544, 13316, 12804, 12860, 12249, 8328, 7492, 12096, 12880, 12625, 12971, 12561, 8539, 7600, 12434, 13055, 13109, 13207, 12756, 8777, 7797, 12391, 12975, 13049, 13101, 12702, 8747, 7612, 12426, 13051, 12903, 12873, 12805, 8801, 7638, 12293, 13131, 13129, 12873, 12814, 8759, 7620, 7896, 12910, 13680, 13337, 12876, 8800, 7737, 12653, 13440, 12074, 13460, 12669, 8795, 7865, 12842, 13542, 13242, 13333, 13040, 8863, 7817, 12715, 13173, 13042, 13044, 12774, 8704, 7618, 12115, 13195, 12614, 12880, 12493, 8593, 7471, 11877, 12765, 12393, 12804, 12192, 8223, 7172, 11736, 12582, 12227, 12220, 12169, 7995, 7121, 11687, 12462, 12223, 12320, 12210, 8077, 7139, 12199, 12519, 11752, 10975, 12653, 8407, 7368, 12164, 12785, 12113, 12566, 12026, 8092, 7258, 11418, 13669, 12130, 12206, 12339, 8305, 7348, 12154, 12413, 12503, 12499, 12459, 8239, 7362, 12658, 13211, 11782, 7175, 9077, 7778, 7449, 12512, 13352, 12947, 12437, 11861, 8068, 7226, 11824, 12597, 12413, 12485, 11484, 8163, 7305, 12316, 13252, 13132, 13320, 13248, 8836, 7535, 12140, 9194, 6620, 11375, 13588, 9203, 7896, 13096, 12525, 8018, 11171, 12317, 8199, 7174, 11400, 12310, 11829, 11827, 11989, 8292, 7298, 11714, 12598, 11785, 11822, 11932, 8143, 6924, 11024, 12177, 11936, 12162, 11840, 8190, 7424, 11561, 12031, 11381, 11651, 11843, 8206, 7265, 11825, 12519, 11914, 11807, 12246, 8129, 7060, 11886, 12311, 12154, 11384, 12494, 8391, 7259, 11144, 12331, 11932, 12142, 11988, 8049, 7092, 11621, 12291, 11932, 11856, 11671, 8186, 7267, 11793, 12065, 12129, 12069, 12035, 8140, 6789, 11620, 12084, 11819, 11623, 11841, 8080, 6973, 11936, 12231, 11953, 12266, 11987, 8109, 7147, 11542, 12342, 11809, 11823, 11730, 8153, 7215, 11511, 11710, 12003, 11984, 12319, 7926, 7127, 11508, 12187, 11875, 12026, 12018, 7980, 7181, 11912, 12274, 11858, 12070, 11132, 7641, 6877, 11664, 12528, 12014, 12178, 11811, 7949, 7184, 11681, 12121, 11591, 12412, 12011, 8015, 7171, 11788, 12487, 12127, 12166, 11949, 8100, 7145, 11671, 12057, 12234, 12387, 12065, 8051, 7200, 11925, 12854, 12545, 12634, 12631, 8456, 7393, 7657, 12490, 13411, 12753, 12257, 8462, 7474, 11885, 12246, 12320, 12256, 11965, 8164, 7359, 11886, 12513, 12090, 12442, 11651, 8199, 7375, 12068, 12555, 12524, 12217, 12532, 8299, 7414, 11939, 12704, 12499, 12621, 12236, 8441, 7563, 12243, 13575, 13183, 13043, 9278, 7778, 7568, 13038, 13500, 12577, 13146, 12699, 8650, 7626, 12394, 13207, 12881, 12817, 12439, 8720, 7567, 12497, 13239, 12692, 12929, 12662, 8740, 7822, 12532, 13252, 12752, 12673, 12782, 8814, 7679, 12511, 13415, 12900, 13152, 12887, 8958, 7832, 12589, 13413, 12817, 13031, 13048, 8885, 7783, 12582, 13198, 13167, 13153, 12891, 8912, 7630, 12346, 13278, 13113, 13418, 13099, 8899, 7884, 8043, 13071, 13863, 13556, 13457, 8806, 7770, 12743, 13629, 13230, 12104, 13415, 8903, 8109, 13018, 13661, 13341, 13451, 13129, 9202, 8002, 12713, 13149, 13033, 12908, 12478, 8797, 7639, 12318, 12959, 13082, 12841, 12539, 8425, 7484, 11893, 12860, 12363, 12130, 12155, 8262, 7283, 11241, 12658, 12405, 12506, 12087, 8305, 7279, 11744, 12565, 12282, 12162, 12119, 8256, 7576, 12007, 12831, 12102, 12192, 10837, 8367, 7736, 12309, 12748, 12461, 12489, 12422, 8268, 7479, 11898, 12794, 12244, 12103, 12234, 8305, 7219, 11784, 12822, 12100, 12541, 12638, 8647, 7497, 12791, 13349, 11747, 7351, 9049, 8035, 7228, 12584, 13083, 12427, 12384, 11964, 8280, 7196, 11773, 12419, 12203, 12042, 12001, 8596, 7291, 12013, 12748, 12684, 12816, 12714, 8465, 7382, 12799, 12604, 9308, 6749, 10386, 8656, 7724, 12811, 13634, 11990 ] } ], "layout": { "title": { "text": "Počet narození v letech 2000 - 2014 v USA" }, "xaxis": { "title": { "text": "Měsíc" } }, "yaxis": { "title": { "text": "Počet narození" } } } }, "text/html": [ "
" ], "text/vnd.plotly.v1+html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "trace = go.Box(\n", " x=birth.month,\n", " y=birth.births,\n", " marker=dict(\n", " color='#2bae64',\n", " line=dict(\n", " width=1.5,\n", " )\n", " ),\n", " boxpoints='all'\n", ")\n", "data = [trace]\n", "layout = dict(title='Počet narození v letech 2000 - 2014 v USA',\n", " # type='category' zobrazí všechny hodnoty na ose x\n", " xaxis=dict(title='Měsíc'),\n", " yaxis=dict(title='Počet narození')\n", ")\n", "fig = dict(data=data, layout=layout)\n", "iplot(fig, filename='test.html')" ] }, { "cell_type": "code", "execution_count": 70, "metadata": {}, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "linkText": "Export to plot.ly", "plotlyServerURL": "https://plot.ly", "showLink": false }, "data": [ { "marker": { "color": "#2bae64", "line": { "width": 1.5 } }, "type": "box", "uid": "0ed53595-9661-4b7a-a91c-39a1d6141dc0", "x": [ 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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12 ], "y": [ 9083, 8006, 11363, 13032, 12558, 12466, 12516, 8934, 7949, 11668, 12611, 12398, 11815, 12180, 8525, 7657, 10824, 12350, 12405, 12506, 11953, 8855, 7856, 11449, 12593, 12143, 12408, 11934, 8805, 7764, 11133, 12614, 12465, 12062, 12035, 8624, 7862, 11630, 12879, 12315, 12612, 12411, 8836, 7933, 12152, 13017, 12504, 12520, 12406, 8861, 7943, 10610, 12664, 12252, 12423, 12204, 9026, 7836, 11455, 11895, 12672, 12524, 12390, 9054, 7734, 11375, 12420, 12338, 12615, 12152, 8822, 7937, 11157, 12773, 12428, 12431, 12385, 8677, 7782, 11595, 12689, 12272, 12396, 12327, 9155, 7815, 11291, 12650, 12077, 12071, 11820, 8388, 7540, 11397, 12797, 12209, 12192, 12213, 8743, 7759, 11333, 12850, 12545, 11907, 12053, 8887, 7859, 11322, 12783, 12562, 12301, 11257, 8367, 7483, 11309, 12488, 12245, 12235, 11989, 8703, 7641, 11621, 12934, 12259, 12434, 12539, 8814, 7797, 11604, 12744, 12607, 12442, 12132, 8747, 7617, 11587, 12898, 12729, 12580, 12174, 8673, 7887, 11582, 13097, 12669, 13026, 12726, 8991, 7873, 8272, 11954, 12941, 13363, 12695, 8940, 7983, 11647, 12765, 12474, 12751, 12504, 9134, 8116, 11848, 12683, 12849, 12798, 12727, 9143, 8162, 11649, 13017, 12729, 12809, 12603, 9094, 8178, 12164, 13354, 13033, 13462, 13225, 9376, 8100, 11345, 9550, 12346, 13853, 13658, 9631, 8586, 12420, 13584, 12827, 12980, 13230, 9627, 8423, 12053, 13663, 13001, 13173, 13027, 9463, 8166, 12128, 13176, 12931, 13155, 12890, 9465, 8444, 11860, 13356, 12835, 13092, 12940, 9398, 8350, 11864, 13693, 13170, 12953, 12729, 9305, 8313, 11927, 13374, 13174, 13099, 13124, 9276, 8346, 12003, 13406, 12929, 13021, 12926, 9341, 8240, 12074, 13237, 13111, 13287, 13145, 9265, 8248, 8603, 12200, 13917, 13512, 13487, 9860, 8552, 12405, 13649, 13299, 13739, 13552, 9780, 8683, 12554, 13850, 13775, 13350, 13189, 9494, 8539, 12432, 13540, 13467, 13515, 13045, 9335, 8453, 12223, 13245, 13154, 13288, 12774, 9131, 8119, 11343, 13124, 12907, 13038, 11723, 9163, 8156, 12001, 13106, 12816, 12502, 12471, 8956, 7938, 11810, 12995, 12780, 12787, 12333, 8978, 8124, 11558, 11372, 12927, 13066, 12630, 9084, 8078, 11862, 12822, 12829, 12778, 12554, 9318, 8070, 11480, 13153, 12953, 13061, 12888, 9137, 8077, 12974, 13991, 12420, 8144, 9805, 8537, 7950, 12175, 13799, 13114, 12818, 12545, 8914, 7930, 11501, 12997, 12697, 12820, 12548, 8853, 8022, 11811, 13627, 12567, 12640, 12656, 9184, 8026, 12590, 13829, 13762, 13524, 12248, 8484, 6971, 6719, 10395, 13252, 13900, 13607, 9405, 7892, 7663, 10635, 12449, 12678, 12647, 9180, 7883, 11447, 12386, 12455, 12433, 12735, 8836, 7818, 10926, 12327, 12344, 12648, 12339, 8771, 7850, 11444, 12446, 12244, 12570, 12191, 8795, 7761, 11513, 12488, 12477, 12477, 12470, 8650, 7716, 11825, 12536, 12343, 12390, 12343, 8791, 7563, 11670, 12267, 13191, 12632, 12355, 8609, 7555, 10522, 12373, 12492, 12482, 12242, 8656, 7794, 11332, 12334, 12209, 12530, 12383, 8935, 7799, 11411, 12339, 12351, 12440, 12461, 8807, 7697, 11595, 12534, 12578, 12525, 12460, 9006, 7526, 11352, 12868, 12690, 12472, 12432, 8830, 7800, 11290, 12570, 12469, 12366, 12059, 8770, 7212, 11673, 12864, 12655, 12438, 12407, 8755, 7718, 11617, 13031, 12912, 12733, 10881, 8262, 7230, 11220, 12867, 12381, 12257, 12296, 8849, 7758, 11672, 12981, 12728, 12560, 12335, 8574, 7602, 11416, 13037, 12542, 12596, 12276, 8795, 8001, 11635, 13032, 12477, 12632, 12296, 8692, 7479, 11577, 13124, 12625, 12630, 12313, 8803, 7732, 11680, 13047, 12936, 13179, 12722, 8911, 7529, 7993, 12013, 13334, 13051, 12677, 8920, 7887, 11500, 12683, 12804, 12566, 12451, 8756, 7674, 11776, 13218, 12342, 12655, 12394, 8780, 7722, 11756, 12785, 12704, 12615, 12299, 8452, 7639, 11575, 12939, 12809, 13059, 12922, 9247, 8145, 12390, 13364, 9608, 12531, 13151, 9544, 8249, 12036, 13614, 13026, 13188, 12187, 9269, 8047, 12383, 13657, 13241, 13293, 12950, 9410, 8116, 12099, 13532, 12988, 13022, 12677, 9102, 7892, 12150, 13218, 12960, 13097, 12859, 9143, 8062, 12008, 13488, 13185, 13339, 13094, 9275, 8261, 11682, 13325, 13332, 13372, 13102, 9294, 7945, 12313, 13590, 13146, 13158, 12996, 9229, 8115, 12080, 13792, 13160, 13520, 13461, 9248, 8239, 8115, 12501, 14055, 13925, 13721, 9344, 8347, 12459, 13590, 13149, 13186, 13444, 9662, 8319, 12664, 13526, 13575, 13750, 13341, 9607, 8495, 12564, 14063, 13441, 13199, 13174, 9243, 8042, 12425, 13523, 13056, 13182, 12851, 8872, 7744, 11531, 12886, 12858, 12568, 12676, 8659, 7753, 11649, 12770, 12599, 12579, 12359, 8747, 7506, 11705, 12896, 12676, 12516, 12296, 8458, 7676, 11389, 12534, 10913, 12879, 12374, 8572, 7533, 11668, 12662, 12419, 12519, 12416, 8665, 7599, 11670, 12382, 12602, 12936, 12979, 8774, 7495, 12709, 13603, 12167, 7513, 9594, 8100, 7456, 11732, 13249, 12516, 12474, 12019, 8255, 7385, 11548, 12605, 12609, 12188, 11693, 8372, 7498, 11655, 12798, 12884, 12230, 12405, 8615, 7432, 12392, 13657, 13404, 13871, 13530, 9062, 7245, 7626, 6603, 11040, 14151, 14235, 9563, 7840, 10272, 7927, 10723, 12465, 12671, 8902, 7647, 11548, 12515, 11654, 12596, 12276, 8591, 7471, 11530, 12369, 11996, 12412, 12251, 8434, 7462, 10921, 12361, 12252, 12549, 12069, 8530, 7510, 11354, 12215, 12146, 12125, 12130, 9021, 7442, 11412, 12488, 12210, 12418, 12444, 8706, 7569, 11547, 12779, 12069, 13062, 12548, 8710, 7484, 10907, 12262, 12817, 12384, 12667, 8639, 7488, 11547, 12487, 12303, 12370, 12388, 8507, 7624, 11661, 12678, 12372, 12525, 12244, 8606, 7633, 11197, 12667, 12031, 12583, 12472, 8696, 7680, 11621, 12674, 12577, 12502, 12252, 8569, 7419, 11507, 12840, 12568, 12454, 11449, 8270, 7083, 10264, 12884, 12372, 12262, 12006, 8301, 7109, 11706, 12741, 12418, 12236, 12272, 8448, 7578, 11412, 12847, 12575, 12490, 12297, 8224, 7298, 11576, 12457, 12297, 12469, 11917, 8243, 7502, 11422, 12666, 12297, 12405, 12130, 8215, 7447, 11362, 12505, 12334, 12219, 12329, 8329, 7487, 11404, 12909, 12705, 12609, 12218, 8528, 7470, 11788, 12916, 12670, 13123, 12775, 8515, 7282, 7765, 12148, 13436, 12963, 12568, 8547, 7662, 11433, 12616, 12663, 12745, 12280, 8524, 7485, 11863, 12713, 12758, 12457, 12562, 8708, 7685, 11738, 13139, 12598, 12847, 12377, 8676, 7661, 11972, 13425, 13167, 13310, 12996, 8994, 7831, 12584, 14187, 13626, 9481, 11326, 8816, 8080, 12253, 13814, 13264, 13215, 12760, 8896, 7884, 12370, 13606, 13396, 13395, 12900, 8799, 7954, 12194, 13630, 13231, 13345, 12914, 9073, 7915, 12148, 13593, 13311, 13267, 13127, 8963, 7833, 12191, 13407, 13035, 13420, 12893, 9078, 7970, 12311, 13603, 13302, 13551, 13132, 9298, 7925, 12299, 13820, 13356, 13232, 13133, 9086, 7961, 12182, 13788, 13398, 13426, 13300, 9122, 7947, 8297, 12613, 13969, 14021, 13680, 9354, 8077, 12875, 13940, 12655, 14247, 13028, 9388, 8433, 12793, 14241, 13953, 13899, 13721, 9613, 8222, 12795, 14205, 13518, 13469, 13298, 9250, 7968, 12232, 13625, 13512, 13044, 12814, 8922, 7801, 11970, 13066, 12658, 12684, 12467, 8451, 7416, 11559, 12788, 12642, 12507, 12197, 8534, 7405, 11690, 13214, 12656, 12679, 12523, 8414, 7690, 11853, 12833, 12274, 10850, 12591, 8561, 7502, 11761, 12906, 12602, 12653, 12472, 8615, 7691, 11509, 12725, 12097, 12485, 12273, 8295, 7353, 11790, 12716, 12574, 12716, 12978, 8581, 7650, 12470, 13377, 11544, 7392, 9341, 8159, 7402, 11929, 13314, 12684, 12596, 11775, 8513, 7339, 11547, 12867, 12632, 12850, 11600, 8420, 7516, 12344, 13454, 13580, 13665, 14015, 9092, 7607, 11396, 9131, 6774, 11242, 13650, 9114, 8035, 13158, 12582, 7908, 11124, 12252, 8519, 7495, 11364, 12657, 12167, 12081, 12517, 8471, 7297, 11197, 12918, 12140, 12136, 12110, 8431, 7498, 11045, 12288, 12097, 12185, 12107, 8379, 7389, 11418, 12595, 12100, 12289, 11989, 8667, 7685, 11498, 12566, 12011, 12352, 12381, 8573, 7482, 11996, 12961, 12595, 12340, 13051, 8850, 7669, 10707, 12637, 12626, 12545, 12689, 8883, 7723, 11874, 12882, 12356, 12657, 12533, 8587, 7545, 12774, 12871, 12483, 12604, 12503, 8649, 7387, 11671, 12935, 12520, 12333, 12770, 8601, 7472, 11990, 12960, 12587, 12755, 12653, 8488, 7420, 11654, 13054, 12549, 12601, 12493, 8691, 7493, 11481, 12000, 12994, 12599, 12669, 8440, 7265, 11750, 13020, 12397, 12689, 12397, 8517, 7234, 11800, 13055, 12947, 12926, 11680, 8155, 7155, 11465, 12696, 12616, 12530, 12255, 8343, 7453, 11666, 12672, 12306, 12727, 12549, 8488, 7551, 12001, 13165, 12667, 12902, 12710, 8706, 7576, 12118, 12685, 12833, 13074, 12840, 8687, 7606, 12035, 13239, 13380, 13393, 13176, 8769, 7690, 7933, 12390, 13854, 13497, 13224, 8850, 7650, 12041, 13090, 12853, 12850, 12869, 8670, 7606, 11917, 13326, 13154, 13092, 12013, 8696, 7680, 12388, 13443, 13082, 12975, 12693, 8734, 7742, 12236, 13578, 13468, 13330, 12862, 8862, 7723, 12261, 13930, 13823, 13487, 9504, 8269, 7871, 12630, 13906, 13508, 13600, 13096, 8908, 7946, 12281, 13711, 13480, 13729, 13225, 8926, 8058, 12419, 13775, 13539, 13569, 12977, 8978, 7830, 12434, 13825, 13557, 13445, 13242, 8882, 7838, 12233, 13735, 13363, 13539, 13352, 9226, 7954, 12282, 13995, 13202, 13391, 13206, 9316, 8181, 12437, 13831, 13464, 13528, 13478, 9240, 7936, 12631, 14008, 13854, 14099, 13769, 9344, 7865, 8164, 12684, 14427, 14161, 13897, 9400, 8188, 12701, 13869, 14180, 13196, 13848, 9574, 8500, 13068, 14399, 14018, 14066, 13560, 9688, 8500, 12987, 14376, 13841, 13865, 13846, 9177, 8206, 12522, 13413, 13398, 13638, 13284, 8983, 7744, 12104, 13523, 13509, 13285, 13306, 8721, 7816, 11455, 13274, 12949, 12711, 12676, 8564, 7561, 12073, 13300, 13054, 12817, 12566, 8568, 7818, 11956, 13426, 12950, 12600, 11005, 8491, 7716, 12443, 13374, 12998, 12801, 12535, 8719, 7481, 12117, 13166, 12680, 12438, 12433, 8309, 7486, 12006, 13330, 12879, 12988, 13036, 8623, 7383, 13035, 13732, 12069, 7340, 9407, 8043, 7330, 12213, 13454, 13199, 12631, 12180, 8247, 7383, 11708, 13001, 12739, 12502, 12484, 8303, 7462, 12319, 13649, 13454, 13865, 13693, 8953, 7657, 13249, 12939, 9272, 6744, 10431, 8785, 7763, 13125, 14700, 12540, 8205, 10586, 8337, 7359, 11489, 12755, 12716, 12781, 12469, 8337, 7316, 11813, 12639, 12965, 12837, 12424, 8442, 7512, 11152, 12810, 12753, 12675, 12643, 8632, 7556, 11611, 12892, 12373, 12313, 12375, 8310, 7270, 11686, 13211, 12580, 12572, 12371, 8533, 7440, 11654, 13139, 12966, 12957, 11749, 8944, 7603, 11280, 12790, 12954, 12709, 12720, 8481, 7552, 11565, 13009, 12800, 12621, 12403, 8488, 7301, 12017, 12943, 12696, 12611, 12407, 8532, 7304, 11816, 12988, 12777, 12797, 12519, 8398, 7401, 11903, 12873, 12979, 12710, 12480, 8329, 7548, 11842, 12978, 12765, 12835, 12372, 8602, 7549, 11788, 13078, 12542, 12138, 12776, 8479, 7559, 12013, 13122, 12929, 12836, 11695, 8148, 6969, 11751, 12613, 12732, 12785, 12482, 8584, 7447, 11792, 13128, 12787, 12866, 12442, 8595, 7507, 12020, 13147, 12756, 12617, 12364, 8259, 7433, 11839, 12824, 12852, 12707, 12582, 8599, 7380, 12243, 13229, 12989, 12373, 12688, 8498, 7614, 12172, 13294, 12576, 13036, 12625, 8614, 7628, 12341, 13451, 12891, 13470, 12941, 8720, 7511, 7869, 12440, 13785, 13644, 13059, 8706, 7451, 12173, 13339, 12806, 13141, 12691, 8581, 7649, 12200, 13317, 13141, 13165, 12785, 8492, 7629, 12093, 13237, 13096, 13267, 13074, 8786, 7715, 12383, 13587, 13444, 13887, 13271, 8900, 7820, 8978, 13221, 14496, 14056, 13874, 9040, 7862, 12621, 13214, 13610, 13601, 13411, 9067, 7797, 12286, 13804, 13370, 13574, 12974, 9046, 7549, 12266, 13454, 13258, 13281, 12934, 8858, 7837, 12428, 13249, 13498, 13234, 12935, 8860, 7773, 12310, 13571, 13405, 13448, 12275, 8884, 7885, 12328, 13551, 13274, 13088, 13228, 8944, 7950, 12285, 13556, 13116, 13196, 12971, 9049, 7783, 12342, 13582, 13418, 13539, 13245, 8881, 7875, 8281, 12884, 14492, 14526, 14081, 9253, 8281, 12644, 14172, 13641, 13432, 13577, 9387, 8251, 12963, 13932, 13749, 13969, 13722, 9142, 8143, 12674, 13882, 13416, 13443, 13256, 8886, 7719, 12591, 13707, 13317, 13383, 13122, 8716, 7709, 11758, 13405, 13069, 13259, 13111, 8802, 7661, 12252, 13271, 12967, 12959, 12887, 8627, 7699, 12341, 13464, 13178, 13287, 12473, 8616, 7556, 12173, 13212, 13004, 13075, 12900, 8789, 7734, 12420, 13351, 13017, 12976, 12783, 8626, 7503, 12293, 13528, 13124, 13348, 13063, 8694, 7742, 13463, 14238, 12430, 7614, 9370, 8118, 7540, 12315, 13916, 13385, 12989, 12604, 8616, 7606, 12054, 13372, 13179, 12872, 12719, 8550, 7649, 11809, 13360, 13380, 13418, 13090, 8623, 7552, 13587, 14390, 13006, 11043, 7813, 6259, 7087, 12276, 13965, 13642, 13314, 10130, 7317, 6871, 11153, 12644, 12671, 12733, 12581, 8376, 7169, 11803, 12949, 12842, 12357, 12562, 8502, 7192, 11059, 12677, 12726, 12847, 12579, 8255, 7376, 11716, 13295, 12733, 12680, 12578, 8303, 7402, 11530, 13263, 12966, 12638, 12671, 8539, 7432, 11867, 12927, 12469, 12865, 12517, 8462, 7395, 12386, 13378, 13029, 12718, 12589, 8318, 7342, 11087, 12699, 12685, 12733, 12495, 8293, 7449, 11678, 13042, 12765, 13018, 12772, 8499, 7382, 11801, 12969, 12700, 12920, 12777, 8511, 7239, 12086, 13144, 12718, 13118, 12690, 8557, 7454, 12108, 13386, 12910, 12912, 12111, 7980, 6923, 11820, 13028, 12947, 12834, 11760, 8574, 7065, 12457, 13274, 13200, 12996, 12747, 8355, 7443, 12143, 13146, 12452, 12976, 13063, 8291, 7214, 12023, 13197, 13120, 12978, 12543, 8244, 7267, 12002, 13157, 12929, 12822, 12342, 8280, 7230, 11980, 13079, 12841, 14357, 12496, 8204, 7349, 12155, 13299, 12762, 13251, 11803, 8610, 7515, 12307, 13659, 13378, 13114, 13007, 8490, 7386, 12445, 13740, 13793, 13654, 13378, 8688, 7270, 7886, 12610, 14054, 13666, 13483, 8686, 7791, 12363, 13481, 13138, 13422, 13230, 8621, 7487, 11843, 13815, 13261, 13033, 12821, 8573, 7522, 12332, 13439, 13342, 13458, 13032, 8737, 7603, 12488, 13813, 14039, 14003, 13759, 8862, 7668, 7733, 12847, 14562, 14627, 14136, 9189, 7829, 12626, 13884, 13431, 14038, 13685, 9036, 7793, 12698, 13791, 13603, 13870, 13390, 8916, 7762, 12651, 13671, 13528, 13621, 13260, 8987, 7743, 12415, 13730, 13350, 13511, 13413, 8820, 7662, 12553, 13893, 13593, 14011, 13610, 9049, 7867, 12740, 13998, 13801, 14009, 13365, 9118, 7776, 12487, 13739, 13569, 13824, 13327, 8952, 7743, 12711, 13933, 13898, 14160, 13904, 9128, 7931, 8116, 13124, 14744, 14740, 14505, 9565, 8041, 13189, 13951, 14160, 14263, 14189, 9459, 8262, 13460, 14590, 14203, 13973, 13776, 9207, 8028, 12952, 13955, 13785, 13540, 13454, 8820, 7841, 12816, 13449, 13488, 13552, 13056, 8846, 7508, 12298, 13256, 13191, 12922, 13087, 8733, 7432, 12230, 13442, 12932, 13267, 12828, 8568, 7371, 12012, 13351, 12798, 13273, 12619, 8509, 7459, 10207, 13682, 13275, 13284, 12928, 8675, 7565, 12176, 13678, 13208, 13227, 12584, 8333, 7420, 12164, 13549, 13113, 13280, 13153, 8481, 7594, 13399, 14175, 12202, 7267, 9090, 7848, 7197, 12716, 13743, 13176, 13210, 12599, 8241, 7297, 12106, 13249, 13017, 13048, 12391, 8401, 7368, 12494, 13323, 13768, 13586, 13320, 8701, 7617, 13410, 14659, 14159, 12877, 10642, 7256, 6224, 8505, 13056, 14381, 13972, 13208, 8635, 7137, 8198, 11992, 12966, 13117, 13071, 8546, 7409, 11809, 12992, 12844, 13309, 11994, 8628, 7312, 11477, 13018, 13079, 13125, 13040, 8408, 7442, 12102, 12983, 12911, 13044, 12917, 8439, 7572, 12150, 12945, 12960, 13231, 13089, 8647, 7506, 12302, 13555, 13057, 13232, 13298, 8702, 7404, 11955, 13886, 13424, 13303, 13218, 8738, 7577, 11466, 13172, 13341, 13280, 12832, 8557, 7400, 12080, 13223, 13422, 13210, 13212, 8682, 7440, 12361, 13248, 13427, 13305, 13162, 8602, 7558, 11742, 13358, 13183, 13125, 13003, 8757, 7355, 12335, 13378, 13027, 13042, 12874, 8381, 7403, 12095, 13246, 13114, 13067, 12406, 8268, 7271, 12398, 13287, 13348, 13069, 12922, 8333, 7314, 12233, 13504, 13120, 12853, 12139, 8227, 7030, 11897, 13415, 12979, 13157, 12776, 8397, 7141, 12164, 13238, 13011, 13120, 12562, 8287, 7127, 12248, 13242, 13059, 12941, 12983, 8297, 7343, 12355, 13100, 13079, 12921, 12685, 8260, 7288, 12476, 13630, 13444, 13274, 12731, 8624, 7473, 12775, 13827, 13544, 14074, 13355, 8883, 7651, 8099, 13051, 14189, 14257, 13772, 8878, 7834, 13004, 11661, 13693, 14137, 13203, 8619, 7653, 12652, 13378, 13800, 13765, 13461, 8892, 7902, 12869, 14021, 13586, 13722, 13136, 8740, 7727, 12660, 14119, 14246, 14218, 14010, 9285, 7817, 11867, 9083, 13124, 15007, 14580, 9526, 8088, 13306, 14413, 13919, 13926, 14174, 9477, 8150, 13454, 14456, 14019, 14239, 14195, 9219, 8156, 13075, 14387, 14093, 14270, 13912, 9332, 8105, 12791, 14537, 14114, 14093, 13899, 9441, 7881, 13112, 14507, 14277, 14331, 13975, 9401, 7979, 13313, 14570, 14330, 14355, 13864, 9509, 8217, 13236, 14433, 14360, 14109, 13921, 9313, 8144, 13433, 14688, 14466, 14391, 14458, 9426, 8162, 8298, 13654, 15391, 15454, 15018, 9759, 8407, 12868, 15078, 14769, 15099, 14762, 9648, 8701, 13958, 15205, 14850, 14965, 14708, 9815, 8371, 13740, 14912, 14465, 14281, 13828, 9154, 8263, 13109, 14550, 14214, 14212, 13829, 9015, 7940, 12796, 14480, 14086, 13985, 12628, 8804, 7757, 12873, 14304, 13877, 13648, 13327, 8803, 7805, 12836, 14153, 13751, 13974, 13374, 8789, 7974, 12465, 12064, 13969, 13920, 13589, 8787, 7957, 12893, 13779, 13798, 13783, 13571, 8807, 7650, 12546, 14229, 13881, 14073, 14158, 8844, 7577, 14053, 14835, 13181, 7521, 9640, 8217, 7585, 13150, 14575, 13997, 13411, 13451, 8740, 7607, 12498, 13859, 13840, 13619, 12945, 8769, 7520, 12803, 14301, 13794, 13993, 13489, 9012, 7741, 13597, 14900, 14900, 14452, 12998, 8318, 6708, 6409, 11087, 14795, 14997, 14402, 9498, 7569, 7322, 11807, 13687, 13564, 13960, 8865, 7580, 12315, 13237, 13264, 13517, 13400, 8670, 7653, 11820, 12825, 13244, 13495, 12921, 8600, 7563, 12454, 13418, 13320, 13448, 13110, 8633, 7633, 12402, 13486, 13308, 13557, 13305, 8821, 7628, 12369, 13495, 13466, 13451, 13419, 8732, 7833, 12792, 13437, 13647, 13642, 13517, 8940, 7791, 11752, 13466, 13470, 13748, 13347, 8732, 7725, 12578, 13591, 13366, 13572, 13244, 8739, 7566, 12480, 13551, 13520, 13751, 13508, 8729, 7390, 12524, 13147, 13311, 13471, 13286, 8791, 7681, 12366, 13844, 13710, 13388, 13464, 8762, 7785, 12462, 13664, 13420, 13171, 13138, 8453, 7372, 12450, 13504, 13729, 13360, 12308, 8253, 6903, 12120, 13564, 13430, 13609, 12168, 8237, 7225, 12502, 13604, 13386, 13358, 13000, 8302, 7590, 12431, 13519, 13368, 13001, 12795, 8302, 7409, 12182, 13902, 13325, 13155, 12773, 8374, 7476, 12250, 13267, 13111, 13504, 13070, 8489, 7260, 12552, 13995, 13723, 13408, 12782, 8560, 7577, 12816, 14143, 13906, 14010, 13670, 8764, 7607, 7917, 13291, 14569, 14245, 13714, 8977, 7813, 12711, 13848, 13703, 13674, 13595, 8810, 7596, 12826, 13969, 13534, 14139, 13563, 8967, 7837, 13178, 14017, 13904, 13837, 13697, 9105, 7710, 12972, 14395, 14318, 14224, 13837, 9016, 7937, 13794, 14814, 9746, 13367, 14143, 10499, 8322, 13473, 14927, 14594, 14115, 13228, 9327, 7983, 13483, 14828, 14349, 14169, 14070, 9356, 7963, 13293, 14783, 14510, 14212, 14354, 9258, 8116, 13439, 14409, 14627, 14241, 13961, 9083, 8160, 13318, 14670, 14477, 14314, 13836, 9200, 7945, 13199, 14695, 14629, 14674, 14136, 9332, 8115, 13496, 14541, 14344, 14447, 14162, 9234, 8025, 13187, 14959, 14517, 14668, 14163, 9465, 7957, 8397, 13600, 15440, 15010, 14818, 9745, 8389, 13844, 14063, 14960, 14525, 14603, 9807, 8283, 13798, 15194, 14783, 15139, 14473, 9604, 8512, 13534, 14788, 14417, 14519, 13926, 9198, 7983, 13244, 14231, 14021, 13756, 13649, 8901, 7858, 12582, 14033, 14086, 13580, 13400, 8756, 7579, 12987, 14039, 13783, 13581, 13437, 8607, 7723, 12730, 13681, 13771, 13874, 13223, 8806, 7560, 12648, 13389, 11757, 13926, 13803, 8837, 7975, 13023, 14159, 13905, 13734, 13542, 8755, 7920, 12746, 13640, 13850, 14432, 14156, 9123, 7898, 13944, 14808, 13230, 7567, 9598, 8380, 7668, 13192, 14707, 14030, 13821, 12966, 8761, 7676, 12581, 13878, 13695, 13514, 13168, 8676, 7603, 12759, 13962, 13906, 13418, 13267, 8654, 7636, 13455, 14983, 14941, 15214, 14808, 9194, 7398, 7727, 6624, 12306, 15590, 15555, 9961, 8191, 11102, 8014, 11729, 13691, 13799, 9113, 7610, 12335, 13336, 13022, 13617, 13412, 8712, 7407, 12566, 13344, 13183, 13332, 13473, 8480, 7481, 11883, 13297, 13458, 13485, 13305, 8717, 7643, 12592, 13412, 13233, 13187, 13191, 8646, 7616, 12592, 13447, 13338, 13636, 13582, 8862, 7637, 12578, 13867, 13125, 14207, 13696, 8780, 7646, 12032, 13548, 13418, 13507, 13183, 8973, 7505, 12621, 13500, 13316, 13674, 11631, 8832, 7535, 12621, 13622, 13160, 13279, 13104, 8409, 7216, 12648, 13571, 13353, 13037, 13321, 8806, 7626, 13006, 13766, 13356, 13614, 12606, 8477, 7174, 12352, 13572, 13116, 13224, 12886, 8616, 7368, 12211, 12771, 13491, 13340, 13405, 8600, 7606, 12312, 13526, 13009, 13236, 13053, 8531, 7384, 12386, 13274, 13120, 13164, 13090, 8695, 7504, 12376, 13428, 13284, 13317, 12851, 8304, 7439, 12325, 13313, 13210, 13520, 12872, 8329, 7135, 12480, 13416, 13059, 13387, 12934, 8554, 7293, 12613, 13238, 13405, 13521, 13062, 8246, 7573, 12614, 13912, 13853, 13732, 13342, 8529, 7441, 7948, 13181, 14397, 13783, 13602, 8864, 7651, 12590, 13459, 13597, 13438, 13159, 8708, 7727, 12450, 13789, 13609, 13796, 12394, 8603, 7779, 12732, 13756, 13638, 13452, 13403, 8857, 7651, 12794, 13983, 13728, 13547, 13411, 8991, 7840, 12898, 14350, 14189, 14182, 9449, 8061, 7725, 13340, 14771, 14098, 13952, 13697, 9084, 7885, 12881, 14221, 14016, 13987, 13542, 8978, 7999, 13053, 14241, 13994, 13622, 13417, 8898, 7940, 13054, 14259, 13883, 13939, 13684, 9018, 7911, 13155, 13981, 13800, 13859, 15374, 9233, 7951, 13186, 14336, 13933, 14248, 13890, 9180, 7848, 13404, 14348, 14083, 14010, 13923, 8997, 8008, 13051, 14260, 14213, 14718, 14260, 9182, 8002, 8105, 13488, 14657, 14980, 14475, 9450, 8209, 13437, 14567, 14474, 13391, 14312, 9552, 8405, 13775, 14736, 14316, 14512, 14151, 9227, 8183, 13246, 14464, 14016, 14176, 13705, 9168, 7892, 12819, 13737, 13761, 13742, 13189, 8788, 7609, 12557, 13728, 13499, 13301, 13264, 8624, 7590, 11616, 13396, 13299, 13163, 12957, 8373, 7205, 12384, 13478, 13256, 13239, 12872, 8409, 7318, 12358, 13528, 12954, 12950, 11013, 8395, 7807, 12887, 13244, 13041, 13153, 13203, 8538, 7305, 12333, 13323, 12852, 12541, 12824, 8377, 7225, 12251, 13202, 12874, 13436, 13189, 8449, 7301, 13493, 13929, 12242, 7126, 9247, 7803, 7315, 13029, 14138, 13317, 13250, 12734, 8422, 7282, 12322, 13112, 13113, 12851, 12903, 8436, 7380, 12377, 13900, 13814, 14324, 14007, 8665, 7635, 13831, 13374, 9235, 6471, 10890, 8728, 7677, 13951, 15645, 12906, 8145, 10995, 8338, 7283, 12125, 13222, 13119, 13019, 12647, 8233, 7122, 12178, 12597, 13013, 12800, 12542, 8175, 7151, 11353, 12935, 12822, 13125, 12995, 8357, 7261, 12156, 13107, 12703, 12729, 12527, 8201, 7255, 12525, 13330, 12894, 12817, 12517, 8451, 7462, 12484, 13612, 13219, 13635, 11832, 8550, 7434, 11731, 13151, 13324, 13171, 12995, 8628, 7286, 12363, 13110, 13084, 13134, 12732, 8396, 7342, 12276, 13265, 12903, 13176, 13081, 8556, 7314, 12400, 13568, 12999, 13134, 12087, 8396, 7130, 12264, 13542, 12987, 12706, 12927, 8286, 7168, 12056, 13309, 13027, 12785, 12692, 8381, 7348, 12330, 13136, 12247, 13233, 13078, 8389, 7238, 12200, 13589, 13177, 13278, 12007, 7906, 6864, 11617, 13415, 12804, 13095, 12481, 8364, 7309, 12252, 13273, 12958, 12872, 12231, 8191, 7198, 12199, 13243, 12701, 12413, 12930, 8169, 7220, 12126, 13358, 12686, 13088, 12738, 8180, 7339, 12410, 13415, 12920, 13033, 12874, 8327, 7256, 12467, 13543, 13694, 13569, 13314, 8618, 7481, 8058, 13239, 14350, 14057, 13290, 8602, 7480, 12541, 13408, 13080, 13036, 12648, 8428, 7221, 12472, 13368, 13248, 13079, 12780, 8376, 7380, 12465, 13542, 13440, 13611, 12846, 8603, 7559, 12396, 13700, 13268, 13362, 12981, 8474, 7471, 12776, 14061, 14311, 13931, 10630, 7978, 7333, 12415, 14208, 14252, 13566, 13276, 8769, 7627, 12570, 14086, 13939, 14012, 13258, 8626, 7536, 12612, 13974, 13657, 13880, 13132, 8887, 7716, 12684, 14163, 13619, 13537, 13307, 8684, 7492, 12642, 13937, 13510, 13377, 13122, 8830, 7683, 12759, 14021, 13764, 13391, 13398, 8566, 7750, 13104, 14226, 13634, 13994, 13291, 8952, 7650, 12664, 13928, 13770, 13861, 13530, 8805, 7702, 12758, 14107, 13659, 13900, 13622, 8959, 7587, 7947, 13555, 16081, 14887, 13032, 9264, 7871, 13393, 14558, 14130, 14095, 13951, 9032, 8014, 13415, 14318, 13973, 14048, 13449, 9013, 7817, 12723, 13829, 13465, 13628, 13264, 8548, 7443, 12559, 13674, 13078, 13174, 12706, 8577, 7268, 12105, 12941, 12882, 13115, 12605, 8155, 7356, 12056, 13142, 12924, 12935, 12621, 8353, 7120, 12238, 13230, 13043, 12683, 11978, 7658, 7519, 12212, 13205, 12743, 12805, 12314, 8044, 7260, 11874, 13287, 12889, 12751, 11739, 8281, 7232, 11940, 12950, 12866, 12822, 13002, 8335, 7230, 13125, 13907, 11986, 6864, 8750, 7604, 7169, 12542, 13900, 13267, 12952, 12131, 7855, 7103, 11732, 12823, 12497, 12299, 11834, 8082, 7027, 12254, 13347, 12961, 13425, 13478, 8436, 7225, 13512, 14102, 11819, 8441, 6160, 7172, 7480, 13354, 14600, 13829, 11667, 7871, 6990, 6988, 11844, 12995, 12520, 12541, 12183, 7809, 6963, 11892, 12921, 12307, 12543, 12278, 8032, 7131, 11220, 12510, 12514, 12762, 12364, 7996, 7014, 11623, 12821, 12441, 12342, 11838, 8035, 6832, 11445, 12831, 12453, 12369, 12362, 7948, 6893, 11912, 12747, 12535, 12389, 12281, 7947, 7167, 11156, 12363, 12734, 12764, 12401, 8201, 7211, 11996, 12628, 12438, 12449, 12046, 7832, 6895, 11984, 12868, 12525, 12549, 12272, 7832, 6887, 11514, 12839, 12740, 12481, 12347, 7893, 6808, 11548, 12700, 12781, 12054, 12119, 8005, 6992, 11657, 12752, 12473, 12591, 12088, 7995, 6922, 11745, 12868, 12619, 11994, 11666, 7854, 6721, 11571, 12888, 12228, 12312, 11988, 7844, 6907, 11964, 12549, 12708, 12614, 12136, 7878, 6978, 11845, 13010, 12594, 12485, 12095, 7964, 6965, 12034, 12619, 12500, 12374, 11852, 7911, 6922, 11995, 12770, 12801, 12410, 11914, 7877, 6823, 12286, 12845, 12637, 12246, 12337, 7963, 7022, 11953, 12854, 12411, 12559, 12302, 8093, 7094, 11893, 13421, 12972, 13115, 12519, 8159, 7111, 7436, 12591, 13812, 13150, 12640, 8260, 7374, 11924, 12874, 12419, 12824, 11965, 8011, 6963, 11929, 12805, 12654, 12836, 12331, 8085, 7164, 11922, 12838, 12878, 12671, 12552, 8294, 7234, 12157, 13042, 12767, 13181, 12486, 7932, 7279, 8444, 12772, 13940, 13421, 12843, 8485, 7382, 12408, 12697, 13031, 13118, 12888, 8370, 7352, 11865, 13291, 13158, 12939, 12542, 8396, 7392, 12262, 13264, 12877, 12952, 12320, 8361, 7370, 12092, 13136, 12911, 12929, 12556, 8516, 7361, 12923, 13514, 13084, 13365, 12092, 8445, 7352, 12409, 13286, 13102, 12964, 12910, 8404, 7461, 12195, 13226, 13328, 13008, 12966, 8553, 7496, 12246, 13527, 13409, 13420, 13047, 8414, 7586, 7815, 13033, 14239, 14135, 13641, 8775, 7749, 12559, 13949, 13893, 13964, 13605, 8979, 7899, 12992, 13919, 13640, 13717, 13280, 8780, 7543, 12652, 13208, 13080, 12965, 13141, 8412, 7380, 12326, 13146, 12691, 12889, 12536, 8194, 8490, 12134, 12913, 12358, 12668, 12507, 8081, 7181, 11888, 12693, 12838, 12747, 12235, 8033, 7242, 12190, 13176, 12700, 12408, 11679, 7996, 6895, 12044, 13035, 12608, 12821, 12495, 8126, 7251, 12023, 12889, 12671, 12773, 12090, 8115, 7120, 12163, 13205, 12710, 13025, 12634, 8511, 7285, 13195, 13762, 11964, 7162, 8689, 7526, 7217, 12430, 13445, 13107, 12982, 12288, 7881, 7122, 11749, 12833, 12462, 12364, 12351, 8142, 7134, 11721, 12981, 12962, 12975, 12829, 8470, 7257, 13280, 14255, 13029, 11237, 7532, 6159, 6796, 12231, 13654, 13441, 13272, 9751, 7254, 6540, 11143, 12599, 11933, 12143, 12044, 7840, 6933, 11093, 13222, 11950, 11813, 12114, 7810, 7046, 10969, 12298, 12271, 12382, 12035, 7895, 7005, 11616, 12692, 12174, 12026, 11814, 7808, 6888, 11495, 12498, 11954, 11917, 11962, 8070, 7109, 11873, 12764, 11880, 12078, 12029, 8086, 6853, 12111, 12863, 12396, 12399, 12328, 7969, 7056, 10757, 12601, 12232, 12129, 11945, 7919, 6989, 11160, 12530, 12149, 12172, 11842, 7825, 6950, 11490, 12254, 12119, 11921, 11989, 7897, 6557, 11275, 12191, 11880, 12192, 11682, 7786, 7024, 11794, 12462, 12050, 12062, 11854, 7658, 6871, 11489, 12279, 12022, 12173, 11264, 8102, 7028, 11772, 12387, 11858, 12330, 11904, 7840, 6861, 11711, 12320, 11671, 12349, 11964, 7683, 6939, 11681, 12564, 12216, 12276, 11113, 7524, 6570, 11427, 12563, 12007, 12180, 11456, 7665, 6926, 11595, 12299, 11984, 12055, 11824, 7919, 6972, 11511, 12578, 12464, 12203, 11125, 7854, 7061, 11899, 12819, 12387, 12222, 12011, 7934, 7257, 11896, 12851, 12715, 12822, 12379, 8276, 7145, 7492, 12192, 13446, 13258, 12680, 8398, 7261, 11934, 12629, 12660, 12471, 12279, 8091, 7314, 11744, 12841, 12681, 12990, 12463, 8498, 7344, 12045, 13143, 13017, 12681, 12504, 8351, 7140, 12344, 13234, 13002, 13194, 13392, 8510, 7489, 7541, 12751, 13950, 14200, 13363, 8845, 7635, 12617, 13392, 12900, 13278, 13097, 8534, 7637, 12414, 13156, 13219, 13262, 12777, 8671, 7351, 12126, 13270, 13023, 13152, 12501, 8338, 7450, 12546, 13491, 13164, 13031, 12848, 8567, 7605, 12505, 13360, 13160, 13092, 12978, 8448, 7470, 12756, 13576, 13267, 13150, 12900, 8572, 7493, 12286, 13422, 12986, 13046, 12910, 8700, 7633, 12281, 13561, 13390, 13723, 13224, 8588, 7399, 7770, 12892, 14234, 13544, 13537, 9115, 7501, 12770, 13205, 13590, 13583, 13322, 8792, 7724, 12818, 13648, 13138, 13157, 13062, 8496, 7609, 12719, 13455, 12815, 12813, 12419, 8506, 7419, 12310, 12924, 12748, 12744, 12195, 8206, 7160, 11839, 12865, 12581, 12201, 12065, 8043, 7145, 11803, 12819, 12605, 12536, 11936, 7899, 7104, 11773, 12672, 12085, 12390, 12049, 7812, 6870, 9828, 13632, 12657, 12310, 11965, 8045, 7236, 11574, 12300, 11990, 11978, 14392, 8087, 6877, 11590, 12676, 12433, 12461, 12424, 8042, 7218, 12929, 13415, 11775, 6894, 8618, 7512, 6879, 12410, 13204, 12584, 12716, 11853, 7895, 6957, 11622, 12477, 12119, 12024, 11565, 7658, 6832, 12087, 12592, 12632, 12506, 12211, 7941, 6876, 12708, 13640, 13227, 12215, 10017, 6688, 5728, 8039, 12475, 13478, 12985, 12434, 8035, 6629, 7821, 11324, 12075, 12171, 11920, 7783, 6887, 11248, 11939, 11860, 12391, 11380, 7901, 6899, 10707, 12175, 11981, 11997, 11914, 7948, 6816, 11464, 12356, 11692, 12003, 11648, 7827, 6733, 11253, 11919, 11916, 12135, 11826, 7833, 6733, 11229, 12310, 11946, 11862, 11981, 7895, 7012, 11023, 12708, 12250, 12376, 11985, 7818, 6905, 10837, 12125, 12436, 12045, 11802, 7842, 6707, 11475, 12208, 11042, 12519, 11789, 8010, 7021, 11391, 12076, 11972, 11985, 11817, 7691, 6497, 11571, 11779, 11797, 11783, 11608, 8066, 6918, 11578, 12338, 12056, 11925, 11816, 7893, 6915, 11474, 12245, 12035, 11864, 11834, 7860, 6909, 11647, 12273, 12307, 11986, 10955, 7384, 6545, 11237, 12179, 11635, 12050, 10910, 7699, 6951, 11536, 12240, 11850, 11583, 11608, 7757, 6843, 11297, 12191, 11765, 11871, 11226, 7590, 6713, 11381, 12470, 12095, 11804, 11488, 7634, 6868, 11424, 12158, 11749, 11825, 11683, 7751, 6909, 11763, 12565, 12199, 12048, 11771, 7914, 7202, 11919, 12601, 12649, 12414, 12350, 7921, 7015, 7532, 12307, 13194, 12686, 12623, 8040, 7075, 12011, 12424, 12410, 12305, 12145, 8293, 7131, 11700, 12892, 11999, 12626, 12278, 8213, 7316, 12028, 12767, 12674, 12713, 12370, 8141, 7246, 12091, 12950, 12545, 12994, 12462, 8323, 7550, 12837, 13752, 9296, 12618, 12804, 8952, 7541, 12333, 13527, 13024, 12787, 12109, 8657, 7559, 12380, 13318, 12865, 12798, 12503, 8611, 7531, 12553, 13390, 13045, 13056, 12785, 8493, 7550, 12061, 13187, 12976, 13006, 12743, 8786, 7693, 12671, 13316, 13204, 13179, 12898, 8602, 7630, 12126, 13788, 13391, 13361, 12913, 8678, 7678, 12580, 13239, 12973, 12889, 13114, 8653, 7629, 12533, 13674, 12968, 13323, 13287, 8967, 7817, 8030, 12941, 13991, 13709, 13841, 8987, 7930, 12853, 12543, 13653, 13396, 13529, 9094, 7867, 12960, 13628, 13490, 13524, 13174, 8899, 8007, 12748, 13533, 13100, 13159, 12661, 8695, 7607, 12537, 13293, 12900, 12785, 12521, 8333, 7367, 11711, 12692, 12597, 13705, 12349, 8153, 7408, 12347, 12888, 12752, 12604, 12367, 8365, 7279, 12260, 12923, 12610, 12769, 11989, 8127, 7362, 11957, 12011, 11012, 13042, 12692, 8224, 7436, 11885, 12690, 12536, 12386, 12374, 8172, 7219, 12036, 12364, 12728, 12812, 12555, 8503, 7390, 12916, 13427, 12083, 7267, 9171, 7651, 7191, 12403, 13296, 12614, 12503, 11740, 8248, 7204, 11833, 12566, 12313, 12084, 11733, 7995, 7003, 11529, 12234, 14667, 11893, 11872, 7913, 7146, 11979, 13305, 12849, 13109, 13186, 8396, 6845, 7614, 6325, 11362, 14126, 13888, 9030, 7545, 10634, 7537, 10887, 12616, 12431, 8332, 7271, 11463, 12040, 11598, 11887, 12082, 8140, 7092, 11401, 11953, 11678, 12113, 11846, 7708, 7001, 10777, 11835, 11917, 12016, 11638, 8047, 6916, 11520, 12168, 11752, 11690, 11995, 7881, 6876, 11237, 12114, 11617, 12025, 11959, 7776, 6735, 11460, 12243, 11648, 12422, 11914, 7902, 7044, 10863, 12137, 11941, 11899, 11778, 7866, 6914, 11358, 11982, 11695, 11601, 12075, 7836, 7098, 11667, 12172, 11800, 11918, 11787, 7946, 6610, 11591, 12102, 11937, 11831, 11811, 7906, 7134, 11825, 12070, 12024, 12096, 11949, 7876, 6956, 11619, 12199, 12204, 12006, 10986, 7863, 6735, 10440, 12389, 12081, 12019, 11858, 7789, 6796, 11423, 12074, 11759, 11765, 11494, 7643, 6898, 11318, 12168, 11765, 11665, 11511, 7718, 6722, 11410, 11956, 11537, 11620, 11442, 7651, 6852, 11259, 11825, 11948, 11787, 11805, 7714, 6609, 11316, 12275, 11867, 11628, 11813, 7727, 7060, 11289, 12345, 12184, 12145, 11945, 7764, 7049, 11968, 12685, 12366, 12523, 12265, 8156, 6880, 7351, 12462, 13062, 12798, 12082, 8320, 7015, 11718, 12315, 12343, 11935, 12203, 8184, 7306, 11852, 12304, 11924, 12096, 12046, 8235, 7267, 12166, 12754, 12217, 12417, 12175, 8301, 7435, 12033, 12819, 12526, 12733, 12585, 8325, 7319, 12558, 13437, 13247, 8883, 11318, 8420, 7454, 12493, 13408, 12915, 12806, 12535, 8485, 7536, 12506, 13083, 12912, 12824, 12528, 8389, 7564, 12544, 13316, 12804, 12860, 12249, 8328, 7492, 12096, 12880, 12625, 12971, 12561, 8539, 7600, 12434, 13055, 13109, 13207, 12756, 8777, 7797, 12391, 12975, 13049, 13101, 12702, 8747, 7612, 12426, 13051, 12903, 12873, 12805, 8801, 7638, 12293, 13131, 13129, 12873, 12814, 8759, 7620, 7896, 12910, 13680, 13337, 12876, 8800, 7737, 12653, 13440, 12074, 13460, 12669, 8795, 7865, 12842, 13542, 13242, 13333, 13040, 8863, 7817, 12715, 13173, 13042, 13044, 12774, 8704, 7618, 12115, 13195, 12614, 12880, 12493, 8593, 7471, 11877, 12765, 12393, 12804, 12192, 8223, 7172, 11736, 12582, 12227, 12220, 12169, 7995, 7121, 11687, 12462, 12223, 12320, 12210, 8077, 7139, 12199, 12519, 11752, 10975, 12653, 8407, 7368, 12164, 12785, 12113, 12566, 12026, 8092, 7258, 11418, 13669, 12130, 12206, 12339, 8305, 7348, 12154, 12413, 12503, 12499, 12459, 8239, 7362, 12658, 13211, 11782, 7175, 9077, 7778, 7449, 12512, 13352, 12947, 12437, 11861, 8068, 7226, 11824, 12597, 12413, 12485, 11484, 8163, 7305, 12316, 13252, 13132, 13320, 13248, 8836, 7535, 12140, 9194, 6620, 11375, 13588, 9203, 7896, 13096, 12525, 8018, 11171, 12317, 8199, 7174, 11400, 12310, 11829, 11827, 11989, 8292, 7298, 11714, 12598, 11785, 11822, 11932, 8143, 6924, 11024, 12177, 11936, 12162, 11840, 8190, 7424, 11561, 12031, 11381, 11651, 11843, 8206, 7265, 11825, 12519, 11914, 11807, 12246, 8129, 7060, 11886, 12311, 12154, 11384, 12494, 8391, 7259, 11144, 12331, 11932, 12142, 11988, 8049, 7092, 11621, 12291, 11932, 11856, 11671, 8186, 7267, 11793, 12065, 12129, 12069, 12035, 8140, 6789, 11620, 12084, 11819, 11623, 11841, 8080, 6973, 11936, 12231, 11953, 12266, 11987, 8109, 7147, 11542, 12342, 11809, 11823, 11730, 8153, 7215, 11511, 11710, 12003, 11984, 12319, 7926, 7127, 11508, 12187, 11875, 12026, 12018, 7980, 7181, 11912, 12274, 11858, 12070, 11132, 7641, 6877, 11664, 12528, 12014, 12178, 11811, 7949, 7184, 11681, 12121, 11591, 12412, 12011, 8015, 7171, 11788, 12487, 12127, 12166, 11949, 8100, 7145, 11671, 12057, 12234, 12387, 12065, 8051, 7200, 11925, 12854, 12545, 12634, 12631, 8456, 7393, 7657, 12490, 13411, 12753, 12257, 8462, 7474, 11885, 12246, 12320, 12256, 11965, 8164, 7359, 11886, 12513, 12090, 12442, 11651, 8199, 7375, 12068, 12555, 12524, 12217, 12532, 8299, 7414, 11939, 12704, 12499, 12621, 12236, 8441, 7563, 12243, 13575, 13183, 13043, 9278, 7778, 7568, 13038, 13500, 12577, 13146, 12699, 8650, 7626, 12394, 13207, 12881, 12817, 12439, 8720, 7567, 12497, 13239, 12692, 12929, 12662, 8740, 7822, 12532, 13252, 12752, 12673, 12782, 8814, 7679, 12511, 13415, 12900, 13152, 12887, 8958, 7832, 12589, 13413, 12817, 13031, 13048, 8885, 7783, 12582, 13198, 13167, 13153, 12891, 8912, 7630, 12346, 13278, 13113, 13418, 13099, 8899, 7884, 8043, 13071, 13863, 13556, 13457, 8806, 7770, 12743, 13629, 13230, 12104, 13415, 8903, 8109, 13018, 13661, 13341, 13451, 13129, 9202, 8002, 12713, 13149, 13033, 12908, 12478, 8797, 7639, 12318, 12959, 13082, 12841, 12539, 8425, 7484, 11893, 12860, 12363, 12130, 12155, 8262, 7283, 11241, 12658, 12405, 12506, 12087, 8305, 7279, 11744, 12565, 12282, 12162, 12119, 8256, 7576, 12007, 12831, 12102, 12192, 10837, 8367, 7736, 12309, 12748, 12461, 12489, 12422, 8268, 7479, 11898, 12794, 12244, 12103, 12234, 8305, 7219, 11784, 12822, 12100, 12541, 12638, 8647, 7497, 12791, 13349, 11747, 7351, 9049, 8035, 7228, 12584, 13083, 12427, 12384, 11964, 8280, 7196, 11773, 12419, 12203, 12042, 12001, 8596, 7291, 12013, 12748, 12684, 12816, 12714, 8465, 7382, 12799, 12604, 9308, 6749, 10386, 8656, 7724, 12811, 13634, 11990 ] } ], "layout": { "title": { "text": "Počet narození v letech 2000 - 2014 v USA" }, "xaxis": { "title": { "text": "Měsíc" } }, "yaxis": { "title": { "text": "Počet narození" } } } }, "text/html": [ "
" ], "text/vnd.plotly.v1+html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "trace = go.Box(\n", " x=birth.month,\n", " y=birth.births,\n", " marker=dict(\n", " color='#2bae64',\n", " line=dict(\n", " width=1.5,\n", " )\n", " )\n", ")\n", "data = [trace]\n", "layout = dict(title='Počet narození v letech 2000 - 2014 v USA',\n", " # type='category' zobrazí všechny hodnoty na ose x\n", " xaxis=dict(title='Měsíc'),\n", " yaxis=dict(title='Počet narození')\n", ")\n", "fig = dict(data=data, layout=layout)\n", "iplot(fig)" ] }, { "cell_type": "code", "execution_count": 15, "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", "
nameagegenderraceethnicitymonthdayyearstreetaddresscitystate...share_hispanicp_incomeh_incomecounty_incomecomp_incomecounty_bucketnat_bucketpovuratecollege
0A'donte Washington16MaleBlackFebruary232015Clearview LnMillbrookAL...5.62837551367.0547660.9379363.03.014.10.0976860.168510
1Aaron Rutledge27MaleWhiteApril22015300 block Iris Park DrPinevilleLA...0.51467827972.0409300.6834112.01.028.80.0657240.111402
2Aaron Siler26MaleWhiteMarch14201522nd Ave and 56th StKenoshaWI...16.82528645365.0549300.8258692.03.014.60.1662930.147312
3Aaron Valdez25MaleHispanic/LatinoMarch1120153000 Seminole AveSouth GateCA...98.81719448295.0559090.8638143.03.011.70.1248270.050133
4Adam Jovicic29MaleWhiteMarch192015364 Hiwood AveMunroe FallsOH...1.73395468785.0496691.3848685.04.01.90.0635500.403954
\n", "

5 rows × 34 columns

\n", "
" ], "text/plain": [ " name age gender raceethnicity month day year \\\n", "0 A'donte Washington 16 Male Black February 23 2015 \n", "1 Aaron Rutledge 27 Male White April 2 2015 \n", "2 Aaron Siler 26 Male White March 14 2015 \n", "3 Aaron Valdez 25 Male Hispanic/Latino March 11 2015 \n", "4 Adam Jovicic 29 Male White March 19 2015 \n", "\n", " streetaddress city state ... share_hispanic p_income \\\n", "0 Clearview Ln Millbrook AL ... 5.6 28375 \n", "1 300 block Iris Park Dr Pineville LA ... 0.5 14678 \n", "2 22nd Ave and 56th St Kenosha WI ... 16.8 25286 \n", "3 3000 Seminole Ave South Gate CA ... 98.8 17194 \n", "4 364 Hiwood Ave Munroe Falls OH ... 1.7 33954 \n", "\n", " h_income county_income comp_income county_bucket nat_bucket pov \\\n", "0 51367.0 54766 0.937936 3.0 3.0 14.1 \n", "1 27972.0 40930 0.683411 2.0 1.0 28.8 \n", "2 45365.0 54930 0.825869 2.0 3.0 14.6 \n", "3 48295.0 55909 0.863814 3.0 3.0 11.7 \n", "4 68785.0 49669 1.384868 5.0 4.0 1.9 \n", "\n", " urate college \n", "0 0.097686 0.168510 \n", "1 0.065724 0.111402 \n", "2 0.166293 0.147312 \n", "3 0.124827 0.050133 \n", "4 0.063550 0.403954 \n", "\n", "[5 rows x 34 columns]" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "police_killings.head()" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "linkText": "Export to plot.ly", "plotlyServerURL": "https://plot.ly", "showLink": false }, "data": [ { "type": "box", "uid": "7c11e41d-6ed9-489e-82f6-8a04b071be15", "x": [ "Black", "White", "White", "Hispanic/Latino", "White", "White", "Hispanic/Latino", "Hispanic/Latino", "White", "White", "White", "White", "Hispanic/Latino", "White", "White", "Hispanic/Latino", "Black", "Hispanic/Latino", "White", "Black", "Hispanic/Latino", "Black", "Hispanic/Latino", "White", "White", "White", "White", "White", "Black", "Hispanic/Latino", "Hispanic/Latino", "Black", "Black", "Black", "Hispanic/Latino", "Black", "Black", "White", "Hispanic/Latino", "Hispanic/Latino", "Black", "Black", "Hispanic/Latino", "White", "White", "Hispanic/Latino", "Hispanic/Latino", "Black", "White", "White", "White", "Black", "White", "Black", "White", "White", "Black", "White", "Unknown", "White", "Black", "White", "White", "Asian/Pacific Islander", "Black", "Black", "Asian/Pacific Islander", "Hispanic/Latino", "White", "White", "Black", "Black", "Hispanic/Latino", "White", "Black", "White", "White", "Black", "White", "White", "White", "White", "White", "White", "White", "Black", "White", "Black", "Black", "Black", "White", "Hispanic/Latino", "White", "Hispanic/Latino", "White", "White", "Hispanic/Latino", "Black", "Black", "Black", "Black", "White", "Black", "White", "Hispanic/Latino", "White", "Hispanic/Latino", "Hispanic/Latino", "White", "White", "White", "White", "White", "White", "White", "White", "White", "White", "White", "White", "Black", "Black", "Hispanic/Latino", "White", "Black", "White", "Black", "Black", "White", "Black", "Black", "Black", "Black", "Black", "Black", "Black", "White", "White", "Black", "Black", "White", "White", "Black", "Unknown", "Hispanic/Latino", "Black", "Hispanic/Latino", "Black", "Hispanic/Latino", "White", "Black", "White", "White", "Hispanic/Latino", "White", "Hispanic/Latino", "Hispanic/Latino", "White", "White", "Black", "Black", "Unknown", "White", "White", "White", "Black", "White", "Black", "White", "White", "White", "White", "White", "White", "White", "White", "Black", "White", "White", "White", "White", "White", "Black", "Hispanic/Latino", "Black", "White", "White", "Asian/Pacific Islander", "Asian/Pacific Islander", "Black", "Black", "Hispanic/Latino", "Hispanic/Latino", "White", "Black", "Black", "White", "White", "White", "White", "White", "White", "White", "Hispanic/Latino", "White", "Unknown", "Black", "Black", "White", "Black", "White", "Black", "White", "Black", "White", "White", "Black", "White", "Black", "White", "Black", "Black", "White", "White", "White", "White", "White", "Black", "Black", "Black", "Black", "White", "White", "Hispanic/Latino", "Unknown", "White", "Unknown", "Black", "Hispanic/Latino", "White", "White", "White", "White", "White", "White", "Hispanic/Latino", "White", "Hispanic/Latino", "White", "White", "White", "White", "White", "Black", "White", "Hispanic/Latino", "Hispanic/Latino", "Hispanic/Latino", "White", "White", "White", "White", "Unknown", "White", "White", "White", "Hispanic/Latino", "Hispanic/Latino", "White", "Native American", "White", "White", "Black", "White", "Black", "Black", "White", "Black", "White", "Black", "White", "Hispanic/Latino", "Black", "White", "White", "White", "Black", "White", "White", "White", "White", "White", "Native American", "Black", "Black", "Black", "White", "White", "Black", "White", "Black", "White", "Asian/Pacific Islander", "Hispanic/Latino", "Hispanic/Latino", "Black", "Black", "Black", "Black", "White", "White", "White", "White", "Black", "Black", "Asian/Pacific Islander", "Black", "White", "White", "White", "White", "White", "Black", "White", "White", "White", "White", "White", "White", "White", "Unknown", "White", "White", "White", "Hispanic/Latino", "White", "Hispanic/Latino", "White", "Black", "White", "Asian/Pacific Islander", "Black", "Black", "White", "White", "White", "Black", "White", "Black", "Native American", "White", "Black", "Black", "Black", "Hispanic/Latino", "Hispanic/Latino", "White", "Black", "White", "White", "Hispanic/Latino", "White", "White", "Hispanic/Latino", "Black", "Black", "White", "White", "White", "White", "Black", "White", "White", "Hispanic/Latino", "Black", "Unknown", "White", "White", "Black", "Black", "White", "White", "White", "White", "White", "White", "White", "White", "Black", "Hispanic/Latino", "Hispanic/Latino", "Hispanic/Latino", "White", "Black", "Hispanic/Latino", "Black", "Black", "White", "Hispanic/Latino", "White", "White", "Hispanic/Latino", "Hispanic/Latino", "Hispanic/Latino", "Black", "Hispanic/Latino", "White", "White", "Unknown", "White", "Hispanic/Latino", "White", "Black", "White", "White", "Asian/Pacific Islander", "White", "Asian/Pacific Islander", "Black", "White", "White", "White", "White", "White", "White", "Black", "Black", "Black", "Black", "Black", "Black", "Black", "Black", "Black", "White", "Asian/Pacific Islander", "Black", "White", "Unknown", "White", "White", "Black", "White", "Black", "White", "White", "White", "White", "Black", "White", "Unknown", "Unknown", "White", "Hispanic/Latino", "Hispanic/Latino", "White", "Black", "Black", "White", "Hispanic/Latino", "White", "Unknown", "Black", "Native American", "White", "Black", "Unknown" ], "y": [ "16", "27", "26", "25", "29", "29", "22", "35", "44", "31", "76", "40", "Unknown", "31", "23", "39", "25", "54", "24", "57", "21", "42", "21", "36", "26", "49", "54", "26", "48", "33", "21", "41", "48", "36", "41", "29", "27", "45", "32", "35", "36", "35", "40", "18", "34", "39", "21", "62", "43", "44", "29", "35", "50", "18", "25", "31", "29", "49", "23", "45", "26", "35", "34", "46", "29", "39", "28", "51", "67", "53", "25", "30", "24", "35", "43", "24", "29", "38", "31", "36", "23", "38", "53", "24", "26", "28", "34", "28", "40", "51", "44", "25", "56", "37", "58", "39", "37", "35", "26", "47", "31", "60", "32", "45", "42", "17", "22", "33", "18", "39", "59", "33", "58", "58", "47", "41", "64", "45", "53", "24", "48", "29", "40", "34", "21", "26", "45", "25", "17", "24", "42", "29", "42", "30", "29", "39", "63", "49", "41", "27", "30", "60", "77", "19", "37", "54", "29", "30", "24", "21", "44", "40", "32", "22", "43", "52", "27", "34", "20", "25", "24", "20", "46", "42", "43", "41", "59", "25", "42", "64", "22", "24", "63", "56", "60", "54", "37", "22", "39", "45", "57", "42", "41", "19", "26", "34", "69", "64", "35", "40", "19", "27", "37", "17", "39", "74", "42", "47", "43", "46", "44", "31", "47", "41", "43", "40", "32", "31", "20", "20", "33", "22", "41", "41", "32", "16", "29", "42", "29", "47", "53", "18", "47", "34", "36", "63", "36", "27", "28", "33", "32", "42", "31", "17", "28", "24", "71", "51", "28", "53", "54", "45", "33", "48", "34", "23", "35", "33", "32", "52", "30", "23", "35", "42", "37", "56", "36", "27", "30", "31", "46", "51", "72", "28", "63", "28", "33", "24", "27", "24", "28", "28", "17", "46", "52", "39", "49", "30", "51", "16", "18", "22", "40", "61", "52", "51", "36", "36", "59", "17", "18", "41", "33", "25", "23", "47", "58", "47", "34", "28", "37", "87", "39", "27", "35", "36", "24", "26", "34", "51", "49", "41", "54", "36", "26", "35", "22", "27", "42", "32", "32", "25", "26", "53", "26", "40", "55", "29", "31", "19", "57", "40", "35", "35", "39", "37", "36", "62", "43", "32", "34", "37", "37", "33", "35", "40", "21", "30", "23", "26", "39", "33", "34", "37", "26", "24", "25", "31", "49", "59", "50", "37", "28", "26", "23", "32", "24", "42", "34", "68", "31", "83", "35", "29", "50", "56", "43", "38", "63", "27", "36", "55", "36", "68", "61", "46", "47", "26", "37", "22", "18", "39", "49", "23", "47", "32", "45", "51", "31", "54", "31", "23", "29", "28", "31", "24", "27", "57", "39", "38", "34", "39", "20", "35", "36", "38", "33", "57", "38", "72", "37", "47", "43", "37", "75", "21", "20", "29", "37", "41", "22", "23", "64", "34", "49", "32", "25", "39", "53", "27", "36", "20", "39", "19", "34", "36", "34", "31", "45", "34", "Unknown", "Unknown", "Unknown", "31", "28", "57", "29", "50", "40", "35", "53", "59", "18", "28", "52", "38", "48" ] } ], "layout": { "title": { "text": "Věk osob zabitých policisty u různých etnických skupin" }, "xaxis": { "ticktext": [ "Černoši", "Běloši", "Hispánci", "Neznámý", "Asiati", "Indiáni" ], "tickvals": [ 0, 1, 2, 3, 4, 5 ], "title": { "text": "Etnický původ" } }, "yaxis": { "title": { "text": "Věk" } } } }, "text/html": [ "
" ], "text/vnd.plotly.v1+html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "trace = go.Box(\n", " y=police_killings.age,\n", " x=police_killings.raceethnicity\n", ")\n", "data = [trace]\n", "layout = dict(title='Věk osob zabitých policisty u různých etnických skupin',\n", " xaxis=dict(title='Etnický původ', \n", " tickvals=[0, 1, 2, 3, 4, 5], \n", " # Pomocí tickvals a ticktext nastavíme svoje popísky na ose x\n", " ticktext=['Černoši', 'Běloši', 'Hispánci', 'Neznámý', 'Asiati', 'Indiáni']\n", " ),\n", " yaxis=dict(title='Věk')\n", ")\n", "fig = dict(data=data, layout=layout)\n", "iplot(fig)" ] }, { "cell_type": "code", "execution_count": 69, "metadata": {}, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "linkText": "Export to plot.ly", "plotlyServerURL": "https://plot.ly", "showLink": false }, "data": [ { "type": "box", "uid": "f512489c-f0ad-44a9-8dc5-a1aa26e44dbd", "x": [ "Black", "White", "White", "Hispanic/Latino", "White", "White", "Hispanic/Latino", "Hispanic/Latino", "White", "White", "White", "White", "Hispanic/Latino", "White", "White", "Hispanic/Latino", "Black", "Hispanic/Latino", "White", "Black", "Hispanic/Latino", "Black", "Hispanic/Latino", "White", "White", "White", "White", "White", "Black", "Hispanic/Latino", "Hispanic/Latino", "Black", "Black", "Black", "Hispanic/Latino", "Black", "Black", "White", "Hispanic/Latino", "Hispanic/Latino", "Black", "Black", "Hispanic/Latino", "White", "White", "Hispanic/Latino", "Hispanic/Latino", "Black", "White", "White", "White", "Black", "White", "Black", "White", "White", "Black", "White", "Unknown", "White", "Black", "White", "White", "Asian/Pacific Islander", "Black", "Black", "Asian/Pacific Islander", "Hispanic/Latino", "White", "White", "Black", "Black", "Hispanic/Latino", "White", "Black", "White", "White", "Black", "White", "White", "White", "White", "White", "White", "White", "Black", "White", "Black", "Black", "Black", "White", "Hispanic/Latino", "White", "Hispanic/Latino", "White", "White", "Hispanic/Latino", "Black", "Black", "Black", "Black", "White", "Black", "White", "Hispanic/Latino", "White", "Hispanic/Latino", "Hispanic/Latino", "White", "White", "White", "White", "White", "White", "White", "White", "White", "White", "White", "White", "Black", "Black", "Hispanic/Latino", "White", "Black", "White", "Black", "Black", "White", "Black", "Black", "Black", "Black", "Black", "Black", "Black", "White", "White", "Black", "Black", "White", "White", "Black", "Unknown", "Hispanic/Latino", "Black", "Hispanic/Latino", "Black", "Hispanic/Latino", "White", "Black", "White", "White", "Hispanic/Latino", "White", "Hispanic/Latino", "Hispanic/Latino", "White", "White", "Black", "Black", "Unknown", "White", "White", "White", "Black", "White", "Black", "White", "White", "White", "White", "White", "White", "White", "White", "Black", "White", "White", "White", "White", "White", "Black", "Hispanic/Latino", "Black", "White", "White", "Asian/Pacific Islander", "Asian/Pacific Islander", "Black", "Black", "Hispanic/Latino", "Hispanic/Latino", "White", "Black", "Black", "White", "White", "White", "White", "White", "White", "White", "Hispanic/Latino", "White", "Unknown", "Black", "Black", "White", "Black", "White", "Black", "White", "Black", "White", "White", "Black", "White", "Black", "White", "Black", "Black", "White", "White", "White", "White", "White", "Black", "Black", "Black", "Black", "White", "White", "Hispanic/Latino", "Unknown", "White", "Unknown", "Black", "Hispanic/Latino", "White", "White", "White", "White", "White", "White", "Hispanic/Latino", "White", "Hispanic/Latino", "White", "White", "White", "White", "White", "Black", "White", "Hispanic/Latino", "Hispanic/Latino", "Hispanic/Latino", "White", "White", "White", "White", "Unknown", "White", "White", "White", "Hispanic/Latino", "Hispanic/Latino", "White", "Native American", "White", "White", "Black", "White", "Black", "Black", "White", "Black", "White", "Black", "White", "Hispanic/Latino", "Black", "White", "White", "White", "Black", "White", "White", "White", "White", "White", "Native American", "Black", "Black", "Black", "White", "White", "Black", "White", "Black", "White", "Asian/Pacific Islander", "Hispanic/Latino", "Hispanic/Latino", "Black", "Black", "Black", "Black", "White", "White", "White", "White", "Black", "Black", "Asian/Pacific Islander", "Black", "White", "White", "White", "White", "White", "Black", "White", "White", "White", "White", "White", "White", "White", "Unknown", "White", "White", "White", "Hispanic/Latino", "White", "Hispanic/Latino", "White", "Black", "White", "Asian/Pacific Islander", "Black", "Black", "White", "White", "White", "Black", "White", "Black", "Native American", "White", "Black", "Black", "Black", "Hispanic/Latino", "Hispanic/Latino", "White", "Black", "White", "White", "Hispanic/Latino", "White", "White", "Hispanic/Latino", "Black", "Black", "White", "White", "White", "White", "Black", "White", "White", "Hispanic/Latino", "Black", "Unknown", "White", "White", "Black", "Black", "White", "White", "White", "White", "White", "White", "White", "White", "Black", "Hispanic/Latino", "Hispanic/Latino", "Hispanic/Latino", "White", "Black", "Hispanic/Latino", "Black", "Black", "White", "Hispanic/Latino", "White", "White", "Hispanic/Latino", "Hispanic/Latino", "Hispanic/Latino", "Black", "Hispanic/Latino", "White", "White", "Unknown", "White", "Hispanic/Latino", "White", "Black", "White", "White", "Asian/Pacific Islander", "White", "Asian/Pacific Islander", "Black", "White", "White", "White", "White", "White", "White", "Black", "Black", "Black", "Black", "Black", "Black", "Black", "Black", "Black", "White", "Asian/Pacific Islander", "Black", "White", "Unknown", "White", "White", "Black", "White", "Black", "White", "White", "White", "White", "Black", "White", "Unknown", "Unknown", "White", "Hispanic/Latino", "Hispanic/Latino", "White", "Black", "Black", "White", "Hispanic/Latino", "White", "Unknown", "Black", "Native American", "White", "Black", "Unknown" ], "y": [ "16", "27", "26", "25", "29", "29", "22", "35", "44", "31", "76", "40", "Unknown", "31", "23", "39", "25", "54", "24", "57", "21", "42", "21", "36", "26", "49", "54", "26", "48", "33", "21", "41", "48", "36", "41", "29", "27", "45", "32", "35", "36", "35", "40", "18", "34", "39", "21", "62", "43", "44", "29", "35", "50", "18", "25", "31", "29", "49", "23", "45", "26", "35", "34", "46", "29", "39", "28", "51", "67", "53", "25", "30", "24", "35", "43", "24", "29", "38", "31", "36", "23", "38", "53", "24", "26", "28", "34", "28", "40", "51", "44", "25", "56", "37", "58", "39", "37", "35", "26", "47", "31", "60", "32", "45", "42", "17", "22", "33", "18", "39", "59", "33", "58", "58", "47", "41", "64", "45", "53", "24", "48", "29", "40", "34", "21", "26", "45", "25", "17", "24", "42", "29", "42", "30", "29", "39", "63", "49", "41", "27", "30", "60", "77", "19", "37", "54", "29", "30", "24", "21", "44", "40", "32", "22", "43", "52", "27", "34", "20", "25", "24", "20", "46", "42", "43", "41", "59", "25", "42", "64", "22", "24", "63", "56", "60", "54", "37", "22", "39", "45", "57", "42", "41", "19", "26", "34", "69", "64", "35", "40", "19", "27", "37", "17", "39", "74", "42", "47", "43", "46", "44", "31", "47", "41", "43", "40", "32", "31", "20", "20", "33", "22", "41", "41", "32", "16", "29", "42", "29", "47", "53", "18", "47", "34", "36", "63", "36", "27", "28", "33", "32", "42", "31", "17", "28", "24", "71", "51", "28", "53", "54", "45", "33", "48", "34", "23", "35", "33", "32", "52", "30", "23", "35", "42", "37", "56", "36", "27", "30", "31", "46", "51", "72", "28", "63", "28", "33", "24", "27", "24", "28", "28", "17", "46", "52", "39", "49", "30", "51", "16", "18", "22", "40", "61", "52", "51", "36", "36", "59", "17", "18", "41", "33", "25", "23", "47", "58", "47", "34", "28", "37", "87", "39", "27", "35", "36", "24", "26", "34", "51", "49", "41", "54", "36", "26", "35", "22", "27", "42", "32", "32", "25", "26", "53", "26", "40", "55", "29", "31", "19", "57", "40", "35", "35", "39", "37", "36", "62", "43", "32", "34", "37", "37", "33", "35", "40", "21", "30", "23", "26", "39", "33", "34", "37", "26", "24", "25", "31", "49", "59", "50", "37", "28", "26", "23", "32", "24", "42", "34", "68", "31", "83", "35", "29", "50", "56", "43", "38", "63", "27", "36", "55", "36", "68", "61", "46", "47", "26", "37", "22", "18", "39", "49", "23", "47", "32", "45", "51", "31", "54", "31", "23", "29", "28", "31", "24", "27", "57", "39", "38", "34", "39", "20", "35", "36", "38", "33", "57", "38", "72", "37", "47", "43", "37", "75", "21", "20", "29", "37", "41", "22", "23", "64", "34", "49", "32", "25", "39", "53", "27", "36", "20", "39", "19", "34", "36", "34", "31", "45", "34", "Unknown", "Unknown", "Unknown", "31", "28", "57", "29", "50", "40", "35", "53", "59", "18", "28", "52", "38", "48" ] } ], "layout": { "title": { "text": "Věk osob zabitých policisty u různých etnických skupin" }, "xaxis": { "title": { "text": "Etnický původ" } }, "yaxis": { "title": { "text": "Věk" } } } }, "text/html": [ "
" ], "text/vnd.plotly.v1+html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "trace = go.Box(\n", " y=police_killings.age,\n", " x=police_killings.raceethnicity\n", ")\n", "data = [trace]\n", "layout = dict(title='Věk osob zabitých policisty u různých etnických skupin',\n", " xaxis=dict(title='Etnický původ'),\n", " yaxis=dict(title='Věk')\n", ")\n", "fig = dict(data=data, layout=layout)\n", "iplot(fig)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Cvičení\n", "\n", "Použijte data o nemovitostech z předešlého cvičení.\n", "\n", "Srovnejte\n", "- Průměrnou cenu nemovitosti dle jejích celkového stavu (`OverallCond`)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Vysvětlit částí celku" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Skládaný sloupcový graf" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "# Připravíme data\n", "total = police_killings.groupby('raceethnicity').count().gender\n", "male = (\n", " police_killings[police_killings.gender == 'Male'].groupby('raceethnicity').count().gender / total\n", ").round(2)\n", "female = (\n", " police_killings[police_killings.gender == 'Female'].groupby('raceethnicity').count().gender / total\n", " # fillna nahradi NaN za 0\n", ").fillna(0).round(2)" ] }, { "cell_type": "code", "execution_count": 81, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "raceethnicity\n", "Asian/Pacific Islander 10\n", "Black 135\n", "Hispanic/Latino 67\n", "Native American 4\n", "Unknown 15\n", "White 236\n", "Name: gender, dtype: int64" ] }, "execution_count": 81, "metadata": {}, "output_type": "execute_result" } ], "source": [ "police_killings.groupby('raceethnicity').count().gender" ] }, { "cell_type": "code", "execution_count": 82, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "raceethnicity\n", "Asian/Pacific Islander 9\n", "Black 128\n", "Hispanic/Latino 66\n", "Native American 4\n", "Unknown 13\n", "White 225\n", "Name: gender, dtype: int64" ] }, "execution_count": 82, "metadata": {}, "output_type": "execute_result" } ], "source": [ "police_killings[police_killings.gender == 'Male'].groupby('raceethnicity').count().gender" ] }, { "cell_type": "code", "execution_count": 85, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "raceethnicity\n", "Asian/Pacific Islander 0.90\n", "Black 0.95\n", "Hispanic/Latino 0.99\n", "Native American 1.00\n", "Unknown 0.87\n", "White 0.95\n", "Name: gender, dtype: float64" ] }, "execution_count": 85, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(\n", " police_killings[police_killings.gender == 'Male'].groupby('raceethnicity').count().gender / total\n", ").round(2)" ] }, { "cell_type": "code", "execution_count": 86, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "raceethnicity\n", "Asian/Pacific Islander 0.10\n", "Black 0.05\n", "Hispanic/Latino 0.01\n", "Native American 0.00\n", "Unknown 0.13\n", "White 0.05\n", "Name: gender, dtype: float64" ] }, "execution_count": 86, "metadata": {}, "output_type": "execute_result" } ], "source": [ "1-(\n", " police_killings[police_killings.gender == 'Male'].groupby('raceethnicity').count().gender / total\n", ").round(2)" ] }, { "cell_type": "code", "execution_count": 90, "metadata": {}, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "linkText": "Export to plot.ly", "plotlyServerURL": "https://plot.ly", "showLink": false }, "data": [ { "marker": { "color": "#486db5" }, "name": "Muži", "type": "bar", "uid": "e7b35da0-7525-4983-b502-4213d7042f9e", "x": [ "Asian/Pacific Islander", "Black", "Hispanic/Latino", "Native American", "Unknown", "White" ], "y": [ 0.9, 0.95, 0.99, 1, 0.87, 0.95 ] }, { "marker": { "color": "#d24049" }, "name": "Ženy", "type": "bar", "uid": "7fe6a0c0-224a-48b8-9d4d-4236faba3667", "x": [ "Asian/Pacific Islander", "Black", "Hispanic/Latino", "Native American", "Unknown", "White" ], "y": [ 0.1, 0.05, 0.01, 0, 0.13, 0.05 ] } ], "layout": { "barmode": "stack", "title": { "text": "Počet zabitých policisty mužů a žen u různých etnických skupin" }, "xaxis": { "ticktext": [ "Asiati", "Černoši", "Hispánci", "Indiáni", "Neznámý", "Běloši" ], "tickvals": [ 0, 1, 2, 3, 4, 5 ], "title": { "text": "Etnický původ" } }, "yaxis": { "title": { "text": "Podíl mužů a žen" } } } }, "text/html": [ "
" ], "text/vnd.plotly.v1+html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "trace1 = go.Bar(\n", " x=male.index,\n", " y=male,\n", " name='Muži',\n", " marker=dict(\n", " color='#486db5'\n", " )\n", ")\n", "trace2 = go.Bar(\n", " x=female.index,\n", " y=female,\n", " name='Ženy',\n", " marker=dict(\n", " color='#d24049'\n", " )\n", ")\n", "\n", "data = [trace1, trace2]\n", "layout = dict(title='Počet zabitých policisty mužů a žen u různých etnických skupin',\n", " xaxis=dict(title='Etnický původ', tickvals=[0, 1, 2, 3, 4, 5], \n", " ticktext=['Asiati', 'Černoši', 'Hispánci', 'Indiáni', 'Neznámý', 'Běloši']),\n", " yaxis=dict(title='Podíl mužů a žen'),\n", " barmode='stack'\n", ")\n", "\n", "fig = go.Figure(data=data, layout=layout)\n", "iplot(fig)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Koláčový graf\n", "\n", "[Tutoriál](https://plot.ly/python/pie-charts/)" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "gender\n", "Female 22\n", "Male 445\n", "Name: name, dtype: int64" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "police_killings.groupby('gender').count().name" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "linkText": "Export to plot.ly", "plotlyServerURL": "https://plot.ly", "showLink": false }, "data": [ { "labels": [ "Ženy", "Muži" ], "marker": { "colors": [ "#d24049", "#486db5" ] }, "type": "pie", "uid": "8c8547eb-1907-415d-af88-3c2128791429", "values": [ 22, 445 ] } ], "layout": { "title": { "text": "Počet zabitých policisty mužů a žen" } } }, "text/html": [ "
" ], "text/vnd.plotly.v1+html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "labels = ['Ženy', 'Muži']\n", "values = police_killings.groupby('gender').count().name\n", "colors = ['#d24049', '#486db5']\n", "# Použijeme go.Pie, kde specifikujeme popisky, hodnoty a barvy dilů\n", "trace = go.Pie(labels=labels, values=values, marker=dict(colors=colors))\n", "data = [trace]\n", "layout = dict(title='Počet zabitých policisty mužů a žen')\n", "fig = dict(data=data, layout=layout)\n", "iplot(fig)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Cvičení\n", "\n", "Použijte data o nemovitostech z předešlého cvičení.\n", "\n", "- Ukážte počet nemovitostí s různým sklonem pozemku (`LandSlope`)\n", "- Nebo ukažte podíl různých sklonů dle tvaru pozemku (`LotShape`)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Ukázat trend v čase" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Čarový graf\n", "\n", "[Tutoriál](https://plot.ly/python/line-charts/)" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "linkText": "Export to plot.ly", "plotlyServerURL": "https://plot.ly", "showLink": false }, "data": [ { "mode": "lines+markers", "type": "scatter", "uid": "5521b798-d827-480a-b1da-cc655cc838c7", "x": [ 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 ], "y": [ 4149598, 4110963, 4099313, 4163060, 4186863, 4211941, 4335154, 4380784, 4310737, 4190991, 4055975, 4006908, 4000868, 3973337, 4010532 ] } ], "layout": { "title": { "text": "Počet narození v letech 2000 - 2014 v USA" }, "xaxis": { "title": { "text": "Rok" } }, "yaxis": { "title": { "text": "Počet narození" } } } }, "text/html": [ "
" ], "text/vnd.plotly.v1+html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Pro čárový graf použijeme zase go.Scatter, ale parametr mode nastavíme na 'lines+markers'\n", "trace = go.Scatter(\n", " x=birth.groupby('year').sum().index,\n", " y=birth.groupby('year').sum().births,\n", " mode='lines+markers'\n", ")\n", "data = [trace]\n", "layout = dict(title='Počet narození v letech 2000 - 2014 v USA',\n", " xaxis=dict(title='Rok'),\n", " yaxis=dict(title='Počet narození')\n", ")\n", "fig = dict(data=data, layout=layout)\n", "iplot(fig)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Vykreslování do grafu ve smyčce" ] }, { "cell_type": "code", "execution_count": 91, "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", "
YeareastAVtseAVtsouthAVtswAVtwestAVtnorthAVtmdbAVtauAVteastRainseRainsouthRainswRainwestRainnorthRainmdbRainauRainSOIco2mloco2lawCO2sunspot
11900NaNNaNNaNNaNNaNNaNNaNNaN429.98603.39375.39738.28399.90360.29412.67368.73-5.550000NaN295.8296.269.5
21901NaNNaNNaNNaNNaNNaNNaNNaN500.12510.89314.01558.98323.07475.92364.65401.720.991667NaN296.1296.562.7
31902NaNNaNNaNNaNNaNNaNNaNNaN315.33420.77283.64541.85362.57344.86255.85317.180.458333NaN296.5296.965.0
41903NaNNaNNaNNaNNaNNaNNaNNaN694.09628.07420.83729.44377.11601.27524.88518.594.933333NaN296.8297.2624.4
51904NaNNaNNaNNaNNaNNaNNaNNaN564.86550.98388.11711.39417.96603.84448.40504.654.350000NaN297.2297.6642.0
\n", "
" ], "text/plain": [ " Year eastAVt seAVt southAVt swAVt westAVt northAVt mdbAVt auAVt \\\n", "1 1900 NaN NaN NaN NaN NaN NaN NaN NaN \n", "2 1901 NaN NaN NaN NaN NaN NaN NaN NaN \n", "3 1902 NaN NaN NaN NaN NaN NaN NaN NaN \n", "4 1903 NaN NaN NaN NaN NaN NaN NaN NaN \n", "5 1904 NaN NaN NaN NaN NaN NaN NaN NaN \n", "\n", " eastRain seRain southRain swRain westRain northRain mdbRain auRain \\\n", "1 429.98 603.39 375.39 738.28 399.90 360.29 412.67 368.73 \n", "2 500.12 510.89 314.01 558.98 323.07 475.92 364.65 401.72 \n", "3 315.33 420.77 283.64 541.85 362.57 344.86 255.85 317.18 \n", "4 694.09 628.07 420.83 729.44 377.11 601.27 524.88 518.59 \n", "5 564.86 550.98 388.11 711.39 417.96 603.84 448.40 504.65 \n", "\n", " SOI co2mlo co2law CO2 sunspot \n", "1 -5.550000 NaN 295.8 296.26 9.5 \n", "2 0.991667 NaN 296.1 296.56 2.7 \n", "3 0.458333 NaN 296.5 296.96 5.0 \n", "4 4.933333 NaN 296.8 297.26 24.4 \n", "5 4.350000 NaN 297.2 297.66 42.0 " ] }, "execution_count": 91, "metadata": {}, "output_type": "execute_result" } ], "source": [ "temp_data = pd.read_csv('https://raw.githubusercontent.com/vincentarelbundock/Rdatasets/master/csv/DAAG/bomregions.csv', index_col = 0)\n", "temp_data.head()" ] }, { "cell_type": "code", "execution_count": 93, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Index(['Year', 'eastAVt', 'seAVt', 'southAVt', 'swAVt', 'westAVt', 'northAVt',\n", " 'mdbAVt', 'auAVt', 'eastRain', 'seRain', 'southRain', 'swRain',\n", " 'westRain', 'northRain', 'mdbRain', 'auRain', 'SOI', 'co2mlo', 'co2law',\n", " 'CO2', 'sunspot'],\n", " dtype='object')" ] }, "execution_count": 93, "metadata": {}, "output_type": "execute_result" } ], "source": [ "temp_data.columns" ] }, { "cell_type": "code", "execution_count": 99, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['eastAVt',\n", " 'seAVt',\n", " 'southAVt',\n", " 'swAVt',\n", " 'westAVt',\n", " 'northAVt',\n", " 'mdbAVt',\n", " 'auAVt']" ] }, "execution_count": 99, "metadata": {}, "output_type": "execute_result" } ], "source": [ "[col for col in temp_data.columns if 'AVt' in col]" ] }, { "cell_type": "code", "execution_count": 98, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['eastAVt',\n", " 'seAVt',\n", " 'southAVt',\n", " 'swAVt',\n", " 'westAVt',\n", " 'northAVt',\n", " 'mdbAVt',\n", " 'auAVt']" ] }, "execution_count": 98, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cols = []\n", "for col in temp_data.columns:\n", " if 'AVt' in col:\n", " cols.append(col)\n", "cols" ] }, { "cell_type": "code", "execution_count": 92, "metadata": {}, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "linkText": "Export to plot.ly", "plotlyServerURL": "https://plot.ly", "showLink": false }, "data": [ { "mode": "lines", "name": "eastAVt", "type": "scatter", "uid": "5e809704-fbe1-41c8-837b-f71d6f5cc6a7", "x": [ 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 ], "y": [ null, null, null, null, null, null, null, null, null, null, 20.09, 19.755, 20.43, 19.77, 20.95, 20.96, 20.12, 19.455, 19.8, 20.735, 20.085, 20.41, 20.34, 20.405, 19.75, 19.8, 20.745, 20.055, 20.645, 19.895, 20.22, 20.295, 20.3, 20.135, 20.16, 20.27, 20.215, 20.31, 20.975, 20.125, 20.53, 19.845, 20.93, 19.975, 20.18, 20.335, 20.055, 20.18, 20.08, 19.56, 19.85, 19.995, 20.325, 20.065, 20.01, 20.175, 19.35, 20.43, 20.73, 20.535, 19.955, 20.36, 20.265, 20.16, 20.27, 20.595, 20.07, 20.5, 20.385, 20.665, 20.24, 20.24, 20.44, 21.215, 19.925, 20.555, 19.795, 20.41, 20.165, 20.83, 21.185, 20.78, 20.64, 20.865, 20.02, 20.535, 20.72, 20.845, 21.32, 20.44, 20.88, 20.905, 20.505, 21.03, 20.535, 20.79, 20.755, 20.83, 21.25, 20.76, 20.53, 20.88, 21.275, 21.295, 21.04, 21.605, 21.22, 21.24, 20.71 ] }, { "mode": "lines", "name": "seAVt", "type": "scatter", "uid": "88f247ae-572b-4ead-8d6c-108daa3bc741", "x": [ 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 ], "y": [ null, null, null, null, null, null, null, null, null, null, 14.565, 14.275, 14.43, 14.36, 15.465, 14.45, 14.03, 13.96, 14.44, 15.075, 14.28, 14.99, 14.57, 14.515, 13.615, 14.115, 14.49, 14.165, 14.675, 13.91, 14.875, 13.97, 14.15, 14.15, 14.665, 14.195, 14.255, 14.535, 14.88, 14.665, 14.625, 14.295, 14.775, 13.765, 14.19, 14.08, 13.955, 14.465, 13.88, 13.65, 14.5, 14.505, 14.015, 14.325, 14.3, 14.34, 13.91, 14.345, 14.23, 14.87, 14.24, 15.07, 14.495, 14.62, 14.04, 14.625, 14.175, 14.695, 14.69, 14.42, 14.14, 14.56, 14.81, 15.07, 14.615, 14.915, 14.36, 14.795, 14.565, 15.05, 15.24, 15.28, 15.125, 14.91, 14.21, 14.695, 14.295, 14.605, 15.525, 14.815, 15.21, 15.095, 14.28, 14.865, 14.765, 14.445, 14.35, 15.085, 14.935, 15.125, 15.255, 15.215, 15.23, 15.17, 15.055, 15.385, 15.19, 15.935, 15.12 ] }, { "mode": "lines", "name": "southAVt", "type": "scatter", "uid": "531afa7a-0d41-4ddf-8a19-7ceecae4f54a", "x": [ 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 ], "y": [ null, null, null, null, null, null, null, null, null, null, 18.2, 18.08, 18.55, 18.125, 19.19, 18.66, 17.945, 17.435, 18.32, 18.835, 18.065, 18.765, 18.355, 18.61, 17.73, 17.895, 18.375, 18.045, 18.495, 17.795, 18.71, 17.685, 18.215, 18.17, 18.415, 18.03, 18.355, 18.36, 18.79, 18.3, 18.69, 18.29, 18.395, 17.72, 18.3, 18.255, 17.92, 18.125, 18.02, 17.765, 18.26, 18.29, 17.79, 18.155, 18.1, 18.02, 17.56, 18.615, 18.355, 18.78, 17.855, 18.775, 18.455, 18.535, 18.06, 18.91, 17.985, 18.535, 18.14, 18.455, 18.19, 18.17, 18.805, 18.935, 18.11, 18.46, 18.11, 18.92, 18.405, 18.965, 19.27, 18.9, 18.915, 18.96, 18.135, 18.74, 18.415, 18.655, 19.13, 18.45, 18.91, 19.385, 18.21, 18.8, 18.91, 18.605, 18.88, 18.98, 19.08, 18.9, 18.775, 18.705, 19.27, 19.195, 19.08, 19.455, 19.295, 19.535, 18.95 ] }, { "mode": "lines", "name": "swAVt", "type": "scatter", "uid": "c1fde22f-0056-4833-b094-34cef32af476", "x": [ 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 ], "y": [ null, null, null, null, null, null, null, null, null, null, 15.735, 15.59, 16.165, 15.62, 16.18, 16.54, 15.585, 15.075, 16.335, 15.76, 16.105, 16.625, 15.34, 15.885, 15.475, 15.58, 15.79, 15.84, 15.83, 15.32, 16.565, 15.73, 15.97, 16.34, 16.135, 15.575, 16.22, 16.085, 15.93, 15.915, 16.225, 16.205, 15.77, 15.415, 16.015, 16.395, 15.76, 15.805, 16.31, 16.495, 16.21, 15.81, 15.6, 15.89, 15.985, 15.6, 15.7, 16.485, 16.415, 16.56, 15.255, 16.675, 16.69, 16.75, 15.645, 16.325, 15.89, 16.54, 15.15, 16.22, 16.295, 15.47, 16.985, 15.93, 16.125, 16.11, 16.61, 16.64, 16.885, 16.295, 16.245, 15.965, 16.325, 17.035, 16.07, 16.7, 15.75, 16.46, 16.775, 16.4, 16.035, 16.815, 16.34, 16.025, 17.015, 16.635, 16.8, 16.875, 16.74, 17.045, 16.785, 16.285, 16.655, 16.93, 16.655, 16.225, 16.72, 16.74, 16.49 ] }, { "mode": "lines", "name": "westAVt", "type": "scatter", "uid": "fe41b8e8-23f7-4fd3-9743-248842d36238", "x": [ 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 ], "y": [ null, null, null, null, null, null, null, null, null, null, 22.275, 22.155, 22.42, 21.785, 22.55, 22.36, 22.045, 21.225, 22.155, 22.255, 21.89, 22.385, 21.87, 22.055, 22.165, 21.565, 21.98, 21.955, 22.48, 21.67, 22.495, 21.515, 22.01, 22.075, 22.045, 21.795, 22.725, 22.16, 22.575, 21.87, 22.47999999, 22.36, 21.725, 21.65, 22.195, 22.26, 21.74, 22.025, 22.02, 21.765, 22.195, 22.205, 21.95, 22.1, 22.25, 21.88, 21.8, 22.635, 22.515, 22.9, 21.575, 22.61, 22.47, 22.255, 22.14, 22.715, 21.76, 22.1, 21.56, 22.33, 22.58, 22.085, 22.97, 22.725, 21.835, 22.135, 22.175, 22.95, 22.445, 22.78, 23.05, 22.59, 22.4, 22.815, 22.235, 22.915, 22.495, 22.6, 23.045, 22.535, 22.775, 23.39, 22.545, 22.47, 23.04, 22.44, 23.26, 22.545, 23.31, 22.345, 21.82, 21.965, 22.96, 22.91, 22.665, 23.305, 22.69, 23.04, 22.865 ] }, { "mode": "lines", "name": "northAVt", "type": "scatter", "uid": "373eabe1-6b81-454a-ac45-4e66f96b17f1", "x": [ 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 ], "y": [ null, null, null, null, null, null, null, null, null, null, 24.37, 24.22, 24.55, 23.685, 24.67, 25.02, 24.41, 23.575, 23.945, 24.425, 24.17, 24.195, 24.12, 24.15, 24.35, 23.855, 24.59, 24.26, 25.2, 24, 24.26, 24.455, 24.3, 24.23, 24.345, 24.52, 24.815, 24.42, 25.02, 23.905, 24.43, 24.125, 24.99, 24.375, 24.24, 24.485, 23.995, 24.525, 24.345, 23.61, 23.96, 24.375, 24.75, 24.345, 24.48, 24.68, 23.885, 24.75, 25.175, 24.99, 24.155, 24.665, 24.595, 24.445, 24.75, 24.87, 24.11, 24.27, 24.24, 24.675, 24.87, 24.67, 24.85, 25.4, 23.685, 24.415, 23.78, 24.45, 24.275, 25.03, 25.5, 24.91, 24.345, 24.95, 24.37, 25.06, 25.29, 25.045, 25.625, 24.8, 25.355, 25.315, 25.315, 25.1, 24.895, 25.035, 25.57, 24.735, 25.805, 24.77, 24.09, 24.36, 25.245, 25.32, 25.08, 25.94, 24.975, 25.145, 25.145 ] }, { "mode": "lines", "name": "mdbAVt", "type": "scatter", "uid": "f31bfe51-143b-4238-8e11-2f2b27b1dbd2", "x": [ 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 ], "y": [ null, null, null, null, null, null, null, null, null, null, 17.365, 17.005, 17.53, 17.27, 18.62, 17.88, 17.095, 16.68, 17.215, 18.295, 17.225, 17.83, 17.695, 17.775, 16.625, 17.02, 17.71, 17.125, 17.75, 17.065, 17.735, 17.04, 17.36, 17.275, 17.33, 17.2, 17.27, 17.515, 18.25, 17.59, 17.92, 17.22, 17.915, 16.815, 17.49, 17.42, 17.245, 17.19, 16.985, 16.715, 17.315, 17.27, 17.155, 17.26, 17.2, 17.235, 16.36, 17.585, 17.64, 17.725, 17.11, 17.72, 17.26, 17.43, 17.1, 17.935, 17.105, 17.79, 17.59, 17.585, 17.07, 17.24, 17.74, 18.31, 17.225, 17.845, 16.96, 17.835, 17.28, 18.2, 18.47, 18.185, 18.125, 17.905, 17.02, 17.61, 17.485, 17.785, 18.305, 17.58, 18.09, 18.275, 17.275, 18.035, 17.58, 17.65, 17.53, 18.12, 18.085, 17.88, 17.92, 18.115, 18.485, 18.305, 18.18, 18.695, 18.545, 18.785, 17.855 ] }, { "line": { "color": "rgba(255, 250, 0, .9)", "width": 5 }, "mode": "lines", "name": "auAVt", "type": "scatter", "uid": "0bce1807-2c6b-4a81-b58b-32349b009824", "x": [ 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 ], "y": [ null, null, null, null, null, null, null, null, null, null, 21.455, 21.315, 21.71, 21.055, 22.07, 22.01, 21.35, 20.675, 21.285, 21.78, 21.285, 21.625, 21.39, 21.525, 21.22, 21.03, 21.65, 21.32, 22.03, 21.065, 21.635, 21.26, 21.42, 21.365, 21.545, 21.45, 21.755, 21.555, 22.075, 21.26, 21.715, 21.365, 21.875, 21.23, 21.43, 21.535, 21.12, 21.5, 21.35, 20.845, 21.265, 21.5, 21.465, 21.415, 21.47, 21.535, 20.895, 21.845, 21.955, 22.055, 21.175, 21.88, 21.695, 21.645, 21.585, 22.05, 21.215, 21.555, 21.355, 21.73, 21.71, 21.595, 21.99, 22.34, 21.05, 21.595, 21.095, 21.825, 21.5, 22.16, 22.55, 22.065, 21.77, 22.115, 21.42, 22.07, 22.035, 22.025, 22.56, 21.8, 22.31, 22.505, 21.955, 22.115, 22.065, 21.99, 22.4, 22.01, 22.625, 21.995, 21.575, 21.685, 22.42, 22.42, 22.24, 22.87, 22.28, 22.485, 22.215 ] } ], "layout": { "showlegend": true, "title": { "text": "Australian climate data" }, "xaxis": { "title": { "text": "Year" } } } }, "text/html": [ "
" ], "text/vnd.plotly.v1+html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "temperature_columns = [x for x in temp_data.columns if 'AVt' in x]\n", "data = []\n", "for region in temperature_columns:\n", " if region == 'auAVt':\n", " trace = go.Scatter(\n", " x = temp_data.Year,\n", " y = temp_data[region],\n", " mode = 'lines',\n", " name = region,\n", " line = dict(\n", " width = 5,\n", " color = 'rgba(255, 250, 0, .9)'\n", " )\n", " )\n", " else:\n", " trace = go.Scatter(\n", " x = temp_data.Year,\n", " y = temp_data[region],\n", " mode = 'lines',\n", " name = region\n", " )\n", " data.append(trace)\n", "\n", "\n", "layout = go.Layout(\n", " title = 'Australian climate data',\n", " showlegend = True,\n", " xaxis=dict(\n", " title=\"Year\"),\n", ")\n", "\n", "\n", "fig = dict(data=data, layout=layout)\n", "iplot(fig)" ] }, { "cell_type": "code", "execution_count": 100, "metadata": {}, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "linkText": "Export to plot.ly", "plotlyServerURL": "https://plot.ly", "showLink": false }, "data": [ { "mode": "lines", "name": "eastAVt", "type": "scatter", "uid": "ace2fad9-6cd7-4235-9936-95fbdf0356ac", "x": [ 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 ], "y": [ null, null, null, null, null, null, null, null, null, null, 20.09, 19.755, 20.43, 19.77, 20.95, 20.96, 20.12, 19.455, 19.8, 20.735, 20.085, 20.41, 20.34, 20.405, 19.75, 19.8, 20.745, 20.055, 20.645, 19.895, 20.22, 20.295, 20.3, 20.135, 20.16, 20.27, 20.215, 20.31, 20.975, 20.125, 20.53, 19.845, 20.93, 19.975, 20.18, 20.335, 20.055, 20.18, 20.08, 19.56, 19.85, 19.995, 20.325, 20.065, 20.01, 20.175, 19.35, 20.43, 20.73, 20.535, 19.955, 20.36, 20.265, 20.16, 20.27, 20.595, 20.07, 20.5, 20.385, 20.665, 20.24, 20.24, 20.44, 21.215, 19.925, 20.555, 19.795, 20.41, 20.165, 20.83, 21.185, 20.78, 20.64, 20.865, 20.02, 20.535, 20.72, 20.845, 21.32, 20.44, 20.88, 20.905, 20.505, 21.03, 20.535, 20.79, 20.755, 20.83, 21.25, 20.76, 20.53, 20.88, 21.275, 21.295, 21.04, 21.605, 21.22, 21.24, 20.71 ] }, { "mode": "lines", "name": "seAVt", "type": "scatter", "uid": "8e7ab14e-93b3-462b-b3ed-2c90c6d52bec", "x": [ 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 ], "y": [ null, null, null, null, null, null, null, null, null, null, 14.565, 14.275, 14.43, 14.36, 15.465, 14.45, 14.03, 13.96, 14.44, 15.075, 14.28, 14.99, 14.57, 14.515, 13.615, 14.115, 14.49, 14.165, 14.675, 13.91, 14.875, 13.97, 14.15, 14.15, 14.665, 14.195, 14.255, 14.535, 14.88, 14.665, 14.625, 14.295, 14.775, 13.765, 14.19, 14.08, 13.955, 14.465, 13.88, 13.65, 14.5, 14.505, 14.015, 14.325, 14.3, 14.34, 13.91, 14.345, 14.23, 14.87, 14.24, 15.07, 14.495, 14.62, 14.04, 14.625, 14.175, 14.695, 14.69, 14.42, 14.14, 14.56, 14.81, 15.07, 14.615, 14.915, 14.36, 14.795, 14.565, 15.05, 15.24, 15.28, 15.125, 14.91, 14.21, 14.695, 14.295, 14.605, 15.525, 14.815, 15.21, 15.095, 14.28, 14.865, 14.765, 14.445, 14.35, 15.085, 14.935, 15.125, 15.255, 15.215, 15.23, 15.17, 15.055, 15.385, 15.19, 15.935, 15.12 ] }, { "mode": "lines", "name": "southAVt", "type": "scatter", "uid": "7e9ac92d-0495-4b84-85dd-2a8aecb44fa0", "x": [ 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 ], "y": [ null, null, null, null, null, null, null, null, null, null, 18.2, 18.08, 18.55, 18.125, 19.19, 18.66, 17.945, 17.435, 18.32, 18.835, 18.065, 18.765, 18.355, 18.61, 17.73, 17.895, 18.375, 18.045, 18.495, 17.795, 18.71, 17.685, 18.215, 18.17, 18.415, 18.03, 18.355, 18.36, 18.79, 18.3, 18.69, 18.29, 18.395, 17.72, 18.3, 18.255, 17.92, 18.125, 18.02, 17.765, 18.26, 18.29, 17.79, 18.155, 18.1, 18.02, 17.56, 18.615, 18.355, 18.78, 17.855, 18.775, 18.455, 18.535, 18.06, 18.91, 17.985, 18.535, 18.14, 18.455, 18.19, 18.17, 18.805, 18.935, 18.11, 18.46, 18.11, 18.92, 18.405, 18.965, 19.27, 18.9, 18.915, 18.96, 18.135, 18.74, 18.415, 18.655, 19.13, 18.45, 18.91, 19.385, 18.21, 18.8, 18.91, 18.605, 18.88, 18.98, 19.08, 18.9, 18.775, 18.705, 19.27, 19.195, 19.08, 19.455, 19.295, 19.535, 18.95 ] }, { "mode": "lines", "name": "swAVt", "type": "scatter", "uid": "51f45f61-7e09-4e79-a655-66098e90934e", "x": [ 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 ], "y": [ null, null, null, null, null, null, null, null, null, null, 15.735, 15.59, 16.165, 15.62, 16.18, 16.54, 15.585, 15.075, 16.335, 15.76, 16.105, 16.625, 15.34, 15.885, 15.475, 15.58, 15.79, 15.84, 15.83, 15.32, 16.565, 15.73, 15.97, 16.34, 16.135, 15.575, 16.22, 16.085, 15.93, 15.915, 16.225, 16.205, 15.77, 15.415, 16.015, 16.395, 15.76, 15.805, 16.31, 16.495, 16.21, 15.81, 15.6, 15.89, 15.985, 15.6, 15.7, 16.485, 16.415, 16.56, 15.255, 16.675, 16.69, 16.75, 15.645, 16.325, 15.89, 16.54, 15.15, 16.22, 16.295, 15.47, 16.985, 15.93, 16.125, 16.11, 16.61, 16.64, 16.885, 16.295, 16.245, 15.965, 16.325, 17.035, 16.07, 16.7, 15.75, 16.46, 16.775, 16.4, 16.035, 16.815, 16.34, 16.025, 17.015, 16.635, 16.8, 16.875, 16.74, 17.045, 16.785, 16.285, 16.655, 16.93, 16.655, 16.225, 16.72, 16.74, 16.49 ] }, { "mode": "lines", "name": "westAVt", "type": "scatter", "uid": "9a1530f3-1478-4359-ac44-3a49d01c65db", "x": [ 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 ], "y": [ null, null, null, null, null, null, null, null, null, null, 22.275, 22.155, 22.42, 21.785, 22.55, 22.36, 22.045, 21.225, 22.155, 22.255, 21.89, 22.385, 21.87, 22.055, 22.165, 21.565, 21.98, 21.955, 22.48, 21.67, 22.495, 21.515, 22.01, 22.075, 22.045, 21.795, 22.725, 22.16, 22.575, 21.87, 22.47999999, 22.36, 21.725, 21.65, 22.195, 22.26, 21.74, 22.025, 22.02, 21.765, 22.195, 22.205, 21.95, 22.1, 22.25, 21.88, 21.8, 22.635, 22.515, 22.9, 21.575, 22.61, 22.47, 22.255, 22.14, 22.715, 21.76, 22.1, 21.56, 22.33, 22.58, 22.085, 22.97, 22.725, 21.835, 22.135, 22.175, 22.95, 22.445, 22.78, 23.05, 22.59, 22.4, 22.815, 22.235, 22.915, 22.495, 22.6, 23.045, 22.535, 22.775, 23.39, 22.545, 22.47, 23.04, 22.44, 23.26, 22.545, 23.31, 22.345, 21.82, 21.965, 22.96, 22.91, 22.665, 23.305, 22.69, 23.04, 22.865 ] }, { "mode": "lines", "name": "northAVt", "type": "scatter", "uid": "f9a45ad2-cabb-4f68-8d60-24f131398581", "x": [ 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 ], "y": [ null, null, null, null, null, null, null, null, null, null, 24.37, 24.22, 24.55, 23.685, 24.67, 25.02, 24.41, 23.575, 23.945, 24.425, 24.17, 24.195, 24.12, 24.15, 24.35, 23.855, 24.59, 24.26, 25.2, 24, 24.26, 24.455, 24.3, 24.23, 24.345, 24.52, 24.815, 24.42, 25.02, 23.905, 24.43, 24.125, 24.99, 24.375, 24.24, 24.485, 23.995, 24.525, 24.345, 23.61, 23.96, 24.375, 24.75, 24.345, 24.48, 24.68, 23.885, 24.75, 25.175, 24.99, 24.155, 24.665, 24.595, 24.445, 24.75, 24.87, 24.11, 24.27, 24.24, 24.675, 24.87, 24.67, 24.85, 25.4, 23.685, 24.415, 23.78, 24.45, 24.275, 25.03, 25.5, 24.91, 24.345, 24.95, 24.37, 25.06, 25.29, 25.045, 25.625, 24.8, 25.355, 25.315, 25.315, 25.1, 24.895, 25.035, 25.57, 24.735, 25.805, 24.77, 24.09, 24.36, 25.245, 25.32, 25.08, 25.94, 24.975, 25.145, 25.145 ] }, { "mode": "lines", "name": "mdbAVt", "type": "scatter", "uid": "67d077e7-161f-431c-ba3c-97719a9d54d6", "x": [ 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 ], "y": [ null, null, null, null, null, null, null, null, null, null, 17.365, 17.005, 17.53, 17.27, 18.62, 17.88, 17.095, 16.68, 17.215, 18.295, 17.225, 17.83, 17.695, 17.775, 16.625, 17.02, 17.71, 17.125, 17.75, 17.065, 17.735, 17.04, 17.36, 17.275, 17.33, 17.2, 17.27, 17.515, 18.25, 17.59, 17.92, 17.22, 17.915, 16.815, 17.49, 17.42, 17.245, 17.19, 16.985, 16.715, 17.315, 17.27, 17.155, 17.26, 17.2, 17.235, 16.36, 17.585, 17.64, 17.725, 17.11, 17.72, 17.26, 17.43, 17.1, 17.935, 17.105, 17.79, 17.59, 17.585, 17.07, 17.24, 17.74, 18.31, 17.225, 17.845, 16.96, 17.835, 17.28, 18.2, 18.47, 18.185, 18.125, 17.905, 17.02, 17.61, 17.485, 17.785, 18.305, 17.58, 18.09, 18.275, 17.275, 18.035, 17.58, 17.65, 17.53, 18.12, 18.085, 17.88, 17.92, 18.115, 18.485, 18.305, 18.18, 18.695, 18.545, 18.785, 17.855 ] }, { "mode": "lines", "name": "auAVt", "type": "scatter", "uid": "3e17ffcf-f581-4718-84f3-6062e0dbc0b8", "x": [ 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 ], "y": [ null, null, null, null, null, null, null, null, null, null, 21.455, 21.315, 21.71, 21.055, 22.07, 22.01, 21.35, 20.675, 21.285, 21.78, 21.285, 21.625, 21.39, 21.525, 21.22, 21.03, 21.65, 21.32, 22.03, 21.065, 21.635, 21.26, 21.42, 21.365, 21.545, 21.45, 21.755, 21.555, 22.075, 21.26, 21.715, 21.365, 21.875, 21.23, 21.43, 21.535, 21.12, 21.5, 21.35, 20.845, 21.265, 21.5, 21.465, 21.415, 21.47, 21.535, 20.895, 21.845, 21.955, 22.055, 21.175, 21.88, 21.695, 21.645, 21.585, 22.05, 21.215, 21.555, 21.355, 21.73, 21.71, 21.595, 21.99, 22.34, 21.05, 21.595, 21.095, 21.825, 21.5, 22.16, 22.55, 22.065, 21.77, 22.115, 21.42, 22.07, 22.035, 22.025, 22.56, 21.8, 22.31, 22.505, 21.955, 22.115, 22.065, 21.99, 22.4, 22.01, 22.625, 21.995, 21.575, 21.685, 22.42, 22.42, 22.24, 22.87, 22.28, 22.485, 22.215 ] } ], "layout": { "showlegend": true, "title": { "text": "Australian climate data" }, "xaxis": { "title": { "text": "Year" } } } }, "text/html": [ "
" ], "text/vnd.plotly.v1+html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "temperature_columns = [x for x in temp_data.columns if 'AVt' in x]\n", "data = []\n", "for region in temperature_columns:\n", " trace = go.Scatter(\n", " x = temp_data.Year,\n", " y = temp_data[region],\n", " mode = 'lines',\n", " name = region\n", " )\n", " data.append(trace)\n", "\n", "\n", "layout = go.Layout(\n", " title = 'Australian climate data',\n", " showlegend = True,\n", " xaxis=dict(\n", " title=\"Year\"),\n", ")\n", "\n", "\n", "fig = dict(data=data, layout=layout)\n", "iplot(fig)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Cvičení\n", "\n", "Budeme používat data o výskytu tuberkulózy ze [světové zdravotnické organizace](https://www.who.int/tb/country/data/download/en/).\n", "\n", "- Načtěte data [`tuberculosis.csv`](tuberculosis.csv), [popis dat](tuberculosis_description.csv).\n", "- Vyberte Českou Republiku (`Czechia`)\n", "- Zobrazte incidenci tuberkulózy v různých letech (`e_inc_num`)\n", "- Pokud zbyde čas, přidejte údaje ze Slovenská (`Slovakia`)." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Plošné grafy\n", "\n", "[Tutoriál](https://plot.ly/python/filled-area-plots/)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Mapy\n", "\n", "[Tutoriály](https://plot.ly/python/maps/)\n", "\n", "[Bublinová mapa](https://plot.ly/python/bubble-maps/)\n", "\n", "[Plošné mapa (choropleth map)](https://plot.ly/pandas/choropleth-maps/)\n", "[Barevná škála](https://plot.ly/python/colorscales/)" ] }, { "cell_type": "code", "execution_count": 22, "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", "
countrybeer_servingsspirit_servingswine_servingstotal_litres_of_pure_alcohol
0Afghanistan0000.0
1Albania89132544.9
2Algeria250140.7
3Andorra24513831212.4
4Angola21757455.9
\n", "
" ], "text/plain": [ " country beer_servings spirit_servings wine_servings \\\n", "0 Afghanistan 0 0 0 \n", "1 Albania 89 132 54 \n", "2 Algeria 25 0 14 \n", "3 Andorra 245 138 312 \n", "4 Angola 217 57 45 \n", "\n", " total_litres_of_pure_alcohol \n", "0 0.0 \n", "1 4.9 \n", "2 0.7 \n", "3 12.4 \n", "4 5.9 " ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "alcohol = pd.read_csv('drinks.csv')\n", "alcohol.head()" ] }, { "cell_type": "code", "execution_count": 23, "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", "
CountryNameCapitalNameCapitalLatitudeCapitalLongitudeCountryCodeContinentName
0SomalilandHargeisa9.55000044.050000NaNAfrica
1South Georgia and South Sandwich IslandsKing Edward Point-54.283333-36.500000GSAntarctica
2French Southern and Antarctic LandsPort-aux-Français-49.35000070.216667TFAntarctica
3PalestineJerusalem31.76666735.233333PSAsia
4Aland IslandsMariehamn60.11666719.900000AXEurope
\n", "
" ], "text/plain": [ " CountryName CapitalName \\\n", "0 Somaliland Hargeisa \n", "1 South Georgia and South Sandwich Islands King Edward Point \n", "2 French Southern and Antarctic Lands Port-aux-Français \n", "3 Palestine Jerusalem \n", "4 Aland Islands Mariehamn \n", "\n", " CapitalLatitude CapitalLongitude CountryCode ContinentName \n", "0 9.550000 44.050000 NaN Africa \n", "1 -54.283333 -36.500000 GS Antarctica \n", "2 -49.350000 70.216667 TF Antarctica \n", "3 31.766667 35.233333 PS Asia \n", "4 60.116667 19.900000 AX Europe " ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Načteme data obsahujícíc koordinaty hlavních měst\n", "# Zdroj: http://techslides.com/list-of-countries-and-capitals\n", "# Pozor, manualne odstranena čárka v řádku 22í a 240 u Washington, D.C.\n", "capitals = pd.read_csv('country-capitals.csv')\n", "capitals.head()" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [], "source": [ "# Přejmenujeme názvy sloupců\n", "capitals.rename(columns={\n", " 'CountryName' : 'country', 'CapitalName': 'capital', 'CapitalLatitude': 'capital_latitude', \n", " 'CapitalLongitude': 'capital_longitude', 'CountryCode': 'country_code', 'ContinentName': 'continent'\n", " }, inplace=True \n", ")" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array(['Antigua & Barbuda', 'Bosnia-Herzegovina', 'Brunei', 'Cabo Verde',\n", " 'Congo', 'DR Congo', 'Gambia', 'Micronesia', 'Russian Federation',\n", " 'St. Kitts & Nevis', 'St. Lucia', 'St. Vincent & the Grenadines',\n", " 'Sao Tome & Principe', 'Trinidad & Tobago', 'USA'], dtype=object)" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Zjistíme, které řádky z první tabulky se nám nespojily\n", "# Důvod - jiné názvy zemí\n", "result = pd.merge(alcohol, capitals, on='country', how='left', indicator=True)\n", "result.query('_merge != \"both\"').country.values" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [], "source": [ "# Vytvoříme slovník správných názvů\n", "rename_dict = {\n", " 'Russian Federation': 'Russia',\n", " 'USA': 'United States',\n", " 'Congo': 'Republic of Congo',\n", " 'DR Congo': 'Democratic Republic of the Congo',\n", " 'Bosnia-Herzegovina': 'Bosnia and Herzegovina',\n", " 'Antigua & Barbuda': 'Antigua and Barbuda',\n", " 'Brunei': 'Brunei Darussalam', \n", " 'Cabo Verde': 'Cape Verde',\n", " 'Gambia': 'The Gambia', \n", " 'Micronesia': 'Federated States of Micronesia', \n", " 'St. Kitts & Nevis': 'Saint Kitts and Nevis', \n", " 'St. Lucia': 'Saint Lucia',\n", " 'St. Vincent & the Grenadines': 'Saint Vincent and the Grenadines', \n", " 'Sao Tome & Principe': 'Sao Tome and Principe',\n", " 'Trinidad & Tobago': 'Trinidad and Tobago'\n", "}" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [], "source": [ "# Prejmenujeme hodnoty ve sloupci country pomocí vytvořeného slovníku\n", "alcohol.country.replace(rename_dict, inplace=True)" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([], dtype=object)" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Zkontrolujeme, že se všechny řádky spojily\n", "result = pd.merge(alcohol, capitals, on='country', how='left', indicator=True)\n", "result.query('_merge != \"both\"').country.values" ] }, { "cell_type": "code", "execution_count": 29, "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
countrybeer_servingsspirit_servingswine_servingstotal_litres_of_pure_alcoholcapitalcapital_latitudecapital_longitudecountry_codecontinent
0Afghanistan0000.0Kabul34.51666769.183333AFAsia
1Albania89132544.9Tirana41.31666719.816667ALEurope
2Algeria250140.7Algiers36.7500003.050000DZAfrica
3Andorra24513831212.4Andorra la Vella42.5000001.516667ADEurope
4Angola21757455.9Luanda-8.83333313.216667AOAfrica
5Antigua and Barbuda102128454.9Saint John's17.116667-61.850000AGNorth America
6Argentina193252218.3Buenos Aires-34.583333-58.666667ARSouth America
7Armenia21179113.8Yerevan40.16666744.500000AMEurope
8Australia2617221210.4Canberra-35.266667149.133333AUAustralia
9Austria279751919.7Vienna48.20000016.366667ATEurope
10Azerbaijan214651.3Baku40.38333349.866667AZEurope
11Bahamas122176516.3Nassau25.083333-77.350000BSNorth America
12Bahrain426372.0Manama26.23333350.566667BHAsia
13Bangladesh0000.0Dhaka23.71666790.400000BDAsia
14Barbados143173366.3Bridgetown13.100000-59.616667BBNorth America
15Belarus1423734214.4Minsk53.90000027.566667BYEurope
16Belgium2958421210.5Brussels50.8333334.333333BEEurope
17Belize26311486.8Belmopan17.250000-88.766667BZCentral America
18Benin344131.1Porto-Novo6.4833332.616667BJAfrica
19Bhutan23000.4Thimphu27.46666789.633333BTAsia
20Bolivia1674183.8La Paz-16.500000-68.150000BOSouth America
21Bosnia and Herzegovina7617384.6Sarajevo43.86666718.416667BAEurope
22Botswana17335355.4Gaborone-24.63333325.900000BWAfrica
23Brazil245145167.2Brasilia-15.783333-47.916667BRSouth America
24Brunei Darussalam31210.6Bandar Seri Begawan4.883333114.933333BNAsia
25Bulgaria2312529410.3Sofia42.68333323.316667BGEurope
26Burkina Faso25774.3Ouagadougou12.366667-1.516667BFAfrica
27Burundi88006.3Bujumbura-3.36666729.350000BIAfrica
28Cote d'Ivoire37174.0Yamoussoukro6.816667-5.266667CIAfrica
29Cape Verde14456164.0Praia14.916667-23.516667CVAfrica
.................................
163Suriname12817875.6Paramaribo5.833333-55.166667SRSouth America
164Swaziland90224.7Mbabane-26.31666731.133333SZAfrica
165Sweden152601867.2Stockholm59.33333318.050000SEEurope
166Switzerland18510028010.2Bern46.9166677.466667CHEurope
167Syria535161.0Damascus33.50000036.300000SYAsia
168Tajikistan21500.3Dushanbe38.55000068.766667TJAsia
169Thailand9925816.4Bangkok13.750000100.516667THAsia
170Macedonia10627863.9Skopje42.00000021.433333MKEurope
171Timor-Leste1140.1Dili-8.583333125.600000TLAsia
172Togo362191.3Lome6.1166671.216667TGAfrica
173Tonga362151.1Nuku'alofa-21.133333-175.200000TOAustralia
174Trinidad and Tobago19715676.4Port of Spain10.650000-61.516667TTNorth America
175Tunisia513201.3Tunis36.80000010.183333TNAfrica
176Turkey512271.4Ankara39.93333332.866667TREurope
177Turkmenistan1971322.2Ashgabat37.95000058.383333TMAsia
178Tuvalu64191.0Funafuti-8.516667179.216667TVAustralia
179Uganda45908.3Kampala0.31666732.550000UGAfrica
180Ukraine206237458.9Kyiv50.43333330.516667UAEurope
181United Arab Emirates1613552.8Abu Dhabi24.46666754.366667AEAsia
182United Kingdom21912619510.4London51.500000-0.083333GBEurope
183Tanzania36615.7Dar es Salaam-6.80000039.283333TZAfrica
184United States249158848.7Washington D.C.38.883333-77.000000USCentral America
185Uruguay115352206.6Montevideo-34.850000-56.166667UYSouth America
186Uzbekistan2510182.4Tashkent41.31666769.250000UZAsia
187Vanuatu2118110.9Port-Vila-17.733333168.316667VUAustralia
188Venezuela33310037.7Caracas10.483333-66.866667VESouth America
189Vietnam111212.0Hanoi21.033333105.850000VNAsia
190Yemen6000.1Sanaa15.35000044.200000YEAsia
191Zambia321942.5Lusaka-15.41666728.283333ZMAfrica
192Zimbabwe641844.7Harare-17.81666731.033333ZWAfrica
\n", "

193 rows × 10 columns

\n", "
" ], "text/plain": [ " country beer_servings spirit_servings wine_servings \\\n", "0 Afghanistan 0 0 0 \n", "1 Albania 89 132 54 \n", "2 Algeria 25 0 14 \n", "3 Andorra 245 138 312 \n", "4 Angola 217 57 45 \n", "5 Antigua and Barbuda 102 128 45 \n", "6 Argentina 193 25 221 \n", "7 Armenia 21 179 11 \n", "8 Australia 261 72 212 \n", "9 Austria 279 75 191 \n", "10 Azerbaijan 21 46 5 \n", "11 Bahamas 122 176 51 \n", "12 Bahrain 42 63 7 \n", "13 Bangladesh 0 0 0 \n", "14 Barbados 143 173 36 \n", "15 Belarus 142 373 42 \n", "16 Belgium 295 84 212 \n", "17 Belize 263 114 8 \n", "18 Benin 34 4 13 \n", "19 Bhutan 23 0 0 \n", "20 Bolivia 167 41 8 \n", "21 Bosnia and Herzegovina 76 173 8 \n", "22 Botswana 173 35 35 \n", "23 Brazil 245 145 16 \n", "24 Brunei Darussalam 31 2 1 \n", "25 Bulgaria 231 252 94 \n", "26 Burkina Faso 25 7 7 \n", "27 Burundi 88 0 0 \n", "28 Cote d'Ivoire 37 1 7 \n", "29 Cape Verde 144 56 16 \n", ".. ... ... ... ... \n", "163 Suriname 128 178 7 \n", "164 Swaziland 90 2 2 \n", "165 Sweden 152 60 186 \n", "166 Switzerland 185 100 280 \n", "167 Syria 5 35 16 \n", "168 Tajikistan 2 15 0 \n", "169 Thailand 99 258 1 \n", "170 Macedonia 106 27 86 \n", "171 Timor-Leste 1 1 4 \n", "172 Togo 36 2 19 \n", "173 Tonga 36 21 5 \n", "174 Trinidad and Tobago 197 156 7 \n", "175 Tunisia 51 3 20 \n", "176 Turkey 51 22 7 \n", "177 Turkmenistan 19 71 32 \n", "178 Tuvalu 6 41 9 \n", "179 Uganda 45 9 0 \n", "180 Ukraine 206 237 45 \n", "181 United Arab Emirates 16 135 5 \n", "182 United Kingdom 219 126 195 \n", "183 Tanzania 36 6 1 \n", "184 United States 249 158 84 \n", "185 Uruguay 115 35 220 \n", "186 Uzbekistan 25 101 8 \n", "187 Vanuatu 21 18 11 \n", "188 Venezuela 333 100 3 \n", "189 Vietnam 111 2 1 \n", "190 Yemen 6 0 0 \n", "191 Zambia 32 19 4 \n", "192 Zimbabwe 64 18 4 \n", "\n", " total_litres_of_pure_alcohol capital capital_latitude \\\n", "0 0.0 Kabul 34.516667 \n", "1 4.9 Tirana 41.316667 \n", "2 0.7 Algiers 36.750000 \n", "3 12.4 Andorra la Vella 42.500000 \n", "4 5.9 Luanda -8.833333 \n", "5 4.9 Saint John's 17.116667 \n", "6 8.3 Buenos Aires -34.583333 \n", "7 3.8 Yerevan 40.166667 \n", "8 10.4 Canberra -35.266667 \n", "9 9.7 Vienna 48.200000 \n", "10 1.3 Baku 40.383333 \n", "11 6.3 Nassau 25.083333 \n", "12 2.0 Manama 26.233333 \n", "13 0.0 Dhaka 23.716667 \n", "14 6.3 Bridgetown 13.100000 \n", "15 14.4 Minsk 53.900000 \n", "16 10.5 Brussels 50.833333 \n", "17 6.8 Belmopan 17.250000 \n", "18 1.1 Porto-Novo 6.483333 \n", "19 0.4 Thimphu 27.466667 \n", "20 3.8 La Paz -16.500000 \n", "21 4.6 Sarajevo 43.866667 \n", "22 5.4 Gaborone -24.633333 \n", "23 7.2 Brasilia -15.783333 \n", "24 0.6 Bandar Seri Begawan 4.883333 \n", "25 10.3 Sofia 42.683333 \n", "26 4.3 Ouagadougou 12.366667 \n", "27 6.3 Bujumbura -3.366667 \n", "28 4.0 Yamoussoukro 6.816667 \n", "29 4.0 Praia 14.916667 \n", ".. ... ... ... \n", "163 5.6 Paramaribo 5.833333 \n", "164 4.7 Mbabane -26.316667 \n", "165 7.2 Stockholm 59.333333 \n", "166 10.2 Bern 46.916667 \n", "167 1.0 Damascus 33.500000 \n", "168 0.3 Dushanbe 38.550000 \n", "169 6.4 Bangkok 13.750000 \n", "170 3.9 Skopje 42.000000 \n", "171 0.1 Dili -8.583333 \n", "172 1.3 Lome 6.116667 \n", "173 1.1 Nuku'alofa -21.133333 \n", "174 6.4 Port of Spain 10.650000 \n", "175 1.3 Tunis 36.800000 \n", "176 1.4 Ankara 39.933333 \n", "177 2.2 Ashgabat 37.950000 \n", "178 1.0 Funafuti -8.516667 \n", "179 8.3 Kampala 0.316667 \n", "180 8.9 Kyiv 50.433333 \n", "181 2.8 Abu Dhabi 24.466667 \n", "182 10.4 London 51.500000 \n", "183 5.7 Dar es Salaam -6.800000 \n", "184 8.7 Washington D.C. 38.883333 \n", "185 6.6 Montevideo -34.850000 \n", "186 2.4 Tashkent 41.316667 \n", "187 0.9 Port-Vila -17.733333 \n", "188 7.7 Caracas 10.483333 \n", "189 2.0 Hanoi 21.033333 \n", "190 0.1 Sanaa 15.350000 \n", "191 2.5 Lusaka -15.416667 \n", "192 4.7 Harare -17.816667 \n", "\n", " capital_longitude country_code continent \n", "0 69.183333 AF Asia \n", "1 19.816667 AL Europe \n", "2 3.050000 DZ Africa \n", "3 1.516667 AD Europe \n", "4 13.216667 AO Africa \n", "5 -61.850000 AG North America \n", "6 -58.666667 AR South America \n", "7 44.500000 AM Europe \n", "8 149.133333 AU Australia \n", "9 16.366667 AT Europe \n", "10 49.866667 AZ Europe \n", "11 -77.350000 BS North America \n", "12 50.566667 BH Asia \n", "13 90.400000 BD Asia \n", "14 -59.616667 BB North America \n", "15 27.566667 BY Europe \n", "16 4.333333 BE Europe \n", "17 -88.766667 BZ Central America \n", "18 2.616667 BJ Africa \n", "19 89.633333 BT Asia \n", "20 -68.150000 BO South America \n", "21 18.416667 BA Europe \n", "22 25.900000 BW Africa \n", "23 -47.916667 BR South America \n", "24 114.933333 BN Asia \n", "25 23.316667 BG Europe \n", "26 -1.516667 BF Africa \n", "27 29.350000 BI Africa \n", "28 -5.266667 CI Africa \n", "29 -23.516667 CV Africa \n", ".. ... ... ... \n", "163 -55.166667 SR South America \n", "164 31.133333 SZ Africa \n", "165 18.050000 SE Europe \n", "166 7.466667 CH Europe \n", "167 36.300000 SY Asia \n", "168 68.766667 TJ Asia \n", "169 100.516667 TH Asia \n", "170 21.433333 MK Europe \n", "171 125.600000 TL Asia \n", "172 1.216667 TG Africa \n", "173 -175.200000 TO Australia \n", "174 -61.516667 TT North America \n", "175 10.183333 TN Africa \n", "176 32.866667 TR Europe \n", "177 58.383333 TM Asia \n", "178 179.216667 TV Australia \n", "179 32.550000 UG Africa \n", "180 30.516667 UA Europe \n", "181 54.366667 AE Asia \n", "182 -0.083333 GB Europe \n", "183 39.283333 TZ Africa \n", "184 -77.000000 US Central America \n", "185 -56.166667 UY South America \n", "186 69.250000 UZ Asia \n", "187 168.316667 VU Australia \n", "188 -66.866667 VE South America \n", "189 105.850000 VN Asia \n", "190 44.200000 YE Asia \n", "191 28.283333 ZM Africa \n", "192 31.033333 ZW Africa \n", "\n", "[193 rows x 10 columns]" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Vytvoříme tabulku bez indikátoru spojení\n", "result = pd.merge(alcohol, capitals, on='country', how='left')\n", "result" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [], "source": [ "# Uložíme tabulku do CSV souboru\n", "result.to_csv('drinks_country_codes.csv')" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "linkText": "Export to plot.ly", "plotlyServerURL": "https://plot.ly", "showLink": false }, "data": [ { "lat": [ 34.516666666666666, 41.31666666666667, 36.75, 42.5, -8.833333333333334, 17.116666666666667, -34.583333333333336, 40.16666666666666, -35.266666666666666, 48.2, 40.38333333333333, 25.08333333333333, 26.23333333333333, 23.716666666666665, 13.1, 53.9, 50.83333333333334, 17.25, 6.4833333333333325, 27.466666666666665, -16.5, 43.86666666666667, -24.63333333333333, -15.783333333333333, 4.883333333333333, 42.68333333333333, 12.366666666666667, -3.3666666666666667, 6.816666666666666, 14.916666666666664, 11.55, 3.8666666666666663, 45.41666666666666, 4.366666666666666, 12.1, -33.45, 39.91666666666666, 4.6, -11.7, -4.25, -21.2, 9.933333333333334, 45.8, 23.11666666666667, 35.166666666666664, 50.08333333333334, 39.016666666666666, -4.316666666666666, 55.66666666666666, 11.583333333333336, 15.3, 18.466666666666665, -0.21666666666666667, 30.05, 13.7, 3.75, 15.333333333333336, 59.43333333333333, 9.033333333333333, -18.133333333333333, 60.16666666666666, 48.86666666666667, 0.38333333333333336, 13.45, 41.68333333333333, 52.51666666666666, 5.55, 37.98333333333333, 12.05, 14.616666666666667, 9.5, 11.85, 6.8, 18.53333333333333, 14.1, 47.5, 64.15, 28.6, -6.166666666666668, 35.7, 33.333333333333336, 53.31666666666667, 31.766666666666666, 41.9, 18, 35.68333333333333, 31.95, 51.16666666666666, -1.2833333333333332, -0.8833333333333333, 29.36666666666667, 42.86666666666667, 17.966666666666665, 56.95, 33.86666666666667, -29.316666666666666, 6.3, 32.88333333333333, 54.68333333333333, 49.6, -18.916666666666668, -13.966666666666667, 3.1666666666666665, 4.166666666666667, 12.65, 35.88333333333333, 7.1, 18.066666666666666, -20.15, 19.433333333333334, 6.916666666666668, 43.73333333333333, 47.91666666666666, 42.43333333333333, 34.016666666666666, -25.95, 16.8, -22.566666666666666, -0.5477, 27.716666666666665, 52.35, -41.3, 12.133333333333333, 13.516666666666667, 9.083333333333334, -19.016666666666666, 59.91666666666666, 23.61666666666667, 33.68333333333333, 7.4833333333333325, 8.966666666666667, -9.45, -25.266666666666666, -12.05, 14.6, 52.25, 38.71666666666667, 25.28333333333333, 37.55, 47, 44.43333333333333, 55.75, -1.95, 17.3, 14, 13.133333333333333, -13.816666666666665, 43.93333333333333, 0.3333333333333333, 24.65, 14.733333333333333, 44.83333333333334, -4.616666666666667, 8.483333333333333, 1.2833333333333332, 48.15, 46.05, -9.433333333333334, 2.066666666666667, -25.7, 40.4, 6.916666666666668, 15.6, 5.833333333333332, -26.316666666666666, 59.33333333333334, 46.91666666666666, 33.5, 38.55, 13.75, 42, -8.583333333333334, 6.116666666666666, -21.133333333333333, 10.65, 36.8, 39.93333333333333, 37.95, -8.516666666666667, 0.31666666666666665, 50.43333333333333, 24.466666666666665, 51.5, -6.8, 38.883333, -34.85, 41.31666666666667, -17.733333333333334, 10.483333333333333, 21.03333333333333, 15.35, -15.416666666666664, -17.816666666666666 ], "lon": [ 69.18333299999999, 19.816667000000002, 3.05, 1.516667, 13.216667000000001, -61.85, -58.666667000000004, 44.5, 149.133333, 16.366667, 49.866667, -77.35, 50.566666999999995, 90.4, -59.61666700000001, 27.566667, 4.3333330000000005, -88.766667, 2.6166669999999996, 89.633333, -68.15, 18.416667, 25.9, -47.916667, 114.933333, 23.316667000000002, -1.516667, 29.35, -5.266667, -23.516667, 104.91666699999999, 11.516667, -75.7, 18.583333, 15.033332999999999, -70.666667, 116.38333300000001, -74.083333, 43.233333, 15.283332999999999, -159.76666699999998, -84.083333, 16, -82.35, 33.366667, 14.466667000000001, 125.75, 15.3, 12.583333, 43.15, -61.4, -69.9, -78.5, 31.25, -89.2, 8.783333, 38.933333000000005, 24.716667, 38.7, 178.416667, 24.933332999999998, 2.333333, 9.45, -16.566667000000002, 44.833333, 13.4, -0.216667, 23.733333, -61.75, -90.516667, -13.7, -15.583332999999998, -58.15, -72.333333, -87.216667, 19.083333, -21.95, 77.2, 106.816667, 51.416667, 44.4, -6.233333, 35.233333, 12.483333, -76.8, 139.75, 35.933333000000005, 71.416667, 36.816666999999995, 169.533333, 47.966667, 74.6, 102.6, 24.1, 35.5, 27.483333000000002, -10.8, 13.166667000000002, 25.316667000000002, 6.116667, 47.516667, 33.783333, 101.7, 73.5, -8, 14.5, 171.383333, -15.966667000000001, 57.483332999999995, -99.133333, 158.15, 7.4166669999999995, 106.91666699999999, 19.266667, -6.816667, 32.583333, 96.15, 17.083333, 166.920867, 85.31666700000001, 4.9166669999999995, 174.783333, -86.25, 2.1166669999999996, 7.533333, -169.916667, 10.75, 58.583332999999996, 73.05, 134.633333, -79.533333, 147.183333, -57.666667000000004, -77.05, 120.96666699999999, 21, -9.133333, 51.533333, 126.983333, 28.85, 26.1, 37.6, 30.05, -62.716667, -61, -61.216667, -171.76666699999998, 12.416667, 6.733333, 46.7, -17.633333, 20.5, 55.45, -13.233332999999998, 103.85, 17.116667, 14.516667000000002, 159.95, 45.333333, 28.216666999999998, -3.683333, 79.833333, 32.533333, -55.166667000000004, 31.133333, 18.05, 7.466667, 36.3, 68.766667, 100.516667, 21.433332999999998, 125.6, 1.216667, -175.2, -61.516667000000005, 10.183333, 32.866667, 58.38333299999999, 179.216667, 32.55, 30.516666999999998, 54.36666700000001, -0.083333, 39.283333, -77, -56.166667000000004, 69.25, 168.316667, -66.866667, 105.85, 44.2, 28.283333000000002, 31.033333000000002 ], "marker": { "line": { "color": "rgb(40,40,40)", "width": 0.5 }, "size": [ 0, 24.5, 3.5, 62, 29.5, 24.5, 41.5, 19, 52, 48.5, 6.5, 31.5, 10, 0, 31.5, 72, 52.5, 34, 5.5, 2, 19, 23, 27, 36, 3, 51.5, 21.5, 31.5, 20, 20, 11, 29, 41, 9, 2, 38, 25, 21, 0.5, 8.5, 29.5, 22, 51, 21, 41, 59, 0, 11.5, 52, 5.5, 33, 31, 21, 1, 11, 29, 2.5, 47.5, 3.5, 10, 50, 59, 44.5, 12, 27, 56.5, 9, 41.5, 59.5, 11, 1, 12.5, 35.5, 29.5, 15, 56.5, 33, 11, 0.5, 0, 1, 57, 12.5, 32.5, 17, 35, 2.5, 34, 9, 5, 0, 12, 31, 52.5, 9.5, 14, 15.5, 0, 64.5, 57, 4, 7.5, 1.5, 0, 3, 33, 0, 0, 13, 27.5, 11.5, 0, 24.5, 24.5, 2.5, 6.5, 0.5, 34, 5, 1, 47, 46.5, 17.5, 0.5, 45.5, 35, 33.5, 3.5, 0, 34.5, 36, 7.5, 36.5, 30.5, 23, 54.5, 55, 4.5, 49, 31.5, 52, 57.5, 34, 38.5, 50.5, 31.5, 13, 0, 21, 0.5, 1.5, 48, 20.5, 33.5, 7.5, 57, 53, 6, 0, 41, 50, 11, 8.5, 28, 23.5, 36, 51, 5, 1.5, 32, 19.5, 0.5, 6.5, 5.5, 32, 6.5, 7, 11, 5, 41.5, 44.5, 14, 52, 28.5, 43.5, 33, 12, 4.5, 38.5, 10, 0.5, 12.5, 23.5 ], "sizemode": "area" }, "text": [ "Stát: Afghanistan
Počet litrů čístého lihu na osobu ročně: 0.0", "Stát: Albania
Počet litrů čístého lihu na osobu ročně: 4.9", "Stát: Algeria
Počet litrů čístého lihu na osobu ročně: 0.7", "Stát: Andorra
Počet litrů čístého lihu na osobu ročně: 12.4", "Stát: Angola
Počet litrů čístého lihu na osobu ročně: 5.9", "Stát: Antigua and Barbuda
Počet litrů čístého lihu na osobu ročně: 4.9", "Stát: Argentina
Počet litrů čístého lihu na osobu ročně: 8.3", "Stát: Armenia
Počet litrů čístého lihu na osobu ročně: 3.8", "Stát: Australia
Počet litrů čístého lihu na osobu ročně: 10.4", "Stát: Austria
Počet litrů čístého lihu na osobu ročně: 9.7", "Stát: Azerbaijan
Počet litrů čístého lihu na osobu ročně: 1.3", "Stát: Bahamas
Počet litrů čístého lihu na osobu ročně: 6.3", "Stát: Bahrain
Počet litrů čístého lihu na osobu ročně: 2.0", "Stát: Bangladesh
Počet litrů čístého lihu na osobu ročně: 0.0", "Stát: Barbados
Počet litrů čístého lihu na osobu ročně: 6.3", "Stát: Belarus
Počet litrů čístého lihu na osobu ročně: 14.4", "Stát: Belgium
Počet litrů čístého lihu na osobu ročně: 10.5", "Stát: Belize
Počet litrů čístého lihu na osobu ročně: 6.8", "Stát: Benin
Počet litrů čístého lihu na osobu ročně: 1.1", "Stát: Bhutan
Počet litrů čístého lihu na osobu ročně: 0.4", "Stát: Bolivia
Počet litrů čístého lihu na osobu ročně: 3.8", "Stát: Bosnia and Herzegovina
Počet litrů čístého lihu na osobu ročně: 4.6", "Stát: Botswana
Počet litrů čístého lihu na osobu ročně: 5.4", "Stát: Brazil
Počet litrů čístého lihu na osobu ročně: 7.2", "Stát: Brunei Darussalam
Počet litrů čístého lihu na osobu ročně: 0.6", "Stát: Bulgaria
Počet litrů čístého lihu na osobu ročně: 10.3", "Stát: Burkina Faso
Počet litrů čístého lihu na osobu ročně: 4.3", "Stát: Burundi
Počet litrů čístého lihu na osobu ročně: 6.3", "Stát: Cote d'Ivoire
Počet litrů čístého lihu na osobu ročně: 4.0", "Stát: Cape Verde
Počet litrů čístého lihu na osobu ročně: 4.0", "Stát: Cambodia
Počet litrů čístého lihu na osobu ročně: 2.2", "Stát: Cameroon
Počet litrů čístého lihu na osobu ročně: 5.8", "Stát: Canada
Počet litrů čístého lihu na osobu ročně: 8.2", "Stát: Central African Republic
Počet litrů čístého lihu na osobu ročně: 1.8", "Stát: Chad
Počet litrů čístého lihu na osobu ročně: 0.4", "Stát: Chile
Počet litrů čístého lihu na osobu ročně: 7.6", "Stát: China
Počet litrů čístého lihu na osobu ročně: 5.0", "Stát: Colombia
Počet litrů čístého lihu na osobu ročně: 4.2", "Stát: Comoros
Počet litrů čístého lihu na osobu ročně: 0.1", "Stát: Republic of Congo
Počet litrů čístého lihu na osobu ročně: 1.7", "Stát: Cook Islands
Počet litrů čístého lihu na osobu ročně: 5.9", "Stát: Costa Rica
Počet litrů čístého lihu na osobu ročně: 4.4", "Stát: Croatia
Počet litrů čístého lihu na osobu ročně: 10.2", "Stát: Cuba
Počet litrů čístého lihu na osobu ročně: 4.2", "Stát: Cyprus
Počet litrů čístého lihu na osobu ročně: 8.2", "Stát: Czech Republic
Počet litrů čístého lihu na osobu ročně: 11.8", "Stát: North Korea
Počet litrů čístého lihu na osobu ročně: 0.0", "Stát: Democratic Republic of the Congo
Počet litrů čístého lihu na osobu ročně: 2.3", "Stát: Denmark
Počet litrů čístého lihu na osobu ročně: 10.4", "Stát: Djibouti
Počet litrů čístého lihu na osobu ročně: 1.1", "Stát: Dominica
Počet litrů čístého lihu na osobu ročně: 6.6", "Stát: Dominican Republic
Počet litrů čístého lihu na osobu ročně: 6.2", "Stát: Ecuador
Počet litrů čístého lihu na osobu ročně: 4.2", "Stát: Egypt
Počet litrů čístého lihu na osobu ročně: 0.2", "Stát: El Salvador
Počet litrů čístého lihu na osobu ročně: 2.2", "Stát: Equatorial Guinea
Počet litrů čístého lihu na osobu ročně: 5.8", "Stát: Eritrea
Počet litrů čístého lihu na osobu ročně: 0.5", "Stát: Estonia
Počet litrů čístého lihu na osobu ročně: 9.5", "Stát: Ethiopia
Počet litrů čístého lihu na osobu ročně: 0.7", "Stát: Fiji
Počet litrů čístého lihu na osobu ročně: 2.0", "Stát: Finland
Počet litrů čístého lihu na osobu ročně: 10.0", "Stát: France
Počet litrů čístého lihu na osobu ročně: 11.8", "Stát: Gabon
Počet litrů čístého lihu na osobu ročně: 8.9", "Stát: The Gambia
Počet litrů čístého lihu na osobu ročně: 2.4", "Stát: Georgia
Počet litrů čístého lihu na osobu ročně: 5.4", "Stát: Germany
Počet litrů čístého lihu na osobu ročně: 11.3", "Stát: Ghana
Počet litrů čístého lihu na osobu ročně: 1.8", "Stát: Greece
Počet litrů čístého lihu na osobu ročně: 8.3", "Stát: Grenada
Počet litrů čístého lihu na osobu ročně: 11.9", "Stát: Guatemala
Počet litrů čístého lihu na osobu ročně: 2.2", "Stát: Guinea
Počet litrů čístého lihu na osobu ročně: 0.2", "Stát: Guinea-Bissau
Počet litrů čístého lihu na osobu ročně: 2.5", "Stát: Guyana
Počet litrů čístého lihu na osobu ročně: 7.1", "Stát: Haiti
Počet litrů čístého lihu na osobu ročně: 5.9", "Stát: Honduras
Počet litrů čístého lihu na osobu ročně: 3.0", "Stát: Hungary
Počet litrů čístého lihu na osobu ročně: 11.3", "Stát: Iceland
Počet litrů čístého lihu na osobu ročně: 6.6", "Stát: India
Počet litrů čístého lihu na osobu ročně: 2.2", "Stát: Indonesia
Počet litrů čístého lihu na osobu ročně: 0.1", "Stát: Iran
Počet litrů čístého lihu na osobu ročně: 0.0", "Stát: Iraq
Počet litrů čístého lihu na osobu ročně: 0.2", "Stát: Ireland
Počet litrů čístého lihu na osobu ročně: 11.4", "Stát: Israel
Počet litrů čístého lihu na osobu ročně: 2.5", "Stát: Italy
Počet litrů čístého lihu na osobu ročně: 6.5", "Stát: Jamaica
Počet litrů čístého lihu na osobu ročně: 3.4", "Stát: Japan
Počet litrů čístého lihu na osobu ročně: 7.0", "Stát: Jordan
Počet litrů čístého lihu na osobu ročně: 0.5", "Stát: Kazakhstan
Počet litrů čístého lihu na osobu ročně: 6.8", "Stát: Kenya
Počet litrů čístého lihu na osobu ročně: 1.8", "Stát: Kiribati
Počet litrů čístého lihu na osobu ročně: 1.0", "Stát: Kuwait
Počet litrů čístého lihu na osobu ročně: 0.0", "Stát: Kyrgyzstan
Počet litrů čístého lihu na osobu ročně: 2.4", "Stát: Laos
Počet litrů čístého lihu na osobu ročně: 6.2", "Stát: Latvia
Počet litrů čístého lihu na osobu ročně: 10.5", "Stát: Lebanon
Počet litrů čístého lihu na osobu ročně: 1.9", "Stát: Lesotho
Počet litrů čístého lihu na osobu ročně: 2.8", "Stát: Liberia
Počet litrů čístého lihu na osobu ročně: 3.1", "Stát: Libya
Počet litrů čístého lihu na osobu ročně: 0.0", "Stát: Lithuania
Počet litrů čístého lihu na osobu ročně: 12.9", "Stát: Luxembourg
Počet litrů čístého lihu na osobu ročně: 11.4", "Stát: Madagascar
Počet litrů čístého lihu na osobu ročně: 0.8", "Stát: Malawi
Počet litrů čístého lihu na osobu ročně: 1.5", "Stát: Malaysia
Počet litrů čístého lihu na osobu ročně: 0.3", "Stát: Maldives
Počet litrů čístého lihu na osobu ročně: 0.0", "Stát: Mali
Počet litrů čístého lihu na osobu ročně: 0.6", "Stát: Malta
Počet litrů čístého lihu na osobu ročně: 6.6", "Stát: Marshall Islands
Počet litrů čístého lihu na osobu ročně: 0.0", "Stát: Mauritania
Počet litrů čístého lihu na osobu ročně: 0.0", "Stát: Mauritius
Počet litrů čístého lihu na osobu ročně: 2.6", "Stát: Mexico
Počet litrů čístého lihu na osobu ročně: 5.5", "Stát: Federated States of Micronesia
Počet litrů čístého lihu na osobu ročně: 2.3", "Stát: Monaco
Počet litrů čístého lihu na osobu ročně: 0.0", "Stát: Mongolia
Počet litrů čístého lihu na osobu ročně: 4.9", "Stát: Montenegro
Počet litrů čístého lihu na osobu ročně: 4.9", "Stát: Morocco
Počet litrů čístého lihu na osobu ročně: 0.5", "Stát: Mozambique
Počet litrů čístého lihu na osobu ročně: 1.3", "Stát: Myanmar
Počet litrů čístého lihu na osobu ročně: 0.1", "Stát: Namibia
Počet litrů čístého lihu na osobu ročně: 6.8", "Stát: Nauru
Počet litrů čístého lihu na osobu ročně: 1.0", "Stát: Nepal
Počet litrů čístého lihu na osobu ročně: 0.2", "Stát: Netherlands
Počet litrů čístého lihu na osobu ročně: 9.4", "Stát: New Zealand
Počet litrů čístého lihu na osobu ročně: 9.3", "Stát: Nicaragua
Počet litrů čístého lihu na osobu ročně: 3.5", "Stát: Niger
Počet litrů čístého lihu na osobu ročně: 0.1", "Stát: Nigeria
Počet litrů čístého lihu na osobu ročně: 9.1", "Stát: Niue
Počet litrů čístého lihu na osobu ročně: 7.0", "Stát: Norway
Počet litrů čístého lihu na osobu ročně: 6.7", "Stát: Oman
Počet litrů čístého lihu na osobu ročně: 0.7", "Stát: Pakistan
Počet litrů čístého lihu na osobu ročně: 0.0", "Stát: Palau
Počet litrů čístého lihu na osobu ročně: 6.9", "Stát: Panama
Počet litrů čístého lihu na osobu ročně: 7.2", "Stát: Papua New Guinea
Počet litrů čístého lihu na osobu ročně: 1.5", "Stát: Paraguay
Počet litrů čístého lihu na osobu ročně: 7.3", "Stát: Peru
Počet litrů čístého lihu na osobu ročně: 6.1", "Stát: Philippines
Počet litrů čístého lihu na osobu ročně: 4.6", "Stát: Poland
Počet litrů čístého lihu na osobu ročně: 10.9", "Stát: Portugal
Počet litrů čístého lihu na osobu ročně: 11.0", "Stát: Qatar
Počet litrů čístého lihu na osobu ročně: 0.9", "Stát: South Korea
Počet litrů čístého lihu na osobu ročně: 9.8", "Stát: Moldova
Počet litrů čístého lihu na osobu ročně: 6.3", "Stát: Romania
Počet litrů čístého lihu na osobu ročně: 10.4", "Stát: Russia
Počet litrů čístého lihu na osobu ročně: 11.5", "Stát: Rwanda
Počet litrů čístého lihu na osobu ročně: 6.8", "Stát: Saint Kitts and Nevis
Počet litrů čístého lihu na osobu ročně: 7.7", "Stát: Saint Lucia
Počet litrů čístého lihu na osobu ročně: 10.1", "Stát: Saint Vincent and the Grenadines
Počet litrů čístého lihu na osobu ročně: 6.3", "Stát: Samoa
Počet litrů čístého lihu na osobu ročně: 2.6", "Stát: San Marino
Počet litrů čístého lihu na osobu ročně: 0.0", "Stát: Sao Tome and Principe
Počet litrů čístého lihu na osobu ročně: 4.2", "Stát: Saudi Arabia
Počet litrů čístého lihu na osobu ročně: 0.1", "Stát: Senegal
Počet litrů čístého lihu na osobu ročně: 0.3", "Stát: Serbia
Počet litrů čístého lihu na osobu ročně: 9.6", "Stát: Seychelles
Počet litrů čístého lihu na osobu ročně: 4.1", "Stát: Sierra Leone
Počet litrů čístého lihu na osobu ročně: 6.7", "Stát: Singapore
Počet litrů čístého lihu na osobu ročně: 1.5", "Stát: Slovakia
Počet litrů čístého lihu na osobu ročně: 11.4", "Stát: Slovenia
Počet litrů čístého lihu na osobu ročně: 10.6", "Stát: Solomon Islands
Počet litrů čístého lihu na osobu ročně: 1.2", "Stát: Somalia
Počet litrů čístého lihu na osobu ročně: 0.0", "Stát: South Africa
Počet litrů čístého lihu na osobu ročně: 8.2", "Stát: Spain
Počet litrů čístého lihu na osobu ročně: 10.0", "Stát: Sri Lanka
Počet litrů čístého lihu na osobu ročně: 2.2", "Stát: Sudan
Počet litrů čístého lihu na osobu ročně: 1.7", "Stát: Suriname
Počet litrů čístého lihu na osobu ročně: 5.6", "Stát: Swaziland
Počet litrů čístého lihu na osobu ročně: 4.7", "Stát: Sweden
Počet litrů čístého lihu na osobu ročně: 7.2", "Stát: Switzerland
Počet litrů čístého lihu na osobu ročně: 10.2", "Stát: Syria
Počet litrů čístého lihu na osobu ročně: 1.0", "Stát: Tajikistan
Počet litrů čístého lihu na osobu ročně: 0.3", "Stát: Thailand
Počet litrů čístého lihu na osobu ročně: 6.4", "Stát: Macedonia
Počet litrů čístého lihu na osobu ročně: 3.9", "Stát: Timor-Leste
Počet litrů čístého lihu na osobu ročně: 0.1", "Stát: Togo
Počet litrů čístého lihu na osobu ročně: 1.3", "Stát: Tonga
Počet litrů čístého lihu na osobu ročně: 1.1", "Stát: Trinidad and Tobago
Počet litrů čístého lihu na osobu ročně: 6.4", "Stát: Tunisia
Počet litrů čístého lihu na osobu ročně: 1.3", "Stát: Turkey
Počet litrů čístého lihu na osobu ročně: 1.4", "Stát: Turkmenistan
Počet litrů čístého lihu na osobu ročně: 2.2", "Stát: Tuvalu
Počet litrů čístého lihu na osobu ročně: 1.0", "Stát: Uganda
Počet litrů čístého lihu na osobu ročně: 8.3", "Stát: Ukraine
Počet litrů čístého lihu na osobu ročně: 8.9", "Stát: United Arab Emirates
Počet litrů čístého lihu na osobu ročně: 2.8", "Stát: United Kingdom
Počet litrů čístého lihu na osobu ročně: 10.4", "Stát: Tanzania
Počet litrů čístého lihu na osobu ročně: 5.7", "Stát: United States
Počet litrů čístého lihu na osobu ročně: 8.7", "Stát: Uruguay
Počet litrů čístého lihu na osobu ročně: 6.6", "Stát: Uzbekistan
Počet litrů čístého lihu na osobu ročně: 2.4", "Stát: Vanuatu
Počet litrů čístého lihu na osobu ročně: 0.9", "Stát: Venezuela
Počet litrů čístého lihu na osobu ročně: 7.7", "Stát: Vietnam
Počet litrů čístého lihu na osobu ročně: 2.0", "Stát: Yemen
Počet litrů čístého lihu na osobu ročně: 0.1", "Stát: Zambia
Počet litrů čístého lihu na osobu ročně: 2.5", "Stát: Zimbabwe
Počet litrů čístého lihu na osobu ročně: 4.7" ], "type": "scattergeo", "uid": "a98abaa5-6267-4858-9eb2-c7e5589f98fe" } ], "layout": { "geo": { "countrycolor": "rgb(255, 255, 255)", "countrywidth": 1, "landcolor": "rgb(217, 217, 217)", "projection": { "type": "equirectangular" }, "scope": "world", "showland": true, "subunitcolor": "rgb(255, 255, 255)", "subunitwidth": 1 }, "title": { "text": "Celková spotřeba alkoholu na osobu ročně" } } }, "text/html": [ "
" ], "text/vnd.plotly.v1+html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Vytvoříme seznam popisků\n", "text = []\n", "for i, row in result.iterrows():\n", " text.append(\n", " 'Stát: {}
Počet litrů čístého lihu na osobu ročně: {}'.format(row.country, row.total_litres_of_pure_alcohol)\n", " )\n", "# Pro vykreslení použijeme typ scattergeo\n", "city = [dict(\n", " type = 'scattergeo',\n", " lon = result.capital_longitude,\n", " lat = result.capital_latitude,\n", " text = text,\n", " marker = dict(\n", " size = result.total_litres_of_pure_alcohol*5,\n", " # sizeref = 2. * max(df_sub['pop']/scale) / (25 ** 2),\n", " line = dict(width=0.5, color='rgb(40,40,40)'),\n", " sizemode = 'area'\n", "))]\n", "# Pro vykreslení celého světu použijeme typ projekce equirectangular\n", "layout = dict(\n", " title = 'Celková spotřeba alkoholu na osobu ročně',\n", " geo = dict(\n", " scope='world',\n", " projection=dict(type='equirectangular'),\n", " showland = True,\n", " landcolor = 'rgb(217, 217, 217)',\n", " subunitwidth=1,\n", " countrywidth=1,\n", " subunitcolor=\"rgb(255, 255, 255)\",\n", " countrycolor=\"rgb(255, 255, 255)\"\n", " ),\n", " )\n", "\n", "fig = dict(data=city, layout=layout)\n", "iplot(fig)" ] }, { "cell_type": "code", "execution_count": 32, "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", "
country_codecountry_code_3
0AFAFG
1AXALA
2ALALB
3DZDZA
4ASASM
\n", "
" ], "text/plain": [ " country_code country_code_3\n", "0 AF AFG\n", "1 AX ALA\n", "2 AL ALB\n", "3 DZ DZA\n", "4 AS ASM" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Načteme data obsahující třípísmenný kód země\n", "# Zdroj https://github.com/lukes/ISO-3166-Countries-with-Regional-Codes/blob/master/all/all.csv\n", "country_code = pd.read_csv('country_code.csv', skipinitialspace=True, usecols=['alpha-2', 'alpha-3'])\n", "country_code.rename(columns={\n", " 'alpha-2': 'country_code', 'alpha-3': 'country_code_3'\n", " }, inplace=True \n", ")\n", "country_code.head()" ] }, { "cell_type": "code", "execution_count": 33, "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", "
countrybeer_servingsspirit_servingswine_servingstotal_litres_of_pure_alcoholcapitalcapital_latitudecapital_longitudecountry_codecontinentcountry_code_3
0Afghanistan0000.0Kabul34.51666769.183333AFAsiaAFG
1Albania89132544.9Tirana41.31666719.816667ALEuropeALB
2Algeria250140.7Algiers36.7500003.050000DZAfricaDZA
3Andorra24513831212.4Andorra la Vella42.5000001.516667ADEuropeAND
4Angola21757455.9Luanda-8.83333313.216667AOAfricaAGO
\n", "
" ], "text/plain": [ " country beer_servings spirit_servings wine_servings \\\n", "0 Afghanistan 0 0 0 \n", "1 Albania 89 132 54 \n", "2 Algeria 25 0 14 \n", "3 Andorra 245 138 312 \n", "4 Angola 217 57 45 \n", "\n", " total_litres_of_pure_alcohol capital capital_latitude \\\n", "0 0.0 Kabul 34.516667 \n", "1 4.9 Tirana 41.316667 \n", "2 0.7 Algiers 36.750000 \n", "3 12.4 Andorra la Vella 42.500000 \n", "4 5.9 Luanda -8.833333 \n", "\n", " capital_longitude country_code continent country_code_3 \n", "0 69.183333 AF Asia AFG \n", "1 19.816667 AL Europe ALB \n", "2 3.050000 DZ Africa DZA \n", "3 1.516667 AD Europe AND \n", "4 13.216667 AO Africa AGO " ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Připojíme třípísmenný kód na základě dvoupísmenného kódu\n", "result2 = pd.merge(result, country_code, on='country_code', how='left')\n", "result2.head()" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [], "source": [ "# Uložíme tabulku do CSV souboru\n", "result2.to_csv('drinks_country_codes2.csv')" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([], dtype=object)" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "result2 = pd.merge(result, country_code, on='country_code', how='left', indicator=True)\n", "result2.query('_merge != \"both\"').country.values" ] }, { "cell_type": "code", "execution_count": 36, "metadata": { "scrolled": false }, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "linkText": "Export to plot.ly", "plotlyServerURL": "https://plot.ly", "showLink": false }, "data": [ { "autocolorscale": false, "colorbar": { "len": 0.6, "title": { "text": "Počet litrů čístého lihu na osobu ročně" }, "y": 0.65 }, "colorscale": "Jet", "locations": [ "AFG", "ALB", "DZA", "AND", "AGO", "ATG", "ARG", "ARM", "AUS", "AUT", "AZE", "BHS", "BHR", "BGD", "BRB", "BLR", "BEL", "BLZ", "BEN", "BTN", "BOL", "BIH", "BWA", "BRA", "BRN", "BGR", "BFA", "BDI", "CIV", "CPV", "KHM", "CMR", "CAN", "CAF", "TCD", "CHL", "CHN", "COL", "COM", "COG", "COK", "CRI", "HRV", "CUB", "CYP", "CZE", "PRK", "COD", "DNK", "DJI", "DMA", "DOM", "ECU", "EGY", "SLV", "GNQ", "ERI", "EST", "ETH", "FJI", "FIN", "FRA", "GAB", "GMB", "GEO", "DEU", "GHA", "GRC", "GRD", "GTM", "GIN", "GNB", "GUY", "HTI", "HND", "HUN", "ISL", "IND", "IDN", "IRN", "IRQ", "IRL", "ISR", "ITA", "JAM", "JPN", "JOR", "KAZ", "KEN", "KIR", "KWT", "KGZ", "LAO", "LVA", "LBN", "LSO", "LBR", "LBY", "LTU", "LUX", "MDG", "MWI", "MYS", "MDV", "MLI", "MLT", "MHL", "MRT", "MUS", "MEX", "FSM", "MCO", "MNG", "MNE", "MAR", "MOZ", "MMR", "NAM", "NRU", "NPL", "NLD", "NZL", "NIC", "NER", "NGA", "NIU", "NOR", "OMN", "PAK", "PLW", "PAN", "PNG", "PRY", "PER", "PHL", "POL", "PRT", "QAT", "KOR", "MDA", "ROU", "RUS", "RWA", "KNA", "LCA", "VCT", "WSM", "SMR", "STP", "SAU", "SEN", "SRB", "SYC", "SLE", "SGP", "SVK", "SVN", "SLB", "SOM", "ZAF", "ESP", "LKA", "SDN", "SUR", "SWZ", "SWE", "CHE", "SYR", "TJK", "THA", "MKD", "TLS", "TGO", "TON", "TTO", "TUN", "TUR", "TKM", "TUV", "UGA", "UKR", "ARE", "GBR", "TZA", "USA", "URY", "UZB", "VUT", "VEN", "VNM", "YEM", "ZMB", "ZWE" ], "marker": { "line": { "color": "rgb(255,255,255)", "width": 2 } }, "text": [ "Stát: Afghanistan
Počet litrů čístého lihu na osobu ročně: 0.0", "Stát: Albania
Počet litrů čístého lihu na osobu ročně: 4.9", "Stát: Algeria
Počet litrů čístého lihu na osobu ročně: 0.7", "Stát: Andorra
Počet litrů čístého lihu na osobu ročně: 12.4", "Stát: Angola
Počet litrů čístého lihu na osobu ročně: 5.9", "Stát: Antigua and Barbuda
Počet litrů čístého lihu na osobu ročně: 4.9", "Stát: Argentina
Počet litrů čístého lihu na osobu ročně: 8.3", "Stát: Armenia
Počet litrů čístého lihu na osobu ročně: 3.8", "Stát: Australia
Počet litrů čístého lihu na osobu ročně: 10.4", "Stát: Austria
Počet litrů čístého lihu na osobu ročně: 9.7", "Stát: Azerbaijan
Počet litrů čístého lihu na osobu ročně: 1.3", "Stát: Bahamas
Počet litrů čístého lihu na osobu ročně: 6.3", "Stát: Bahrain
Počet litrů čístého lihu na osobu ročně: 2.0", "Stát: Bangladesh
Počet litrů čístého lihu na osobu ročně: 0.0", "Stát: Barbados
Počet litrů čístého lihu na osobu ročně: 6.3", "Stát: Belarus
Počet litrů čístého lihu na osobu ročně: 14.4", "Stát: Belgium
Počet litrů čístého lihu na osobu ročně: 10.5", "Stát: Belize
Počet litrů čístého lihu na osobu ročně: 6.8", "Stát: Benin
Počet litrů čístého lihu na osobu ročně: 1.1", "Stát: Bhutan
Počet litrů čístého lihu na osobu ročně: 0.4", "Stát: Bolivia
Počet litrů čístého lihu na osobu ročně: 3.8", "Stát: Bosnia and Herzegovina
Počet litrů čístého lihu na osobu ročně: 4.6", "Stát: Botswana
Počet litrů čístého lihu na osobu ročně: 5.4", "Stát: Brazil
Počet litrů čístého lihu na osobu ročně: 7.2", "Stát: Brunei Darussalam
Počet litrů čístého lihu na osobu ročně: 0.6", "Stát: Bulgaria
Počet litrů čístého lihu na osobu ročně: 10.3", "Stát: Burkina Faso
Počet litrů čístého lihu na osobu ročně: 4.3", "Stát: Burundi
Počet litrů čístého lihu na osobu ročně: 6.3", "Stát: Cote d'Ivoire
Počet litrů čístého lihu na osobu ročně: 4.0", "Stát: Cape Verde
Počet litrů čístého lihu na osobu ročně: 4.0", "Stát: Cambodia
Počet litrů čístého lihu na osobu ročně: 2.2", "Stát: Cameroon
Počet litrů čístého lihu na osobu ročně: 5.8", "Stát: Canada
Počet litrů čístého lihu na osobu ročně: 8.2", "Stát: Central African Republic
Počet litrů čístého lihu na osobu ročně: 1.8", "Stát: Chad
Počet litrů čístého lihu na osobu ročně: 0.4", "Stát: Chile
Počet litrů čístého lihu na osobu ročně: 7.6", "Stát: China
Počet litrů čístého lihu na osobu ročně: 5.0", "Stát: Colombia
Počet litrů čístého lihu na osobu ročně: 4.2", "Stát: Comoros
Počet litrů čístého lihu na osobu ročně: 0.1", "Stát: Republic of Congo
Počet litrů čístého lihu na osobu ročně: 1.7", "Stát: Cook Islands
Počet litrů čístého lihu na osobu ročně: 5.9", "Stát: Costa Rica
Počet litrů čístého lihu na osobu ročně: 4.4", "Stát: Croatia
Počet litrů čístého lihu na osobu ročně: 10.2", "Stát: Cuba
Počet litrů čístého lihu na osobu ročně: 4.2", "Stát: Cyprus
Počet litrů čístého lihu na osobu ročně: 8.2", "Stát: Czech Republic
Počet litrů čístého lihu na osobu ročně: 11.8", "Stát: North Korea
Počet litrů čístého lihu na osobu ročně: 0.0", "Stát: Democratic Republic of the Congo
Počet litrů čístého lihu na osobu ročně: 2.3", "Stát: Denmark
Počet litrů čístého lihu na osobu ročně: 10.4", "Stát: Djibouti
Počet litrů čístého lihu na osobu ročně: 1.1", "Stát: Dominica
Počet litrů čístého lihu na osobu ročně: 6.6", "Stát: Dominican Republic
Počet litrů čístého lihu na osobu ročně: 6.2", "Stát: Ecuador
Počet litrů čístého lihu na osobu ročně: 4.2", "Stát: Egypt
Počet litrů čístého lihu na osobu ročně: 0.2", "Stát: El Salvador
Počet litrů čístého lihu na osobu ročně: 2.2", "Stát: Equatorial Guinea
Počet litrů čístého lihu na osobu ročně: 5.8", "Stát: Eritrea
Počet litrů čístého lihu na osobu ročně: 0.5", "Stát: Estonia
Počet litrů čístého lihu na osobu ročně: 9.5", "Stát: Ethiopia
Počet litrů čístého lihu na osobu ročně: 0.7", "Stát: Fiji
Počet litrů čístého lihu na osobu ročně: 2.0", "Stát: Finland
Počet litrů čístého lihu na osobu ročně: 10.0", "Stát: France
Počet litrů čístého lihu na osobu ročně: 11.8", "Stát: Gabon
Počet litrů čístého lihu na osobu ročně: 8.9", "Stát: The Gambia
Počet litrů čístého lihu na osobu ročně: 2.4", "Stát: Georgia
Počet litrů čístého lihu na osobu ročně: 5.4", "Stát: Germany
Počet litrů čístého lihu na osobu ročně: 11.3", "Stát: Ghana
Počet litrů čístého lihu na osobu ročně: 1.8", "Stát: Greece
Počet litrů čístého lihu na osobu ročně: 8.3", "Stát: Grenada
Počet litrů čístého lihu na osobu ročně: 11.9", "Stát: Guatemala
Počet litrů čístého lihu na osobu ročně: 2.2", "Stát: Guinea
Počet litrů čístého lihu na osobu ročně: 0.2", "Stát: Guinea-Bissau
Počet litrů čístého lihu na osobu ročně: 2.5", "Stát: Guyana
Počet litrů čístého lihu na osobu ročně: 7.1", "Stát: Haiti
Počet litrů čístého lihu na osobu ročně: 5.9", "Stát: Honduras
Počet litrů čístého lihu na osobu ročně: 3.0", "Stát: Hungary
Počet litrů čístého lihu na osobu ročně: 11.3", "Stát: Iceland
Počet litrů čístého lihu na osobu ročně: 6.6", "Stát: India
Počet litrů čístého lihu na osobu ročně: 2.2", "Stát: Indonesia
Počet litrů čístého lihu na osobu ročně: 0.1", "Stát: Iran
Počet litrů čístého lihu na osobu ročně: 0.0", "Stát: Iraq
Počet litrů čístého lihu na osobu ročně: 0.2", "Stát: Ireland
Počet litrů čístého lihu na osobu ročně: 11.4", "Stát: Israel
Počet litrů čístého lihu na osobu ročně: 2.5", "Stát: Italy
Počet litrů čístého lihu na osobu ročně: 6.5", "Stát: Jamaica
Počet litrů čístého lihu na osobu ročně: 3.4", "Stát: Japan
Počet litrů čístého lihu na osobu ročně: 7.0", "Stát: Jordan
Počet litrů čístého lihu na osobu ročně: 0.5", "Stát: Kazakhstan
Počet litrů čístého lihu na osobu ročně: 6.8", "Stát: Kenya
Počet litrů čístého lihu na osobu ročně: 1.8", "Stát: Kiribati
Počet litrů čístého lihu na osobu ročně: 1.0", "Stát: Kuwait
Počet litrů čístého lihu na osobu ročně: 0.0", "Stát: Kyrgyzstan
Počet litrů čístého lihu na osobu ročně: 2.4", "Stát: Laos
Počet litrů čístého lihu na osobu ročně: 6.2", "Stát: Latvia
Počet litrů čístého lihu na osobu ročně: 10.5", "Stát: Lebanon
Počet litrů čístého lihu na osobu ročně: 1.9", "Stát: Lesotho
Počet litrů čístého lihu na osobu ročně: 2.8", "Stát: Liberia
Počet litrů čístého lihu na osobu ročně: 3.1", "Stát: Libya
Počet litrů čístého lihu na osobu ročně: 0.0", "Stát: Lithuania
Počet litrů čístého lihu na osobu ročně: 12.9", "Stát: Luxembourg
Počet litrů čístého lihu na osobu ročně: 11.4", "Stát: Madagascar
Počet litrů čístého lihu na osobu ročně: 0.8", "Stát: Malawi
Počet litrů čístého lihu na osobu ročně: 1.5", "Stát: Malaysia
Počet litrů čístého lihu na osobu ročně: 0.3", "Stát: Maldives
Počet litrů čístého lihu na osobu ročně: 0.0", "Stát: Mali
Počet litrů čístého lihu na osobu ročně: 0.6", "Stát: Malta
Počet litrů čístého lihu na osobu ročně: 6.6", "Stát: Marshall Islands
Počet litrů čístého lihu na osobu ročně: 0.0", "Stát: Mauritania
Počet litrů čístého lihu na osobu ročně: 0.0", "Stát: Mauritius
Počet litrů čístého lihu na osobu ročně: 2.6", "Stát: Mexico
Počet litrů čístého lihu na osobu ročně: 5.5", "Stát: Federated States of Micronesia
Počet litrů čístého lihu na osobu ročně: 2.3", "Stát: Monaco
Počet litrů čístého lihu na osobu ročně: 0.0", "Stát: Mongolia
Počet litrů čístého lihu na osobu ročně: 4.9", "Stát: Montenegro
Počet litrů čístého lihu na osobu ročně: 4.9", "Stát: Morocco
Počet litrů čístého lihu na osobu ročně: 0.5", "Stát: Mozambique
Počet litrů čístého lihu na osobu ročně: 1.3", "Stát: Myanmar
Počet litrů čístého lihu na osobu ročně: 0.1", "Stát: Namibia
Počet litrů čístého lihu na osobu ročně: 6.8", "Stát: Nauru
Počet litrů čístého lihu na osobu ročně: 1.0", "Stát: Nepal
Počet litrů čístého lihu na osobu ročně: 0.2", "Stát: Netherlands
Počet litrů čístého lihu na osobu ročně: 9.4", "Stát: New Zealand
Počet litrů čístého lihu na osobu ročně: 9.3", "Stát: Nicaragua
Počet litrů čístého lihu na osobu ročně: 3.5", "Stát: Niger
Počet litrů čístého lihu na osobu ročně: 0.1", "Stát: Nigeria
Počet litrů čístého lihu na osobu ročně: 9.1", "Stát: Niue
Počet litrů čístého lihu na osobu ročně: 7.0", "Stát: Norway
Počet litrů čístého lihu na osobu ročně: 6.7", "Stát: Oman
Počet litrů čístého lihu na osobu ročně: 0.7", "Stát: Pakistan
Počet litrů čístého lihu na osobu ročně: 0.0", "Stát: Palau
Počet litrů čístého lihu na osobu ročně: 6.9", "Stát: Panama
Počet litrů čístého lihu na osobu ročně: 7.2", "Stát: Papua New Guinea
Počet litrů čístého lihu na osobu ročně: 1.5", "Stát: Paraguay
Počet litrů čístého lihu na osobu ročně: 7.3", "Stát: Peru
Počet litrů čístého lihu na osobu ročně: 6.1", "Stát: Philippines
Počet litrů čístého lihu na osobu ročně: 4.6", "Stát: Poland
Počet litrů čístého lihu na osobu ročně: 10.9", "Stát: Portugal
Počet litrů čístého lihu na osobu ročně: 11.0", "Stát: Qatar
Počet litrů čístého lihu na osobu ročně: 0.9", "Stát: South Korea
Počet litrů čístého lihu na osobu ročně: 9.8", "Stát: Moldova
Počet litrů čístého lihu na osobu ročně: 6.3", "Stát: Romania
Počet litrů čístého lihu na osobu ročně: 10.4", "Stát: Russia
Počet litrů čístého lihu na osobu ročně: 11.5", "Stát: Rwanda
Počet litrů čístého lihu na osobu ročně: 6.8", "Stát: Saint Kitts and Nevis
Počet litrů čístého lihu na osobu ročně: 7.7", "Stát: Saint Lucia
Počet litrů čístého lihu na osobu ročně: 10.1", "Stát: Saint Vincent and the Grenadines
Počet litrů čístého lihu na osobu ročně: 6.3", "Stát: Samoa
Počet litrů čístého lihu na osobu ročně: 2.6", "Stát: San Marino
Počet litrů čístého lihu na osobu ročně: 0.0", "Stát: Sao Tome and Principe
Počet litrů čístého lihu na osobu ročně: 4.2", "Stát: Saudi Arabia
Počet litrů čístého lihu na osobu ročně: 0.1", "Stát: Senegal
Počet litrů čístého lihu na osobu ročně: 0.3", "Stát: Serbia
Počet litrů čístého lihu na osobu ročně: 9.6", "Stát: Seychelles
Počet litrů čístého lihu na osobu ročně: 4.1", "Stát: Sierra Leone
Počet litrů čístého lihu na osobu ročně: 6.7", "Stát: Singapore
Počet litrů čístého lihu na osobu ročně: 1.5", "Stát: Slovakia
Počet litrů čístého lihu na osobu ročně: 11.4", "Stát: Slovenia
Počet litrů čístého lihu na osobu ročně: 10.6", "Stát: Solomon Islands
Počet litrů čístého lihu na osobu ročně: 1.2", "Stát: Somalia
Počet litrů čístého lihu na osobu ročně: 0.0", "Stát: South Africa
Počet litrů čístého lihu na osobu ročně: 8.2", "Stát: Spain
Počet litrů čístého lihu na osobu ročně: 10.0", "Stát: Sri Lanka
Počet litrů čístého lihu na osobu ročně: 2.2", "Stát: Sudan
Počet litrů čístého lihu na osobu ročně: 1.7", "Stát: Suriname
Počet litrů čístého lihu na osobu ročně: 5.6", "Stát: Swaziland
Počet litrů čístého lihu na osobu ročně: 4.7", "Stát: Sweden
Počet litrů čístého lihu na osobu ročně: 7.2", "Stát: Switzerland
Počet litrů čístého lihu na osobu ročně: 10.2", "Stát: Syria
Počet litrů čístého lihu na osobu ročně: 1.0", "Stát: Tajikistan
Počet litrů čístého lihu na osobu ročně: 0.3", "Stát: Thailand
Počet litrů čístého lihu na osobu ročně: 6.4", "Stát: Macedonia
Počet litrů čístého lihu na osobu ročně: 3.9", "Stát: Timor-Leste
Počet litrů čístého lihu na osobu ročně: 0.1", "Stát: Togo
Počet litrů čístého lihu na osobu ročně: 1.3", "Stát: Tonga
Počet litrů čístého lihu na osobu ročně: 1.1", "Stát: Trinidad and Tobago
Počet litrů čístého lihu na osobu ročně: 6.4", "Stát: Tunisia
Počet litrů čístého lihu na osobu ročně: 1.3", "Stát: Turkey
Počet litrů čístého lihu na osobu ročně: 1.4", "Stát: Turkmenistan
Počet litrů čístého lihu na osobu ročně: 2.2", "Stát: Tuvalu
Počet litrů čístého lihu na osobu ročně: 1.0", "Stát: Uganda
Počet litrů čístého lihu na osobu ročně: 8.3", "Stát: Ukraine
Počet litrů čístého lihu na osobu ročně: 8.9", "Stát: United Arab Emirates
Počet litrů čístého lihu na osobu ročně: 2.8", "Stát: United Kingdom
Počet litrů čístého lihu na osobu ročně: 10.4", "Stát: Tanzania
Počet litrů čístého lihu na osobu ročně: 5.7", "Stát: United States
Počet litrů čístého lihu na osobu ročně: 8.7", "Stát: Uruguay
Počet litrů čístého lihu na osobu ročně: 6.6", "Stát: Uzbekistan
Počet litrů čístého lihu na osobu ročně: 2.4", "Stát: Vanuatu
Počet litrů čístého lihu na osobu ročně: 0.9", "Stát: Venezuela
Počet litrů čístého lihu na osobu ročně: 7.7", "Stát: Vietnam
Počet litrů čístého lihu na osobu ročně: 2.0", "Stát: Yemen
Počet litrů čístého lihu na osobu ročně: 0.1", "Stát: Zambia
Počet litrů čístého lihu na osobu ročně: 2.5", "Stát: Zimbabwe
Počet litrů čístého lihu na osobu ročně: 4.7" ], "type": "choropleth", "uid": "6c2e45b9-ef33-4951-8451-3b57007f1265", "z": [ 0, 4.9, 0.7, 12.4, 5.9, 4.9, 8.3, 3.8, 10.4, 9.7, 1.3, 6.3, 2, 0, 6.3, 14.4, 10.5, 6.8, 1.1, 0.4, 3.8, 4.6, 5.4, 7.2, 0.6, 10.3, 4.3, 6.3, 4, 4, 2.2, 5.8, 8.2, 1.8, 0.4, 7.6, 5, 4.2, 0.1, 1.7, 5.9, 4.4, 10.2, 4.2, 8.2, 11.8, 0, 2.3, 10.4, 1.1, 6.6, 6.2, 4.2, 0.2, 2.2, 5.8, 0.5, 9.5, 0.7, 2, 10, 11.8, 8.9, 2.4, 5.4, 11.3, 1.8, 8.3, 11.9, 2.2, 0.2, 2.5, 7.1, 5.9, 3, 11.3, 6.6, 2.2, 0.1, 0, 0.2, 11.4, 2.5, 6.5, 3.4, 7, 0.5, 6.8, 1.8, 1, 0, 2.4, 6.2, 10.5, 1.9, 2.8, 3.1, 0, 12.9, 11.4, 0.8, 1.5, 0.3, 0, 0.6, 6.6, 0, 0, 2.6, 5.5, 2.3, 0, 4.9, 4.9, 0.5, 1.3, 0.1, 6.8, 1, 0.2, 9.4, 9.3, 3.5, 0.1, 9.1, 7, 6.7, 0.7, 0, 6.9, 7.2, 1.5, 7.3, 6.1, 4.6, 10.9, 11, 0.9, 9.8, 6.3, 10.4, 11.5, 6.8, 7.7, 10.1, 6.3, 2.6, 0, 4.2, 0.1, 0.3, 9.6, 4.1, 6.7, 1.5, 11.4, 10.6, 1.2, 0, 8.2, 10, 2.2, 1.7, 5.6, 4.7, 7.2, 10.2, 1, 0.3, 6.4, 3.9, 0.1, 1.3, 1.1, 6.4, 1.3, 1.4, 2.2, 1, 8.3, 8.9, 2.8, 10.4, 5.7, 8.7, 6.6, 2.4, 0.9, 7.7, 2, 0.1, 2.5, 4.7 ] } ], "layout": { "autosize": false, "geo": { "projection": { "type": "mercator" }, "showcoastlines": false, "showframe": false }, "height": 900, "title": { "text": "Celková spotřeba alkoholu na osobu ročně" }, "width": 1000 } }, "text/html": [ "
" ], "text/vnd.plotly.v1+html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Vytvoříme seznam popisků\n", "text = []\n", "for i, row in result.iterrows():\n", " text.append(\n", " 'Stát: {}
Počet litrů čístého lihu na osobu ročně: {}'.format(row.country, row.total_litres_of_pure_alcohol)\n", " )\n", "# Pro vykreslení použijeme typ choropleth\n", "data = [ dict(\n", " type='choropleth',\n", " # Pro zobrazení použijeme hotovou barevnou škálu Jet\n", " colorscale='Jet',\n", " autocolorscale=False,\n", " locations=result2.country_code_3,\n", " z=result2.total_litres_of_pure_alcohol.astype(float),\n", " text=text,\n", " marker=dict(\n", " line=dict (\n", " color='rgb(255,255,255)',\n", " width=2\n", " ) ),\n", " # Popíšeme legendu\n", " colorbar=dict(\n", " title='Počet litrů čístého lihu na osobu ročně',\n", " # Následující parametry nastavují poměr délky legendy k obrázku a její pozici\n", " len=0.6,\n", " y=0.65\n", " )\n", " ) ]\n", " \n", "# Pro vykreslení celého světa použijeme typ projekce Mercator\n", "layout = dict(\n", " autosize=False,\n", " width=1000,\n", " height=900,\n", " title='Celková spotřeba alkoholu na osobu ročně',\n", " geo=dict(\n", " showframe=False,\n", " showcoastlines=False,\n", " projection=dict(\n", " type='mercator'\n", " )\n", " )\n", ")\n", "\n", "fig = dict(data=data, layout=layout)\n", "iplot(fig)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Cvičení\n", "\n", "Budeme používat data o výskytu tuberkulózy ze [světové zdravotnické organizace](https://www.who.int/tb/country/data/download/en/).\n", "\n", "- Načtěte data [`tuberculosis.csv`](tuberculosis.csv), [popis dat](tuberculosis_description.csv).\n", "- Vykreslete na mapě počet umrtí na tuberkulózu (`e_mort_num`).\n", "- Ke každému bodu vytvořte popisek obsahující název země a počet umrtí na tuberkulózu.\n", "- Pokud zbyde čas, transformujte data tak, abyste dosáhli co největšího barevného rozlišení (parametr `z`)." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Barevná škála\n", "\n", "[Tutoriál](https://plot.ly/python/colorscales/)\n", "\n", "[Tutoriál](https://plot.ly/ipython-notebooks/color-scales/)\n" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [], "source": [ "# Vytvoříme barevnou škálu, kde první hodnota je minimální hodnota v procentech mezi min a max a \n", "# druhá je HEX hodnota barvy\n", "scl = [[0.0, '#ffffff'],[0.2, '#ffb2b2'],[0.4, '#ff7f7f'],[0.6, '#ff4c4c'],[0.8, '#ff1919'],[1.0, '#b20000']]" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "linkText": "Export to plot.ly", "plotlyServerURL": "https://plot.ly", "showLink": false }, "data": [ { "marker": { "color": [ 3, 11, 3, 5, 18, 30, 8, 7, 9, 6, 18, 52, 3, 3, 31, 25, 8, 4, 5, 65, 5, 3, 4, 5, 6, 3, 4, 11, 15, 2, 18, 17, 10, 34, 10, 3, 4, 19, 2, 6, 8, 23, 6, 32, 3, 7, 2, 15, 6, 17, 19, 71, 24, 6, 10, 4 ], "colorscale": [ [ 0, "#ffffff" ], [ 0.2, "#ffb2b2" ], [ 0.4, "#ff7f7f" ], [ 0.6, "#ff4c4c" ], [ 0.8, "#ff1919" ], [ 1, "#b20000" ] ], "showscale": true, "size": 10 }, "mode": "markers", "text": [ "Aerolinka: Aer Lingus
Počet místo kilometrů týdně: 3*10^8", "Aerolinka: Aeroflot*
Počet místo kilometrů týdně: 11*10^8", "Aerolinka: Aerolineas Argentinas
Počet místo kilometrů týdně: 3*10^8", "Aerolinka: Aeromexico*
Počet místo kilometrů týdně: 5*10^8", "Aerolinka: Air Canada
Počet místo kilometrů týdně: 18*10^8", "Aerolinka: Air France
Počet místo kilometrů týdně: 30*10^8", "Aerolinka: Air India*
Počet místo kilometrů týdně: 8*10^8", "Aerolinka: Air New Zealand*
Počet místo kilometrů týdně: 7*10^8", "Aerolinka: Alaska Airlines*
Počet místo kilometrů týdně: 9*10^8", "Aerolinka: Alitalia
Počet místo kilometrů týdně: 6*10^8", "Aerolinka: All Nippon Airways
Počet místo kilometrů týdně: 18*10^8", "Aerolinka: American*
Počet místo kilometrů týdně: 52*10^8", "Aerolinka: Austrian Airlines
Počet místo kilometrů týdně: 3*10^8", "Aerolinka: Avianca
Počet místo kilometrů týdně: 3*10^8", "Aerolinka: British Airways*
Počet místo kilometrů týdně: 31*10^8", "Aerolinka: Cathay Pacific*
Počet místo kilometrů týdně: 25*10^8", "Aerolinka: China Airlines
Počet místo kilometrů týdně: 8*10^8", "Aerolinka: Condor
Počet místo kilometrů týdně: 4*10^8", "Aerolinka: COPA
Počet místo kilometrů týdně: 5*10^8", "Aerolinka: Delta / Northwest*
Počet místo kilometrů týdně: 65*10^8", "Aerolinka: Egyptair
Počet místo kilometrů týdně: 5*10^8", "Aerolinka: El Al
Počet místo kilometrů týdně: 3*10^8", "Aerolinka: Ethiopian Airlines
Počet místo kilometrů týdně: 4*10^8", "Aerolinka: Finnair
Počet místo kilometrů týdně: 5*10^8", "Aerolinka: Garuda Indonesia
Počet místo kilometrů týdně: 6*10^8", "Aerolinka: Gulf Air
Počet místo kilometrů týdně: 3*10^8", "Aerolinka: Hawaiian Airlines
Počet místo kilometrů týdně: 4*10^8", "Aerolinka: Iberia
Počet místo kilometrů týdně: 11*10^8", "Aerolinka: Japan Airlines
Počet místo kilometrů týdně: 15*10^8", "Aerolinka: Kenya Airways
Počet místo kilometrů týdně: 2*10^8", "Aerolinka: KLM*
Počet místo kilometrů týdně: 18*10^8", "Aerolinka: Korean Air
Počet místo kilometrů týdně: 17*10^8", "Aerolinka: LAN Airlines
Počet místo kilometrů týdně: 10*10^8", "Aerolinka: Lufthansa*
Počet místo kilometrů týdně: 34*10^8", "Aerolinka: Malaysia Airlines
Počet místo kilometrů týdně: 10*10^8", "Aerolinka: Pakistan International
Počet místo kilometrů týdně: 3*10^8", "Aerolinka: Philippine Airlines
Počet místo kilometrů týdně: 4*10^8", "Aerolinka: Qantas*
Počet místo kilometrů týdně: 19*10^8", "Aerolinka: Royal Air Maroc
Počet místo kilometrů týdně: 2*10^8", "Aerolinka: SAS*
Počet místo kilometrů týdně: 6*10^8", "Aerolinka: Saudi Arabian
Počet místo kilometrů týdně: 8*10^8", "Aerolinka: Singapore Airlines
Počet místo kilometrů týdně: 23*10^8", "Aerolinka: South African
Počet místo kilometrů týdně: 6*10^8", "Aerolinka: Southwest Airlines
Počet místo kilometrů týdně: 32*10^8", "Aerolinka: Sri Lankan / AirLanka
Počet místo kilometrů týdně: 3*10^8", "Aerolinka: SWISS*
Počet místo kilometrů týdně: 7*10^8", "Aerolinka: TACA
Počet místo kilometrů týdně: 2*10^8", "Aerolinka: TAM
Počet místo kilometrů týdně: 15*10^8", "Aerolinka: TAP - Air Portugal
Počet místo kilometrů týdně: 6*10^8", "Aerolinka: Thai Airways
Počet místo kilometrů týdně: 17*10^8", "Aerolinka: Turkish Airlines
Počet místo kilometrů týdně: 19*10^8", "Aerolinka: United / Continental*
Počet místo kilometrů týdně: 71*10^8", "Aerolinka: US Airways / America West*
Počet místo kilometrů týdně: 24*10^8", "Aerolinka: Vietnam Airlines
Počet místo kilometrů týdně: 6*10^8", "Aerolinka: Virgin Atlantic
Počet místo kilometrů týdně: 10*10^8", "Aerolinka: Xiamen Airlines
Počet místo kilometrů týdně: 4*10^8" ], "type": "scatter", "uid": "fbe6fef5-9650-4902-b50e-08b16bf18a21", "x": [ 0, 6, 1, 5, 2, 6, 4, 5, 5, 4, 7, 17, 1, 0, 6, 2, 2, 0, 0, 24, 4, 1, 5, 0, 4, 3, 1, 5, 0, 2, 1, 1, 0, 3, 3, 10, 2, 5, 3, 6, 11, 2, 1, 8, 4, 3, 1, 7, 0, 2, 8, 14, 11, 1, 0, 2 ], "y": [ 0, 88, 0, 0, 0, 337, 158, 7, 88, 0, 0, 416, 0, 0, 0, 0, 225, 0, 0, 51, 14, 0, 92, 0, 22, 143, 0, 0, 0, 283, 0, 0, 0, 0, 537, 46, 1, 0, 0, 110, 0, 83, 0, 0, 0, 0, 3, 188, 0, 1, 84, 109, 23, 0, 0, 0 ] } ], "layout": { "hovermode": "closest", "title": { "text": "Letová bezpečnost 2000 - 2014" }, "xaxis": { "title": { "text": "Počet incidentů" } }, "yaxis": { "title": { "text": "Počet incidentů s fatálními následky" } } } }, "text/html": [ "
" ], "text/vnd.plotly.v1+html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Pro bodový graf použijeme object Scatter a parametr mode nastavíme na 'markers'\n", "hover_text = []\n", "for index, row in airline.iterrows():\n", " hover_text.append(('Aerolinka: {}
' + 'Počet místo kilometrů týdně: {}*10^8').format(\n", " row.airline, row.avail_seat_km_per_week//10**8)\n", ")\n", "trace = go.Scatter(\n", " x=airline.incidents_00_14,\n", " y=airline.fatalities_00_14,\n", " mode='markers',\n", " text=hover_text,\n", " marker=dict(size=10, color=airline.avail_seat_km_per_week//10**8, \n", " colorscale=scl, showscale=True),\n", ")\n", "data = [trace]\n", "layout = dict(title='Letová bezpečnost 2000 - 2014',\n", " xaxis=dict(title='Počet incidentů'),\n", " yaxis=dict(title='Počet incidentů s fatálními následky'),\n", " hovermode='closest'\n", ")\n", "fig = dict(data=data, layout=layout)\n", "iplot(fig)" ] }, { "cell_type": "code", "execution_count": 61, "metadata": {}, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "linkText": "Export to plot.ly", "plotlyServerURL": "https://plot.ly", "showLink": false }, "data": [ { "marker": { "color": [ 3, 11, 3, 5, 18, 30, 8, 7, 9, 6, 18, 52, 3, 3, 31, 25, 8, 4, 5, 65, 5, 3, 4, 5, 6, 3, 4, 11, 15, 2, 18, 17, 10, 34, 10, 3, 4, 19, 2, 6, 8, 23, 6, 32, 3, 7, 2, 15, 6, 17, 19, 71, 24, 6, 10, 4 ], "colorscale": "Jet", "showscale": true, "size": 10 }, "mode": "markers", "text": [ "Aerolinka: Aer Lingus
Počet místo kilometrů týdně: 3*10^8", "Aerolinka: Aeroflot*
Počet místo kilometrů týdně: 11*10^8", "Aerolinka: Aerolineas Argentinas
Počet místo kilometrů týdně: 3*10^8", "Aerolinka: Aeromexico*
Počet místo kilometrů týdně: 5*10^8", "Aerolinka: Air Canada
Počet místo kilometrů týdně: 18*10^8", "Aerolinka: Air France
Počet místo kilometrů týdně: 30*10^8", "Aerolinka: Air India*
Počet místo kilometrů týdně: 8*10^8", "Aerolinka: Air New Zealand*
Počet místo kilometrů týdně: 7*10^8", "Aerolinka: Alaska Airlines*
Počet místo kilometrů týdně: 9*10^8", "Aerolinka: Alitalia
Počet místo kilometrů týdně: 6*10^8", "Aerolinka: All Nippon Airways
Počet místo kilometrů týdně: 18*10^8", "Aerolinka: American*
Počet místo kilometrů týdně: 52*10^8", "Aerolinka: Austrian Airlines
Počet místo kilometrů týdně: 3*10^8", "Aerolinka: Avianca
Počet místo kilometrů týdně: 3*10^8", "Aerolinka: British Airways*
Počet místo kilometrů týdně: 31*10^8", "Aerolinka: Cathay Pacific*
Počet místo kilometrů týdně: 25*10^8", "Aerolinka: China Airlines
Počet místo kilometrů týdně: 8*10^8", "Aerolinka: Condor
Počet místo kilometrů týdně: 4*10^8", "Aerolinka: COPA
Počet místo kilometrů týdně: 5*10^8", "Aerolinka: Delta / Northwest*
Počet místo kilometrů týdně: 65*10^8", "Aerolinka: Egyptair
Počet místo kilometrů týdně: 5*10^8", "Aerolinka: El Al
Počet místo kilometrů týdně: 3*10^8", "Aerolinka: Ethiopian Airlines
Počet místo kilometrů týdně: 4*10^8", "Aerolinka: Finnair
Počet místo kilometrů týdně: 5*10^8", "Aerolinka: Garuda Indonesia
Počet místo kilometrů týdně: 6*10^8", "Aerolinka: Gulf Air
Počet místo kilometrů týdně: 3*10^8", "Aerolinka: Hawaiian Airlines
Počet místo kilometrů týdně: 4*10^8", "Aerolinka: Iberia
Počet místo kilometrů týdně: 11*10^8", "Aerolinka: Japan Airlines
Počet místo kilometrů týdně: 15*10^8", "Aerolinka: Kenya Airways
Počet místo kilometrů týdně: 2*10^8", "Aerolinka: KLM*
Počet místo kilometrů týdně: 18*10^8", "Aerolinka: Korean Air
Počet místo kilometrů týdně: 17*10^8", "Aerolinka: LAN Airlines
Počet místo kilometrů týdně: 10*10^8", "Aerolinka: Lufthansa*
Počet místo kilometrů týdně: 34*10^8", "Aerolinka: Malaysia Airlines
Počet místo kilometrů týdně: 10*10^8", "Aerolinka: Pakistan International
Počet místo kilometrů týdně: 3*10^8", "Aerolinka: Philippine Airlines
Počet místo kilometrů týdně: 4*10^8", "Aerolinka: Qantas*
Počet místo kilometrů týdně: 19*10^8", "Aerolinka: Royal Air Maroc
Počet místo kilometrů týdně: 2*10^8", "Aerolinka: SAS*
Počet místo kilometrů týdně: 6*10^8", "Aerolinka: Saudi Arabian
Počet místo kilometrů týdně: 8*10^8", "Aerolinka: Singapore Airlines
Počet místo kilometrů týdně: 23*10^8", "Aerolinka: South African
Počet místo kilometrů týdně: 6*10^8", "Aerolinka: Southwest Airlines
Počet místo kilometrů týdně: 32*10^8", "Aerolinka: Sri Lankan / AirLanka
Počet místo kilometrů týdně: 3*10^8", "Aerolinka: SWISS*
Počet místo kilometrů týdně: 7*10^8", "Aerolinka: TACA
Počet místo kilometrů týdně: 2*10^8", "Aerolinka: TAM
Počet místo kilometrů týdně: 15*10^8", "Aerolinka: TAP - Air Portugal
Počet místo kilometrů týdně: 6*10^8", "Aerolinka: Thai Airways
Počet místo kilometrů týdně: 17*10^8", "Aerolinka: Turkish Airlines
Počet místo kilometrů týdně: 19*10^8", "Aerolinka: United / Continental*
Počet místo kilometrů týdně: 71*10^8", "Aerolinka: US Airways / America West*
Počet místo kilometrů týdně: 24*10^8", "Aerolinka: Vietnam Airlines
Počet místo kilometrů týdně: 6*10^8", "Aerolinka: Virgin Atlantic
Počet místo kilometrů týdně: 10*10^8", "Aerolinka: Xiamen Airlines
Počet místo kilometrů týdně: 4*10^8" ], "type": "scatter", "uid": "1134af3a-1056-43a8-8364-46be9d1843f5", "x": [ 0, 6, 1, 5, 2, 6, 4, 5, 5, 4, 7, 17, 1, 0, 6, 2, 2, 0, 0, 24, 4, 1, 5, 0, 4, 3, 1, 5, 0, 2, 1, 1, 0, 3, 3, 10, 2, 5, 3, 6, 11, 2, 1, 8, 4, 3, 1, 7, 0, 2, 8, 14, 11, 1, 0, 2 ], "y": [ 0, 88, 0, 0, 0, 337, 158, 7, 88, 0, 0, 416, 0, 0, 0, 0, 225, 0, 0, 51, 14, 0, 92, 0, 22, 143, 0, 0, 0, 283, 0, 0, 0, 0, 537, 46, 1, 0, 0, 110, 0, 83, 0, 0, 0, 0, 3, 188, 0, 1, 84, 109, 23, 0, 0, 0 ] } ], "layout": { "hovermode": "closest", "title": { "text": "Letová bezpečnost 2000 - 2014" }, "xaxis": { "title": { "text": "Počet incidentů" } }, "yaxis": { "title": { "text": "Počet incidentů s fatálními následky" } } } }, "text/html": [ "
" ], "text/vnd.plotly.v1+html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Pro bodový graf použijeme object Scatter a parametr mode nastavíme na 'markers'\n", "hover_text = []\n", "for index, row in airline.iterrows():\n", " hover_text.append(('Aerolinka: {}
' + 'Počet místo kilometrů týdně: {}*10^8').format(\n", " row.airline, row.avail_seat_km_per_week//10**8)\n", ")\n", "trace = go.Scatter(\n", " x=airline.incidents_00_14,\n", " y=airline.fatalities_00_14,\n", " mode='markers',\n", " text=hover_text,\n", " marker=dict(size=10, color=airline.avail_seat_km_per_week//10**8, \n", " colorscale='Jet', showscale=True),\n", ")\n", "data = [trace]\n", "layout = dict(title='Letová bezpečnost 2000 - 2014',\n", " xaxis=dict(title='Počet incidentů'),\n", " yaxis=dict(title='Počet incidentů s fatálními následky'),\n", " hovermode='closest'\n", ")\n", "fig = dict(data=data, layout=layout)\n", "iplot(fig)" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "linkText": "Export to plot.ly", "plotlyServerURL": "https://plot.ly", "showLink": false }, "data": [ { "marker": { "size": [ 3, 11, 3, 5, 18, 30, 8, 7, 9, 6, 18, 52, 3, 3, 31, 25, 8, 4, 5, 65, 5, 3, 4, 5, 6, 3, 4, 11, 15, 2, 18, 17, 10, 34, 10, 3, 4, 19, 2, 6, 8, 23, 6, 32, 3, 7, 2, 15, 6, 17, 19, 71, 24, 6, 10, 4 ] }, "mode": "markers", "text": [ "Aerolinka: Aer Lingus
Počet místo kilometrů týdně: 3*10^8", "Aerolinka: Aeroflot*
Počet místo kilometrů týdně: 11*10^8", "Aerolinka: Aerolineas Argentinas
Počet místo kilometrů týdně: 3*10^8", "Aerolinka: Aeromexico*
Počet místo kilometrů týdně: 5*10^8", "Aerolinka: Air Canada
Počet místo kilometrů týdně: 18*10^8", "Aerolinka: Air France
Počet místo kilometrů týdně: 30*10^8", "Aerolinka: Air India*
Počet místo kilometrů týdně: 8*10^8", "Aerolinka: Air New Zealand*
Počet místo kilometrů týdně: 7*10^8", "Aerolinka: Alaska Airlines*
Počet místo kilometrů týdně: 9*10^8", "Aerolinka: Alitalia
Počet místo kilometrů týdně: 6*10^8", "Aerolinka: All Nippon Airways
Počet místo kilometrů týdně: 18*10^8", "Aerolinka: American*
Počet místo kilometrů týdně: 52*10^8", "Aerolinka: Austrian Airlines
Počet místo kilometrů týdně: 3*10^8", "Aerolinka: Avianca
Počet místo kilometrů týdně: 3*10^8", "Aerolinka: British Airways*
Počet místo kilometrů týdně: 31*10^8", "Aerolinka: Cathay Pacific*
Počet místo kilometrů týdně: 25*10^8", "Aerolinka: China Airlines
Počet místo kilometrů týdně: 8*10^8", "Aerolinka: Condor
Počet místo kilometrů týdně: 4*10^8", "Aerolinka: COPA
Počet místo kilometrů týdně: 5*10^8", "Aerolinka: Delta / Northwest*
Počet místo kilometrů týdně: 65*10^8", "Aerolinka: Egyptair
Počet místo kilometrů týdně: 5*10^8", "Aerolinka: El Al
Počet místo kilometrů týdně: 3*10^8", "Aerolinka: Ethiopian Airlines
Počet místo kilometrů týdně: 4*10^8", "Aerolinka: Finnair
Počet místo kilometrů týdně: 5*10^8", "Aerolinka: Garuda Indonesia
Počet místo kilometrů týdně: 6*10^8", "Aerolinka: Gulf Air
Počet místo kilometrů týdně: 3*10^8", "Aerolinka: Hawaiian Airlines
Počet místo kilometrů týdně: 4*10^8", "Aerolinka: Iberia
Počet místo kilometrů týdně: 11*10^8", "Aerolinka: Japan Airlines
Počet místo kilometrů týdně: 15*10^8", "Aerolinka: Kenya Airways
Počet místo kilometrů týdně: 2*10^8", "Aerolinka: KLM*
Počet místo kilometrů týdně: 18*10^8", "Aerolinka: Korean Air
Počet místo kilometrů týdně: 17*10^8", "Aerolinka: LAN Airlines
Počet místo kilometrů týdně: 10*10^8", "Aerolinka: Lufthansa*
Počet místo kilometrů týdně: 34*10^8", "Aerolinka: Malaysia Airlines
Počet místo kilometrů týdně: 10*10^8", "Aerolinka: Pakistan International
Počet místo kilometrů týdně: 3*10^8", "Aerolinka: Philippine Airlines
Počet místo kilometrů týdně: 4*10^8", "Aerolinka: Qantas*
Počet místo kilometrů týdně: 19*10^8", "Aerolinka: Royal Air Maroc
Počet místo kilometrů týdně: 2*10^8", "Aerolinka: SAS*
Počet místo kilometrů týdně: 6*10^8", "Aerolinka: Saudi Arabian
Počet místo kilometrů týdně: 8*10^8", "Aerolinka: Singapore Airlines
Počet místo kilometrů týdně: 23*10^8", "Aerolinka: South African
Počet místo kilometrů týdně: 6*10^8", "Aerolinka: Southwest Airlines
Počet místo kilometrů týdně: 32*10^8", "Aerolinka: Sri Lankan / AirLanka
Počet místo kilometrů týdně: 3*10^8", "Aerolinka: SWISS*
Počet místo kilometrů týdně: 7*10^8", "Aerolinka: TACA
Počet místo kilometrů týdně: 2*10^8", "Aerolinka: TAM
Počet místo kilometrů týdně: 15*10^8", "Aerolinka: TAP - Air Portugal
Počet místo kilometrů týdně: 6*10^8", "Aerolinka: Thai Airways
Počet místo kilometrů týdně: 17*10^8", "Aerolinka: Turkish Airlines
Počet místo kilometrů týdně: 19*10^8", "Aerolinka: United / Continental*
Počet místo kilometrů týdně: 71*10^8", "Aerolinka: US Airways / America West*
Počet místo kilometrů týdně: 24*10^8", "Aerolinka: Vietnam Airlines
Počet místo kilometrů týdně: 6*10^8", "Aerolinka: Virgin Atlantic
Počet místo kilometrů týdně: 10*10^8", "Aerolinka: Xiamen Airlines
Počet místo kilometrů týdně: 4*10^8" ], "type": "scatter", "uid": "8fbe462e-d6c7-41f0-8c04-8719fdaa5328", "x": [ 0, 6, 1, 5, 2, 6, 4, 5, 5, 4, 7, 17, 1, 0, 6, 2, 2, 0, 0, 24, 4, 1, 5, 0, 4, 3, 1, 5, 0, 2, 1, 1, 0, 3, 3, 10, 2, 5, 3, 6, 11, 2, 1, 8, 4, 3, 1, 7, 0, 2, 8, 14, 11, 1, 0, 2 ], "y": [ 0, 88, 0, 0, 0, 337, 158, 7, 88, 0, 0, 416, 0, 0, 0, 0, 225, 0, 0, 51, 14, 0, 92, 0, 22, 143, 0, 0, 0, 283, 0, 0, 0, 0, 537, 46, 1, 0, 0, 110, 0, 83, 0, 0, 0, 0, 3, 188, 0, 1, 84, 109, 23, 0, 0, 0 ] } ], "layout": { "hovermode": "closest", "title": { "text": "Letová bezpečnost 2000 - 2014
Velikost bodů představuje počet místo kilometrů týdně" }, "xaxis": { "title": { "text": "Počet incidentů" } }, "yaxis": { "title": { "text": "Počet incidentů s fatálními následky" } } } }, "text/html": [ "
" ], "text/vnd.plotly.v1+html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Vytvoříme anotaci k bodům tím, že projdeme řádky tabulky a vytvoříme seznam obsahující popísek ke každému bodu\n", "hover_text = []\n", "for index, row in airline.iterrows():\n", " hover_text.append(('Aerolinka: {}
' + 'Počet místo kilometrů týdně: {}*10^8').format(\n", " row.airline, row.avail_seat_km_per_week//10**8)\n", ")\n", "trace = go.Scatter(\n", " x=airline.incidents_00_14,\n", " y=airline.fatalities_00_14,\n", " mode='markers',\n", " text=hover_text,\n", " marker=dict(\n", " # Nastavujeme velikost bubliny jako sloupec avail_seat_km_per_week dělený 10^8\n", " size=airline.avail_seat_km_per_week//10**8\n", " )\n", ")\n", "data = [trace]\n", "layout = dict(title='Letová bezpečnost 2000 - 2014
Velikost bodů představuje počet místo kilometrů týdně',\n", " xaxis=dict(title='Počet incidentů'),\n", " yaxis=dict(title='Počet incidentů s fatálními následky'),\n", " hovermode='closest'\n", ")\n", "fig = dict(data=data, layout=layout)\n", "iplot(fig)" ] }, { "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.6.2" } }, "nbformat": 4, "nbformat_minor": 2 }