{ "cells": [ { "cell_type": "markdown", "id": "936d519d", "metadata": {}, "source": [ "# Women's World Cup Example" ] }, { "cell_type": "code", "execution_count": 1, "id": "f9fd4f34-168f-442c-8ec8-9253b4ec0f60", "metadata": {}, "outputs": [], "source": [ "%load_ext autoreload\n", "%autoreload 2\n", "\n", "from pathlib import Path\n", "\n", "import matplotlib\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "import pandas as pd\n", "from matplotlib.colors import LinearSegmentedColormap\n", "\n", "from plottable import ColumnDefinition, Table\n", "from plottable.cmap import normed_cmap\n", "from plottable.formatters import decimal_to_percent\n", "from plottable.plots import circled_image # image" ] }, { "cell_type": "code", "execution_count": 2, "id": "f00f1848-a76d-475e-b681-11ae608e77fd", "metadata": {}, "outputs": [], "source": [ "cols = [\n", " \"team\",\n", " \"points\",\n", " \"group\",\n", " \"spi\",\n", " \"global_o\",\n", " \"global_d\",\n", " \"group_1\",\n", " \"group_2\",\n", " \"group_3\",\n", " \"make_round_of_16\",\n", " \"make_quarters\",\n", " \"make_semis\",\n", " \"make_final\",\n", " \"win_league\",\n", "]\n", "\n", "df = pd.read_csv(\n", " \"data/wwc_forecasts.csv\",\n", " usecols=cols,\n", ")" ] }, { "cell_type": "code", "execution_count": 3, "id": "47503a1c-b8e7-47a7-acd0-f1c5fdc7f31c", "metadata": {}, "outputs": [], "source": [ "colnames = [\n", " \"Team\",\n", " \"Points\",\n", " \"Group\",\n", " \"SPI\",\n", " \"OFF\",\n", " \"DEF\",\n", " \"1st Place\",\n", " \"2nd Place\",\n", " \"3rd Place\",\n", " \"Make Rd Of 16\",\n", " \"Make Quarters\",\n", " \"Make Semis\",\n", " \"Make Finals\",\n", " \"Win World Cup\",\n", "]\n", "\n", "col_to_name = dict(zip(cols, colnames))" ] }, { "cell_type": "code", "execution_count": 4, "id": "f6a2f972-3c09-4150-954e-508d8b97d71e", "metadata": {}, "outputs": [], "source": [ "flag_paths = list(Path(\"country_flags\").glob(\"*.png\"))\n", "country_to_flagpath = {p.stem: p for p in flag_paths}" ] }, { "cell_type": "code", "execution_count": 5, "id": "c5e54a83-4d2c-43af-9ca4-0d08185b389c", "metadata": {}, "outputs": [], "source": [ "df[[\"spi\", \"global_o\", \"global_d\"]] = df[[\"spi\", \"global_o\", \"global_d\"]].round(1)\n", "\n", "df = df.rename(col_to_name, axis=1)\n", "df = df.drop(\"Points\", axis=1)\n", "df.insert(0, \"Flag\", df[\"Team\"].apply(lambda x: country_to_flagpath.get(x)))\n", "\n", "df = df.set_index(\"Team\")" ] }, { "cell_type": "code", "execution_count": 6, "id": "0c7a4528-fbde-4591-be76-06adca531b71", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", " | Flag | \n", "Group | \n", "SPI | \n", "OFF | \n", "DEF | \n", "1st Place | \n", "2nd Place | \n", "3rd Place | \n", "Make Rd Of 16 | \n", "Make Quarters | \n", "Make Semis | \n", "Make Finals | \n", "Win World Cup | \n", "
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Team | \n", "\n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " |
USA | \n", "country_flags\\USA.png | \n", "F | \n", "98.3 | \n", "5.5 | \n", "0.6 | \n", "0.82956 | \n", "0.17044 | \n", "0.00000 | \n", "1.0 | \n", "0.78079 | \n", "0.47307 | \n", "0.35076 | \n", "0.23618 | \n", "
France | \n", "country_flags\\France.png | \n", "A | \n", "96.3 | \n", "4.3 | \n", "0.5 | \n", "0.99483 | \n", "0.00515 | \n", "0.00002 | \n", "1.0 | \n", "0.78367 | \n", "0.42052 | \n", "0.30038 | \n", "0.19428 | \n", "
Germany | \n", "country_flags\\Germany.png | \n", "B | \n", "93.8 | \n", "4.0 | \n", "0.7 | \n", "0.98483 | \n", "0.01517 | \n", "0.00000 | \n", "1.0 | \n", "0.89280 | \n", "0.48039 | \n", "0.27710 | \n", "0.12256 | \n", "
Canada | \n", "country_flags\\Canada.png | \n", "E | \n", "93.5 | \n", "3.7 | \n", "0.6 | \n", "0.38830 | \n", "0.61170 | \n", "0.00000 | \n", "1.0 | \n", "0.59192 | \n", "0.36140 | \n", "0.20157 | \n", "0.09031 | \n", "
England | \n", "country_flags\\England.png | \n", "D | \n", "91.9 | \n", "3.5 | \n", "0.6 | \n", "0.70570 | \n", "0.29430 | \n", "0.00000 | \n", "1.0 | \n", "0.68510 | \n", "0.43053 | \n", "0.16465 | \n", "0.08003 | \n", "