{ "cells": [ { "cell_type": "code", "execution_count": 1, "id": "9eb0122b-88cf-4dff-82e6-a349bb2cdf8e", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Päivitetty 2025-11-30 / Aki Taanila\n" ] } ], "source": [ "from datetime import datetime\n", "print(f'Päivitetty {datetime.now().date()} / Aki Taanila')" ] }, { "cell_type": "markdown", "id": "6f586c07-ae10-43bb-8238-64158716fe72", "metadata": {}, "source": [ "## Countplot - lukumäärä- ja prosenttiyhteenvedot\n", "\n", "Seabornin **countplot** sopii kategorisille muuttujille lukumäärä- ja prosenttiyhteenvetojen havainnollistamiseen. Lisätietoa https://seaborn.pydata.org/generated/seaborn.countplot.html.\n", "\n", "### Tuonnit ja alkuvalmistelut\n", "\n", "- Grafiikan tyylimäärittelyssä voit käyttää **'whitegrid'** sijasta **'white'**, **'dark'**, **'darkgrid'** tai **'ticks'**. Voit myös jättää tyylimäärittelyn tekemättä.\n", "- **PercentFormatter** auttaa muotoilemaan akselin prosenttiasteikon.\n", "- **MultipleLocator** auttaa muuttamaan akselin asteikon jaotusta." ] }, { "cell_type": "code", "execution_count": 2, "id": "6778a3f2-6168-4664-a5b0-83a05963004a", "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "sns.set_style('whitegrid')\n", "from matplotlib.ticker import PercentFormatter, MultipleLocator\n", "ticks = PercentFormatter(xmax=100, decimals=0, symbol=' %')" ] }, { "cell_type": "markdown", "id": "e191cf9a-9b40-46cd-8e48-e3c1d84b9cab", "metadata": {}, "source": [ "### Datan avaaminen\n", "\n", "Seaborn-paketin esimerkkidata **tips** sisältää tietoja ravintolassa asioineista seurueista." ] }, { "cell_type": "code", "execution_count": 3, "id": "320e8059-1cff-41d6-a3a6-80bd4f99208b", "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", "
total_billtipsexsmokerdaytimesize
016.991.01FemaleNoSunDinner2
110.341.66MaleNoSunDinner3
221.013.50MaleNoSunDinner3
323.683.31MaleNoSunDinner2
424.593.61FemaleNoSunDinner4
........................
23929.035.92MaleNoSatDinner3
24027.182.00FemaleYesSatDinner2
24122.672.00MaleYesSatDinner2
24217.821.75MaleNoSatDinner2
24318.783.00FemaleNoThurDinner2
\n", "

244 rows × 7 columns

\n", "
" ], "text/plain": [ " total_bill tip sex smoker day time size\n", "0 16.99 1.01 Female No Sun Dinner 2\n", "1 10.34 1.66 Male No Sun Dinner 3\n", "2 21.01 3.50 Male No Sun Dinner 3\n", "3 23.68 3.31 Male No Sun Dinner 2\n", "4 24.59 3.61 Female No Sun Dinner 4\n", ".. ... ... ... ... ... ... ...\n", "239 29.03 5.92 Male No Sat Dinner 3\n", "240 27.18 2.00 Female Yes Sat Dinner 2\n", "241 22.67 2.00 Male Yes Sat Dinner 2\n", "242 17.82 1.75 Male No Sat Dinner 2\n", "243 18.78 3.00 Female No Thur Dinner 2\n", "\n", "[244 rows x 7 columns]" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tips = sns.load_dataset('tips')\n", "tips" ] }, { "cell_type": "markdown", "id": "08830601-224c-4a32-97d4-9cdfc5c30aab", "metadata": {}, "source": [ "### Yksinkertainen pylväskaavio\n", "\n", "Kaavion otsikko ja akseleiden otsikot ovat tärkeitä kaavion tulkinnassa. Kannattaa laatia kaavio ensin ilman akseleiden otsikoiden määrittelyä, koska joissain tapauksissa oletusotsikot ovat tilanteeseen riittävät. Tässä esimerkissä akselien englanninkieliset oletusotsikot vaihdetaan suomenkielisiksi.\n", "\n", "**plt** viittaa **matplotlib.pyplot**-pakettiin, joka sisältää oikotien moniin muotoiluihin. Lisätietoa https://matplotlib.org/stable/api/pyplot_summary.html." ] }, { "cell_type": "code", "execution_count": 4, "id": "c751513a-d9e4-4604-abcf-bd6995fa3eac", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0, 0.5, 'Seurueiden lukumäärä')" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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+eXlPrilXr16qlmzprp166Zu3bqpXLlyOnDggCZPnqzAwEBT8evYsaM+/vhjpaWlyc/PT8nJyfr4449lZ2enihUrSpLpM7Nq1Sq98MILd5xPJN0seHPnzlXJkiXl6+ur5ORkffrpp6pVq5aKFy9ucZ4GDRpoxowZmj59uqpWrarNmzebXWZ9P5a8t1u3bmrVqpW6dOmi1q1bq1ChQlqyZIm++eYbTZo0SZIUFhamBQsWqH379nr77bf11FNPadu2bZo1a5batm0rJycn03756aeftHPnTlWpUsWiQ7L456D24h/Dzs5OYWFhOnbsmMLCwh76X30eHh7q3bu3tm3bpi+//FKurq6aP3++6T41Xbt21Z49ezRmzBi98847D7UtPz8/DR06VPv27VOnTp00duxYlSpVynSfkwcdjrqlR48eKlWqlKKiovTXX39p6tSpevLJJzVgwAD16tVLP/74o6ZNm6ayZctq9+7dFud7/fXX1b17d61du1adOnXSpEmTVKNGDY0cOVIXL15UUlKSVT9vnTp11L9/f+3du1edOnXS6tWrNWXKFLNi4+Hhoc8//1zPP/+8xowZo3fffVd//PGHpk6darpC6FHug1vs7e01c+ZMNWnSRDNmzNBbb72lxYsXq127dpo4caJpuV69emnAgAHasGGDOnXqpAkTJqh69epasGCBHn/8cUlSo0aN5OPjowEDBmjOnDl33d67776rt99+W19++aU6duyo6OhoBQYGmsqCpXm6dOmiFi1aaO7cueratauSk5M1ZswYi35mS95bsWJFLVy4UHZ2durXr5969uyps2fP6pNPPlGjRo0kSY899pgWLlyo6tWra8KECerUqZPWr1+vPn36aODAgaZ1dejQQefOndNbb72lQ4cOWZQR/xx22TxJDAAAGAQjNgAAwDAoNgAAwDAoNgAAwDAoNgAAwDAoNgAAwDAoNgAAwDD+cTfoy8rK0o0bN2Rvby87OztbxwEAABbIzs5WVlaWHB0d73sfsn9csblx40aOnl0DAABsz8fHR87Ozvec/48rNrdano+Pj9ldTAEAQP6VmZmpgwcPPvCu8f+4YnPr8JODgwPFBgCAAuZBp5Fw8jAAADAMmxablJQUBQcHKz4+3jQtISFBb775pnx9fRUQEKCxY8fqxo0bpvkrVqxQcHCwqlatqrCwMO3bt88W0QEA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nJxM95G5dWVUenp6ju4jAwAAkNusKjZBQUHq27evjh07Jjs7O50/f14jRoxQvXr18iofAACAxawqNn369NFjjz2ml19+WZcuXVJgYKCuXr2q9957L6/yAQAAWMyqy70LFy6sSZMmKSUlRSdPnpSnp6eeeOKJvMoGAABgFYtHbLKysnThwgVJUvHixXXlyhWtXr1aR48ezbNwAAAA1rCo2CQnJyskJMR0WXdcXJw6dOiguLg4tWjRgidlAwCAfMGiYjNx4kR5e3ubzqWZPHmyOnXqpOXLl2vo0KGaPHlynoYEAACwhEXFZuvWrYqKilKJEiV0+vRpHT9+XM2aNZMkvfTSS/rxxx/zMiMAAIBFLCo2aWlpKl68uCRp//79Klq0qMqVKydJKlSokK5fv553CQEAACxkUbEpVqyYUlJSJEk7d+5UtWrVTPN+++03ubu75006AAAAK1hUbBo0aKBRo0ZpzZo1iouLU5MmTSRJly5d0scff6wXX3wxT0MCAABYwqJi07t3b6WmpmrQoEFq3LixQkJCJEn16tXTkSNH9M477+RpSAAAAEtYdIO+okWLau7cuXdMnzx5smrWrKlChQrlejAAAABrWXXn4dsFBgbmVg4AAICHZtWzogAAAPIzig0AADAMig0AADAMig0AADAMig0AADAMig0AADAMig0AADAMig0AADAMig0AADAMig0AADAMig0AADAMig0AADAMig0AADAMig0AADAMig0AADAMig0AADAMig0AADAMig0AADCMfFtsMjMzFRkZqQEDBpim7d+/Xy1atJCvr6+CgoK0dOlSGyYEAAD5Tb4tNlOmTNHu3btNr1NTU9W5c2e99tpr2rVrl8aMGaOxY8fqwIEDNkwJAADyk3xZbLZv367169erUaNGpmnr16+Xm5ub2rRpI0dHR/n7+yskJEQLFy60YVIAAJCfONo6wO3Onz+vwYMHa+rUqYqJiTFNP3LkiCpUqGC2rJeXl5YtW5aj7WRmZj5MTFjAwcHB1hHyFT5zAJBzlv4OzVfFJisrS3379lX79u1VsWJFs3np6elydXU1m+bi4qIrV67kaFsHDx7McU48mKurqypVqmTrGPlKYmKirl69ausYAGBo+arYzJgxQ87OzoqMjLxjnqurqy5fvmw2LSMjQ4ULF87Rtnx8fBhRwCPl7e1t6wgAUGBlZmZa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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sns.countplot(tips, x='size')\n", "plt.title('Viikon aikana ruokailleet seurueet')\n", "plt.xlabel('Seurueen henkilömäärä')\n", "plt.ylabel('Seurueiden lukumäärä')" ] }, { "cell_type": "markdown", "id": "17dc5958-f252-4fe8-87c2-86deac38add5", "metadata": {}, "source": [ "### Lisää muotoiluja\n", "\n", "Kaikkea ei voi tehdä **plt**:n kautta, vaan vaativammassa muotoilussa viitataan suoraan kaavioon (**Axes**-luokan olio) ja sen ominaisuuksiin. Tätä varten kaavio sijoitetaan muuttujan arvoksi. Seuraavassa solussa muuttujan nimeksi on annettu **ax**. Lisätietoa **Axes**-luokasta https://matplotlib.org/stable/api/axes_api.html.\n", "\n", "- Pystyasteikolla käytetään lukumäärien sijasta prosentteja (`stat='percent'`).\n", "- Prosenttiasteikko muotoillaan käyttäen aiemmin määriteltyä **ticks**-muotoilua.\n", "- Prosenttiasteikon jaotuksen väliksi asetetaan 10.\n", "- Pystyakseli skaalataan välille 0 - 100 (`plt.ylim(0, 100)`).\n", "- Pylväiden yläpuolelle lisätään pylvään korkeutta kuvaava prosenttiluku. Prosenttiluku muotoillaan (`fmt='{:.1f} %'`) yhteen desimaaliin ja varustetaan välilyönnin jälkeisellä prosenttimerkillä. Luvun ja pylvään yläreunan väliin jätetään hieman väliä (`padding=2`)." ] }, { "cell_type": "code", "execution_count": 5, "id": "26bf65e8-1060-4941-a51e-b192c041612c", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjUAAAHBCAYAAACR/koKAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjYsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvq6yFwwAAAAlwSFlzAAAPYQAAD2EBqD+naQAAWxJJREFUeJzt3X9cTvf/P/BHXZWuFRIN29As5Z0y/RDlR7RiRli0WPOjMb+i8Z6EfqxWKcmaX/mdhhSKkflR2/IjJFGKt6hhhg2JVEp1Xdf3D1/XZ9dKikvpeNxvt2431zmv8zrPc1xX59HrnOscFZlMJgMRERFRE6fa2AUQERERKQNDDREREQkCQw0REREJAkMNERERCQJDDREREQkCQw0REREJAkMNERERCQJDDREREQkCQw0RUR3xXqU1436h1wVDDTUYNzc3WFlZoaKi4pltRowYAWdnZwCAkZERVqxYAQA4deoUjIyMcOrUKQDAihUrYGRk9OqLfgnjxo3DuHHj5K//uT1vKmXsg127dsHIyAg3btwAAMyfPx92dnby+XZ2dpg/f/5LraMm+fn5GDt2rNL7bep27tyJxYsXN2oN9+7dg4+PDwYOHAgzMzM4OTlh//79z2xfVVWFUaNGKXw+a7Jo0aLX/vcMKVJr7ALozTF69GicOHECR48ehb29fbX5ubm5yM3NxXfffQcA2L59O9q1awcA6NatG7Zv3w4DA4MGrfllfPvtt41dgiANGDAA27dvx9tvv92g6z1w4AAyMzMbdJ1NwerVq2FlZdVo66+oqMCkSZPw8OFDeHh4oG3btkhKSsKcOXNQUVGBkSNHVltm3bp1OH/+fK11nz59Glu2bHmFldOrwFBDDcbBwQEtW7bE3r17aww1P/30E9566y0MHToUANCjRw/5PG1tbYXXTUFTCmBNia6uLnR1dRu7DHpNHD58GBcvXsTOnTvRvXt3AICNjQ1u3bqFDRs2VAs1ubm5WLt2LfT09J7Z56NHj7BgwQK8/fbb+Pvvv19l+aRkPP1EDUZDQwOOjo5ISUlBcXGxwjyJRIJ9+/bh448/hra2NoDaTz/9261btzBgwAB8+umnKCoqAgAUFxcjJCQE9vb2MDU1xbBhwxAfH6+wnJ2dHZYvX47FixfDxsYG3bt3x6RJk3D16tVat6WwsBABAQEYOHAgTExMYGVlBXd3d/kpEaD66ad/W7ZsGbp27apQ086dO+Hk5IQePXqge/fuGDFihMIw+q5du2BsbIxz587BxcUFpqamGDBgANavX6/Q940bNzBv3jz07dsX3bp1g7W1NebNm4f79+8/s56n+zguLg4DBw6EjY0NUlNTq53eedq/kZERdu3aJZ92584dLFiwALa2tujevTtGjx6NX3/9tdb9+KL74J+nn57n8ePHCAsLg62tLUxMTODo6FjjqYmdO3di6NChMDExwYABA7BixQpUVVUBeHK6c+XKlQBqP4UmlUqxbNky2NnZwcTEBHZ2dvj+++9RWVlZr3pqOoX27+1esWIFHBwcsHLlSvTq1Qv29va4f/9+nZYFgMuXL2Pq1KkwNzeHubk53N3d8eeffyos9+DBA/j5+cHGxgampqb47LPPcPLkSYU6b968id27d9fr/+Tp++fAgQPw8PCAmZkZevbsCW9vb5SWliq0edbP08+Wtra2/LPwT/r6+rh+/brCtMrKSnh5eWHcuHF4//33n1nf4sWL0aZNGzg5OdVpe+j1wZEaalCjR4/G1q1bcfDgQfm1MwCQmpqKu3fvYvTo0fXu8+7du5g4cSJatmyJqKgotGzZEuXl5fj8889RUFCAWbNmoUOHDvjll1/g7e2NgoICTJs2Tb785s2bYWFhgZCQEBQVFSE4OBjz58/H9u3ba1yfTCbD1KlTUVRUhG+++QZ6enq4ePEili1bBj8/P0RFRT235o0bN2L16tX47rvv5NscExODoKAgzJw5E15eXnjw4AHWr18PT09P9OjRA++88w6AJwfO2bNnY+LEiZg9ezbi4+MRHh6Orl27ol+/figrK8P48ePRqlUrfPvtt2jevDnOnDmDVatWoVmzZggMDKy1toiICAQEBODx48fo0aMH9u3b99ztKSgowOjRo6Guro45c+agVatW2LVrF9zd3REWFobhw4crdR/UlUwmg7u7O86ePQsPDw988MEHSE5OrnZqYu3atYiIiMAXX3yBBQsW4OLFi1ixYgX++usvLFq0CM7Ozvj7778RHx+vcFr039avX4+YmBh4eXmhQ4cOOHfuHCIiIqCuro5Zs2bVuZ66unXrFpKTk/H999/j/v37aNWqVZ2Wu3r1KsaMGYPOnTsjNDQUEokEq1evxtixY7Fnzx60bt0ajx8/xoQJE1BQUIA5c+bg7bffRkJCAiZP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gYGB/IZl/yQWi+Hn54epU6dCVVUVQUFB8qciz5kzp07P2Pk3qVQqf36HiopKvZcnIiKihieTySCVSqGmpvbce5rVK9To6ek9c15paWm1h5NpamrKTxs9b/6/jRkzBmPGjJG/Tk1NRVVVFSwsLODh4YE//vgD5ubmWLhwofzOlrWpqqp6oefeEBERUeMzNTWFhoZGrW2U9piEmp4AXF5eLr8VtVgsRnl5ebX5dXmwYEVFBZYsWYLIyEisWbMGOjo6WLZsGSZPnoz4+HiMHTv2uX08TXfGxsbVHldPREREryeJRIL//e9/dbrzvNJCjaGhIY4fP64wLT8/H126dAEAdOnSBXl5edXm1+UGTRs2bMAnn3yCd999F3l5eXBwcICKigq6deuGy5cv16m+p6ecNDQ0GGqIiIiaiKdPna/LpSNKu6Owg4MDCgoKEB0djcrKSqSlpSExMVF+Hc3o0aORmJiItLQ0VFZWIjo6Gvfu3YODg0Ot/d64cQPJycnyJ6/q6+sjKysLlZWVyM7OVnj6LxEREb25lBZqWrVqhaioKBw8eBC9evWCj48PfHx80Lt3bwCAtbU1vv32W/j7+8PKygo///wz1q9fDx0dnVr7DQoKwrx58+Tn0aZMmYLr16+jd+/eaN68ucJ1N0RERPTmemPuKCyRSJCVlYUePXrw9BMREVETUZ/jNx9oSURERILAUENERESCwFBDREREgsBQQ0RERILAUENERESCwFBDREREgsBQQ0RERILAUENERESCwFBDREREgsBQQ0RERILAUENERESCwFBDREREgsBQQ0RERILAUENERESCwFBDREREgsBQQ0RERILAUENERESCwFBDREREgsBQQ0RERILAUENERESCwFBDREREgsBQQ0RERILAUENERESCwFBDREREgsBQQ0RERILAUENERESCwFBDREREgqDUUPP7779j0qRJsLS0xIABA7B69WpIpVL5/HPnzsHZ2RlmZmaws7PDzp07n9lXeno6HBwcYGFhAW9vb4V+fH19kZCQoMzSiYiIqIlTWqgpLS3F5MmT0b59exw9ehQxMTHYv38/IiMjAQBFRUWYMmUKRo4cidOnTyM4OBghISHIzs6usb+wsDCMHz8eKSkpSEtLQ2pqKgAgOzsbV65cgZOTk7JKJyIiIgFQWqg5c+YM7t27Bz8/P7z11lt49913MX36dMTGxkImkyEpKQk6OjpwdXWFmpoarK2t4ejoiJiYmBr7U1NTAwDIZDLIZDKIRCJIpVIEBQXBz88PKioqyiqdiIiIBEBNWR1JpVKoq6tDXV1dPk1FRQUFBQV4+PAh8vLyYGhoqLCMgYEB4uPja+zP09MT/v7+iIyMxNChQ2FjY4Nt27bB3NwcRkZGL1ynRCJ54WWJiIioYdXnuK20UGNubg5NTU0sXboU7u7uKCwsxMaNGwEA5eXlKC0thVgsVlhGU1MTjx49qrE/CwsLJCYmyl/fu3cPsbGxiIuLQ3h4OI4dO4b27dsjICAAbdu2rXOdOTk5L7B1RERE9LpTWqhp0aIF1q9fj5CQEAwYMAAdO3bEyJEjkZOTgxYtWkAsFqO4uFhhmfLycmhpadWp/7CwMLi7uyMjIwNHjhxBQkICoqKiEBoaioiIiDrXaWpqCpFIVK9tIyIiosYhkUjqPCChtFBTUVGBqqoqbN68WX69y7Zt22BgYACxWAxDQ0McP35cYZn8/Hx06dLluX1nZGSgoKAAQ4YMwbp162BoaAgNDQ2YmJgojObUhUgkYqghIiISIKV+pXvSpEmIj4+HTCbD+fPnsWbNGkyYMAEA4ODggIKCAkRHR6OyshJpaWlITEzEqFGjau2zqqoKISEh8PX1BQDo6+sjNzcXZWVlyMzMRMeOHZW5CURERNREqchkMpmyOjt9+jRCQkJw9epVtG7dGhMmTMC4cePk83NychAcHIzLly9DV1cXM2bMeO5Xszdt2oTi4mJ4eHgAeHJBsre3N5KTk9GpUyeEh4fj/ffff25tEokEWVlZ6NGjB0dqiIiImoj6HL+VGmpeZww1RERETU99jt98TAIREREJAkMNERERCQJDDREREQkCQw0REREJAkMNERERCQJDDREREQkCQw0REREJAkMNERERCQJDDREREQkCQw0REREJAkMNERERCQJDDREREQkCQw0REREJAkMNERERCQJDDREREQkCQw0REREJAkMNERERCQJDDREREQkCQw0REREJAkMNERERCQJDDREREQkCQw0REREJAkMNERERCQJDDREREQkCQw0REREJAkMNERERCQJDDREREQmCUkPNhQsX4OrqCktLS/Tt2xdBQUGoqKiQzz937hycnZ1hZmYGOzs77Ny585l9paenw8HBARYWFvD29oZUKpXP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fXsEBASgbdu2da4zJyenzm3pxYjFYhgbGzd2Ga+NS5cuoaysrLHLICISPKWFmrVr10JDQwPjxo2rcb5YLEZxcbHCtPLycmhpadWp/7CwMLi7uyMjIwNHjhxBQkICoqKiEBoaioiIiDrXaWpqylEEalAvM7JIRPSmk0gkdR6QUFqo2bNnD+7cuQNLS0sATwILAPzyyy/IyMiAoaEhjh8/rrBMfn4+unTp8ty+MzIyUFBQgCFDhmDdunUwNDSEhoYGTExMFEZz6kIkEjHUUIPi+42IqGEo7ULhgwcP4uzZs8jIyEBGRgaGDRuGYcOGyb8F5eDggIKCAkRHR6OyshJpaWlITEzEqFGjau23qqoKISEh8PX1BQDo6+sjNzcXZWVlyMzMRMeOHZW1CURERNSEKfVC4dq0atUKUVFRCA4OxvLly6GrqwsfHx/07t271uW2bNkCW1tb6OvrAwDs7e2RkpKCfv36oVOnTggPD2+A6omIiOh1pyKTyWSNXURDkEgkyMrKQo8ePXg6oIG4/rAPuTcLG7uMRtP1XV3EzB7W2GUQETVp9Tl+8zEJREREJAgMNURERCQIDDVEREQkCAw1REREJAgMNURERCQIDDVEREQkCAw1REREJAgMNURERCQIDDVEREQkCAw1REREJAgMNURERCQIDDVEREQkCAw1REREJAgMNURERCQIDDVEREQkCAw1REREJAgMNURERCQIDDVEREQkCAw1REREJAgMNURERCQIDDVEREQkCAw1REREJAgMNURERCQIDDVEREQkCAw1REREJAgMNURERCQIDDVEREQkCEoNNSdPnoSzszPMzc3Rp08fBAYGory8XD7/3LlzcHZ2hpmZGezs7LBz585n9pWeng4HBwdYWFjA29sbUqlUPs/X1xcJCQnKLJ2IiIiaOKWFmsLCQkydOhVjx45FRkYGdu/ejfT0dKxbtw4AUFRUhClTpmDkyJE4ffo0goODERISguzs7Br7CwsLw/jx45GSkoK0tDSkpqYCALKzs3HlyhU4OTkpq3QiIiISADVldaSrq4sTJ05AW1sbMpkMDx48wOPHj6GrqwsASEpKgo6ODlxdXQEA1tbWcHR0RExMDLp37169MLUnpclkMshkMohEIkilUgQFBSEwMBAqKirKKp2IiIgEQGmhBgC0tbUBALa2trh9+zYsLS3lIyp5eXkwNDRUaG9gYID4+Pga+/L09IS/vz8iIyMxdOhQ2NjYYNu2bTA3N4eRkdEL1yiRSF54Wao7kUjU2CW8NvieIyJ6cfX5HarUUPNUUlISioqKMHfuXHh4eGDDhg0oLS2FWCxWaKepqYlHjx7V2IeFhQUSExPlr+/du4fY2FjExcUhPDwcx44dQ/v27REQEIC2bdvWubacnJwX2yiqM7FYDGNj48Yu47Vx6dIllJWVNXYZRESC90pCjaamJjQ1NeHp6QlnZ2cUFRVBLBajuLhYoV15eTm0tLTq1GdYWBjc3d2RkZGBI0eOICEhAVFRUQgNDUVERESdazM1NeUoAjWolxlZJCJ600kkkjoPSCgt1Jw9exYLFy7E3r17oaGhAQCoqKiAuro6xGIxDA0Ncfz4cYVl8vPz0aVLl+f2nZGRgYKCAgwZMgTr1q2DoaEhNDQ0YGJiojCaUxcikYihhhoU329ERA1Dad9+MjIyQnl5OZYuXYqKigrcvHkTixcvxujRo6GhoQEHBwcUFBQgOjoalZWVSEtLQ2JiIkaNGlVrv1VVVQgJCYGvry8AQF9fH7m5uSgrK0NmZiY6duyorE0gIiKiJkxpIzVaWlrYsGEDFi1ahD59+qB58+ZwdHSEu7s7AKBVq1aIiopCcHAwli9fDl1dXfj4+KB379619rtlyxbY2tpCX18fAGBvb4+UlBT069cPnTp1Qnh4uLI2gYiIiJowFZlMJmvsIhqCRCJBVlYWevTowdMBDcT1h33IvVnY2GU0mq7v6iJm9rDGLoOIqEmrz/Gbj0kgIiIiQWCoISIiIkFgqCEiIiJBYKghIiIiQWCoISIiIkFgqCEiIiJBYKghIiIiQWCoISIiIkFgqCEiIiJBYKghIiIiQWCoISIiIkFgqCEiIiJBYKghIiIiQWCoISIiIkFgqCEiIiJBYKghIiIiQWCoISIiIkFgqCEiIiJBYKghIiIiQWCoISIiIkFgqCEiIiJBYKghIiIiQWCoISIiIkFgqCEiIiJBYKghIiIiQWCoISIiIkFgqCEiIiJBUGqoyc3NhZubG6ysrNCnTx/MmzcPhYWF8vnnzp2Ds7MzzMzMYGdnh507dz6zr/T0dDg4OMDCwgLe3t6QSqXyeb6+vkhISFBm6URERNTEKS3UlJeXY/LkyTAzM0Nqair27duHBw8eYOHChQCAoqIiTJkyBSNHjsTp06cRHByMkJAQZGdn19hfWFgYxo8fj5SUFKSlpSE1NRUAkJ2djStXrsDJyUlZpRMREZEAKC3U3Lp1C127doW7uzs0NDTQqlUruLi44PTp0wCApKQk6OjowNXVFWpqarC2toajoyNiYmJq7E9NTQ0AIJPJIJPJIBKJIJVKERQUBD8/P6ioqCirdCIiIhIANWV11LlzZ2zYsEFh2qFDh9CtWzcAQF5eHgwNDRXmGxgYID4+vsb+PD094e/vj8jISAwdOhQ2NjbYtm0bzM3NYWRk9MJ1SiSSF16W6k4kEjV2Ca8NvueIiF5cfX6HKi3U/JNMJsMPP/yAlJQUbN26FQBQWloKsVis0E5TUxOPHj2qsQ8LCwskJibKX9+7dw+xsbGIi4tDeHg4jh07hvbt2yMgIABt27atc205OTkvsEVUH2KxGMbGxo1dxmvj0qVLKCsra+wyiIgET+mhpqSkBAsWLMCFCxewdetW+aiKWCxGcXGxQtvy8nJoaWnVqd+wsDC4u7sjIyMDR44cQUJCAqKiohAaGoqIiIg612dqaspRBGpQLzOySET0ppNIJHUekFBqqLl+/Tq++uorvPPOO4iPj4eurq58nqGhIY4fP67QPj8/H126dHluvxkZGSgoKMCQIUOwbt06GBoaQkNDAyYmJgqjOXUhEokYaqhBNdb7rbCwEC4uLggKCkKvXr3k07/99lskJCRAXV1dPm3+/PlwcXGpsZ9t27Zh06ZNKCgowHvvvYf//ve/GDhwYI1tw8LCsHPnTmhra2PhwoVwcHAAADx8+BBjxozB1q1bFX4vEBEpk9IuFC4qKsKECRNgbm6OjRs3VvvF5eDggIKCAkRHR6OyshJpaWlITEzEqFGjau23qqoKISEh8PX1BQDo6+sjNzcXZWVlyMzMRMeOHZW1CUSCcebMGbi4uOD69evV5uXk5CAwMBCZmZnyn2cFmt27d2PVqlVYunQpzp49i6lTp2LWrFm4fft2tba///47YmNjsW/fPvj4+MDf318+LyIiAhMnTmyygaawsBAODg44deqUwvRvv/0WJiYmMDMzk/9s3769xj4eP36M4OBg9O/fHxYWFnB2dkZaWtoz1xkWFoaePXti4MCBSE5Olk9/+PAhPvnkE4XbZRDRE0obqdm1axdu3bqFAwcO4ODBgwrzMjMz0apVK0RFRSE4OBjLly+Hrq4ufHx80Lt371r73bJlC2xtbaGvrw8AsLe3R0pKCvr164dOnTohPDxcWZtAJAi7d+/G8uXL4enpiTlz5ijMq6iowOXLl2FiYlKnvqKiovD111+je/fuAIBhw4bh/fffh7a2drW2qqr/9zeSTCaTv75w4QIuXrwIPz+/F92kRnXmzBnMnz+/1oD46aefPref8PBwnD17Ftu3b8fbb7+NhIQETJs2Dfv378c777yj0PZpQDx48CDOnz8PPz8/+ahXUw+IRK+S0kKNm5sb3Nzcam1jamqKuLi4evf7T6qqqggJCUFISEi9ayR6E/Tt2xeOjo5QU1OrFmpyc3NRVVWF5cuX48yZM2jevDlGjRqFyZMnK4QSACgrK0NeXh5UVVXh6uqK/Px8vP/++5g7d26N18K9//77cHNzg5OTE7S1tREUFASZTIbAwMAmexsGZQbEx48fw8PDA+3btwcAfPbZZwgPD8eFCxeqhRqhBkSiV+2VfPuJiBqPnp7eM+cVFxfDysoK48aNw/fff4+LFy/C3d0dqqqqmDx5skLbhw8fQiaTISoqCsuWLUOnTp2wY8cOfPXVV0hMTMR7771XrX8PDw94eHjIX2/fvh0mJibQ0dHBpEmTcO/ePdjZ2Sm0eZ0pKyACwHfffafw+uTJkyguLkbXrl2rtRViQCRqCHz2E9EbpE+fPti8eTOsrKygrq6O7t27Y8KECdi/f3+1tk8vJHZzc0OXLl2goaGBL774Au+88w6OHDny3HXdv38fW7ZswezZsxEaGgorKyvs2LEDycnJOHr0qNK37VXQ09OT3wj03/4ZEI8cOYIlS5Zgy5YtiIqKem6/WVlZmD17NmbOnIkOHTrU2MbDwwPHjx/HoUOHYGtrix07digExJEjR2L58uUvtX1EQsNQQ/QG+eWXX6qdAq6oqICmpma1trq6umjdujUqKioUptf1Rljh4eGYNm0atLW1kZeXh27dukFDQwOGhoa4fPnyi2/Ea6I+AfGfdu7cCTc3N0ybNg3u7u51WpcQAiJRQ2CoIXqDyGQyhISE4OTJk5DJZMjMzMTmzZuf+e2nMWPGYNWqVbh48SKqqqqwefNm3L59G/b29rWuJysrC7du3cKwYcMAAJ06dUJmZibKyspw8eJFdOrUSenb1tDqExCBJ2HQz88PS5cuxapVq557DeI/CT0gEikLQw3RG8TBwQELFiyAv78/zMzM4OnpiVmzZmHEiBEAntwTyszMDLdu3QIAzJw5E5MnT8bs2bPRs2dP7NmzB+vXr6/1Lt4SiQSLFi2S34YBAObOnYtff/0V/fv3h6Wl5XNDUVNQ34AYEhKCo0ePIiEhATY2NnVez5sQEImURUUmk8kau4iGIJFIkJWVhR49evDmew3E9Yd9yL355t5Lo+u7uoiZPayxyyAlMTIywubNmxVuZBgXF4dNmzbh9u3baNOmDdzc3ODq6grgSUD86quv8PPPP0NTUxN9+vSBSCRSuOkhAAQEBGD48OE1rlMikWDs2LEIDQ1F586dATy5aencuXNx8+ZNDBkyBAEBAbxwmAStPsdvhhp6ZRhqGGqIiF5WfY7fPP1EREREgsBQQ0RERILAUENERESCwFBD9JqTSKWNXcJrgfuBiJ6Hj0kges2JVFXhs+0Yrt4pauxSGs37b7dE0Of9GrsMInrNMdQQNQFX7xS90d8kUwaJVApRDc9kehNxX5BQMdQQ0RuBI15PcNSLhIyhhojeGBzxIhI2jj8SERGRIDDUEBERkSAw1BAREZEgMNQQERGRIDDUEBERkSAw1BAREZEgMNQQERGRIDDUEBERkSAw1BAREZEgMNQQERGRIDDUEBERkSC8klBTWFgIBwcHnDp1SmH6uXPn4OzsDDMzM9jZ2WHnzp3P7CM9PR0ODg6wsLCAt7c3pFKpfJ6vry8SEhJeRelERETURCk91Jw5cwYuLi64fv26wvSioiJMmTIFI0eOxOnTpxEcHIyQkBBkZ2fX2E9YWBjGjx+PlJQUpKWlITU1FQCQnZ2NK1euwMnJSdmlExERUROm1FCze/duzJ07F3PmzKk2LykpCTo6OnB1dYWamhqsra3h6OiImJiYGvtSU3vyAHGZTAaZTAaRSASpVIqgoCD4+flBRUVFmaUTERFRE6fUUNO3b18kJyfjk08+qTYvLy8PhoaGCtMMDAyQm5tbY1+enp7YsWMHPv74Y9jZ2cHGxgaxsbEwNzeHkZGRMssmIiIiAVBTZmd6enrPnFdaWgqxWKwwTVNTE48ePaqxvYWFBRITE+Wv7927h9jYWMTFxSE8PBzHjh1D+/btERAQgLZt29a5RolEUue29OJEIlFjl/DaeNn3HPfl/3mZfcn9qIi/C6mpqM97VamhpjZisRjFxcUK08rLy6GlpVWn5cPCwuDu7o6MjAwcOXIECQkJiIqKQmhoKCIiIupcR05OTr3qpvoTi8UwNjZu7DJeG5cuXUJZWdkLLct9qehF9yX3Y3Uv874kel01WKgxNDTE8ePHFabl5+ejS5cuz102IyMDBQUFGDJkCNatWwdDQ0NoaGjAxMREYTSnLkxNTfkXGzUoni5VHu5L5eG+pKZCIpHUeUCiwUKNg4MDlixZgujoaLi6uuLMmTNITExEZGRkrctVVVUhJCQES5cuBQDo6+tjz549KCsrQ2ZmJjp27FivOkQiEUMNNSi+35SH+1J5uC9JiBos1LRq1QpRUVEIDg7G8uXLoaurCx8fH/Tu3bvW5bZs2QJbW1vo6+sDAOzt7ZGSkoJ+/fqhU6dOCA8Pb4DqiYiI6HX3ykLNpUuXqk0zNTVFXFxcvfpxc3NTeK2qqoqQkBCEhIS8VH1EREQkLHxMAhEREQkCQw0REREJAkMNERERCQJDDREREQkCQw0REREJAkMNERERCQJDDREREQkCQw0REREJAkMNERERCQJDDREREQkCQw0RETWo3NxcuLm5wcrKCn369MG8efNQWFj4zPZHjhyBo6MjevTogSFDhiAlJeWZbffv349+/frBysoKy5YtU5g3adIknDx5UmnbQa8fhppXpLCwEA4ODjh16lSt7dLT0+Hs7AwzMzPY2tpi7dq1z2zLDysRNXXl5eWYPHkyzMzMkJqain379uHBgwdYuHBhje2vXbuGWbNm4euvv0ZGRgZmzZqF2bNn4/bt2zW2DwwMREBAABITExEdHY3ff/8dAHDgwAHo6OjA2tr6lW1bY+Ix5wmGmlfgzJkzcHFxwfXr12tt9/vvv2PKlCn4/PPPcfbsWaxduxZRUVE4ePBgje3f1A8rEQnHrVu30LVrV7i7u0NDQwOtWrWCi4sLTp8+XWP73bt3w9LSEvb29lBTU8Mnn3yCnj17Yvv27TW2F4lEkMlkCq9LS0uxatUqzJ8//5VsU2PjMef/MNQo2e7duzF37lzMmTPnuW23bduGjz76CJ9++ilUVFTQtWtXxMXFwcLCosb2b+KHlYiEpXPnztiwYQNEIpF82qFDh9CtW7ca2+fn58PQ0FBhmoGBAXJzc2ts7+/vj9DQUIwaNQrTp0+Hvr4+Vq5cCRcXF+jp6SlvQ14TPOYoUmvsAoSmb9++cHR0hJqa2nPfZNnZ2bCxscF///tfHD9+HLq6upg4cSJcXFxqbP/0w1pWVib/sC5evFiwH1YiEjaZTIYffvgBKSkp2Lp1a41tSktLIRaLFaZpamri0aNHNba3t7eHvb29/HVeXh4yMjKwefNm+Pr64ty5c+jSpQv8/f3RvHlz5W1MI+ExRxFDjZLV5z+6qKgImzdvRkREBMLCwpCZmYmpU6eiZcuW+Pjjj6u1f9M+rEQkXCUlJViwYAEuXLiArVu3wsjIqMZ2YrEY5eXlCtPKy8uhpaVVp/UEBgbCx8cHu3btwl9//YU9e/bAz88Pa9euxdy5c196OxobjzmKePqpEWloaOCjjz7CgAEDoKamhp49e2LEiBE4cOBAnZav6cP61ltv1XrhFxFRY7t+/TpGjRqFkpISxMfHPzPQAIChoSHy8vIUpuXn56NLly7PXc+ePXugr6+PDz/8EJcvX4axsTFUVFRgYmKCy5cvv/R2NDVvwjGHoaYRffDBB6ioqFCYJpFIFM5hPgs/rETUFBUVFWHChAkwNzfHxo0boaurW2v74cOHIz09Hfv370dVVRX279+P9PR0jBgxotbliouLsWHDBvz3v/8FAOjr6yMnJweVlZXIyspCx44dlbZNTcWbcMxhqGlEY8aMwa+//oo9e/ZAJpPh9OnTSExM5IeViARr165duHXrFg4cOAALCwuYmZnJf54yMzPD3r17ATw5EK9atQpr165Fz549ERkZiRUrVuD999+vdT3Lli3DxIkToaOjAwD47LPP0KxZM/Tu3Ru3bt3C9OnTX9k2vq7ehGMOr6lpYGZmZggICMDw4cNhbW2NyMhILF++HAEBAdDV1YWXlxc++uijWvuo6cN66tQp9O7dGyYmJvj+++8bYEuIiOrPzc0Nbm5utbbJzMxUeN2vXz/069evXuvx8fFReK2lpYU1a9bUqw8heNOOOQw1r9ClS5eqTfv3h9XW1ha2trb16pcfViIi+jcec3j6iYiIiASCoYaIiIgEgaGGiIiIBIGhhoiI6kUilTZ2Ca8F7ofXDy8UJiKiehGpqsJn2zFcvVPU2KU0mvffbomgz+v3jSx69Rhq/kEilUKkysErgPuCiGp39U4Rcm8WNnYZTR5/1z6hrP3QoKHm3r178PX1RXp6OkQiEYYPHw4vLy+oqVUv4/bt2/j6669x6dIlmJiYICIiAm3atAEAJCYmIjU1FYsXL1Zqffzr4wn+BUJE1DB43FHuMadBQ83s2bPRtm1bHDt2DAUFBZg+fTqio6MxefLkam1//PFHtG/fHps2bcKCBQsQHR2NuXPnoqSkBGvWrMHmzZtfSY3864OIiBoSjzvK02BjXn/88QfS09Ph6ekJsViMDh06YMaMGYiJiamx/dPRm6fPpBCJRACe3NnQ1dUVrVu3bpjCiYiIqElosFCTl5cHHR0dtG3bVj7tgw8+wK1bt/Dw4cNq7cePH4/79+9j4MCBKCkpwcSJE5Gbm4vs7GyMGTOmocomIiKiJqLBTj+VlpZCLBYrTHv6+tGjR2jRooXCvDZt2iA6Olr+WiaTYebMmfDx8cGBAwewceNGaGhoYO7cubC0tHzu+p+O+FRUVMhHff5NJBKhS7uW0BCp1GfTBKeTXgtIJBJIJJIX7oP7Ujn7EeC+BPieVCbuS+Xg51t5nrcvn06vy9PEVWR1aaUEycnJ8PHxwalTp+TTLl26hOHDhyMjIwPNmzevdfmEhAScP38eHh4e+Oijj7Bv3z78/fff8PDwwLFjx6CiUvsboqKiAjk5OUrZFiIiImpYpqam0NDQqLVNg43UdOnSBQ8ePEBBQYH8W0y///472rVr99xAU1RUhOjoaMTExODq1at466238M4776BNmza4e/cu7t+/D11d3Vr7UFNTg6mpKVRVVZ8bgIiIiOj1IJPJIJVKa/ym9L81WKjR19eHhYUFFi1ahO+++w73799HZGQkRo8e/dxlv//+e0yaNAktWrTAu+++i4cPH+KPP/7A33//jZYtW8ofh14bVVXV5yY8IiIiaroa9Cvdy5cvx3fffYePPvoIqqqqGDlyJGbMmFHrMjk5Obhy5QoCAgIAPLnWxsvLC2PGjIGmpiZCQ0OhyhsXERERvfEa7JoaIiIioleJQxxEREQkCAw1REREJAgMNURERCQIDDVEREQkCAw1REREJAgMNa+ZwsJCODg4KNx5meonNzcXbm5usLKyQp8+fTBv3jwUFvIJuC/i5MmTcHZ2hrm5Ofr06YPAwECUl5c3dllNlkQiwbhx4zB//vzGLqXJ2r9/P4yNjWFmZib/8fT0bOyymqQHDx5g3rx56NWrF3r27IkZM2bgzp07jV3WS2GoeY2cOXMGLi4uuH79emOX0mSVl5dj8uTJMDMzQ2pqKvbt24cHDx5g4cKFjV1ak1NYWIipU6di7NixyMjIwO7du5Geno5169Y1dmlN1sqVK5GRkdHYZTRpOTk5GDFiBDIzM+U/S5YsaeyymqRZs2bh0aNHSE5ORkpKCkQiEXx9fRu7rJfSoDffo2fbvXs3li9fDk9PT8yZM6exy2mybt26ha5du8Ld3R0ikQgaGhpwcXHBvHnzGru0JkdXVxcnTpyAtrY2ZDIZHjx4gMePHz/3kSRUs5MnTyIpKQmDBg1q7FKatJycHAwZMqSxy2jyzp8/j3Pnzsk/4wAQGBiIu3fvNnJlL4cjNa+Jvn37Ijk5GZ988kljl9Kkde7cGRs2bFB4EvuhQ4fQrVu3Rqyq6Xr6y87W1haOjo7Q09ODk5NTI1fV9Ny7dw/e3t5YunQpxGJxY5fTZEmlUly4cAGHDx/GwIED0b9/f/j6+qKoqKixS2tysrOzYWBggB07dsDBwQF9+/bF4sWLoaen19ilvRSGmteEnp5enR7WRXUnk8kQERGBlJQUeHt7N3Y5TVpSUhKOHj0KVVVVeHh4NHY5TYpUKoWnpyfc3NzQtWvXxi6nSSssLISxsTEGDx6M/fv3Iy4uDteuXeM1NS+gqKgIly5dwrVr17B792789NNPuH37Nry8vBq7tJfCoygJUklJCRYsWIALFy5g69atMDIyauySmjRNTU1oamrC09MTzs7OKCoqQsuWLRu7rCZh7dq10NDQwLhx4xq7lCavTZs2iImJkb8Wi8Xw9PTEZ599hpKSEvnIIj3f0wc8e3t7o1mzZtDW1sbs2bPx2WefobS0FFpaWo1c4YvhSA0JzvXr1zFq1CiUlJQgPj6egeYFnT17Fh9//DEqKirk0yoqKqCurs5TKPWwZ88epKenw9LSEpaWlti3bx/27dsHS0vLxi6tycnNzUV4eDj++cjCiooKqKqqyg/SVDcGBgaQSqWorKyUT5NKpQCApvxISIYaEpSioiJMmDAB5ubm2LhxIy9qfQlGRkYoLy/H0qVLUVFRgZs3b2Lx4sUYPXo0DyD1cPDgQZw9exYZGRnIyMjAsGHDMGzYMH4L6gXo6OggJiYGGzZsQFVVFW7duoUlS5bg008/5XuynmxsbNChQwcsXLgQpaWlKCwsREREBOzt7Zv0iBdDDQnKrl27cOvWLRw4cAAWFhYK97Kg+tHS0sKGDRuQl5eHPn36YNy4cbCxseHX46nRtGvXDmvXrsWvv/4KKysrjBo1CqampvDz82vs0pocdXV1bNmyBSKRCIMHD8bgwYPRrl07LFq0qLFLeykqsqY8zkRERET0/3GkhoiIiASBoYaIiIgEgaGGiIiIBIGhhoiIiASBoYaIiIgEgaGGiIiIBIGhhoiIiASBoYaoCSgqKoK/vz9sbW3Ro0cP9O3bF15eXvj7778bu7QGYWdnh127dr2SvufPn4/58+fXOG/y5MlYs2ZNje327t2LoUOHAgCGDh2KvXv3vnANGRkZ8htE+vn5VbuZ3Jo1azB58uQ6r+vWrVswMzPDrVu3FJYlEjrefI+oCfjyyy/RvHlz+Pj4QE9PDwUFBQgODkZubi4SExMF/4R3Ozs7zJw5E05OTkrv+2lQCQ0NVUo7Imo8HKkhagLOnDkDBwcH6OnpAXjytOKFCxfiww8/xMOHDwE8eTL5d999B1tbW1hbW2POnDkoKCgAANy4cQNGRka4ceOGvM8VK1bInxy9a9cuODk54csvv4SlpSUSExMxbtw4rFixQt7+330UFBRg7ty56NOnD/r27Qs/Pz+UlJTI21+4cAHjxo1Dz549MWjQIERHR8sflLdixQp4eHhg7ty5sLS0RP/+/bF06dJa98GFCxcwZswYmJubY+jQoUhPT5fPu379OqZNm4ZevXph4MCBiIiIkD+Ic9euXRg7diyCgoLQu3dvWFtbw9vbW+FBfk/dvHkTH330ERYtWgSZTFZtH/zTzp07MXToUJibm8PR0VFh9GTcuHFYvnw5xo4dix49emD48OHIzs7GN998A3Nzc9jZ2eHw4cPy9vHx8XByckKvXr1gZmaGqVOnorCwEMCTBzYuXrwYQ4YMgZmZGaytrREYGCjfl+PGjcP8+fMxcOBADBgwACUlJfjtt98wZswYWFtb48MPP8QXX3yBa9eu1bp/iYSAoYaoCRg6dCi+/fZb+Pv7Y//+/bh58yb09PQQGhoqf2jnwoUL8ccff2DXrl345ZdfoK2tjZkzZ9b5ibsXLlyAo6MjTpw4AQcHh1rbSqVSzJgxA6qqqjh06BASExNx584d+WmT27dvY8KECfj4449x4sQJREZGYtu2bdi+fbu8j6SkJPTt2xenTp1CYGAg1q9fj6ysrGeuMzU1FWFhYUhPT4eZmRl8fX0BAI8ePcLEiRPRpUsXHD16FNu2bcOJEycUwsjZs2fRunVrHDt2DGvXrsX+/fuRlJSk0P+ff/6JcePGYcSIEVi4cCFUVFSeWcuuXbsQGhoKHx8fnD59GgsXLkRAQACSk5PlbbZv347AwECkp6ejRYsW+PzzzzFkyBCcOnUKgwcPRmBgIAAgOzsbQUFB8Pf3x6lTp3DgwAFcu3YNmzdvBgD8+OOPOHbsGH788UdkZmYiMjIScXFxSEtLk6/rxIkTiIuLw969e1FSUoKvv/4aU6ZMwcmTJ3H48GHIZDKsWrWq1v9TIiFgqCFqAoKCguDn54e//voLfn5+sLOzg4ODg3x04N69ezh06BC8vb3RunVraGlpYeHChcjJycGFCxfqtA51dXWMGDECGhoa0NTUrLXt+fPnceHCBXz77bfQ1tZGq1at4OXlhZ9//hn379/H3r178cEHH8DV1RXq6uowMDDApEmTEBMTI+9DX18fI0eOhEgkgq2tLfT09GodTXBxcUHHjh2hpqaGjz/+GH/++ScA4PDhw6ioqMB///tfNGvWDO3bt8fXX3+tsC5NTU1MmzYN6urq6N69O4yMjHD16lX5/Js3b2LcuHHo378/PDw8nruvEhIS4OLiAmtra4hEIlhbW8PFxQVxcXHyNoMHD4aBgQE0NDRgaWmJzp07w97eHurq6ujfvz9u3rwJADA0NMS+ffvQvXt3FBUV4c6dO9DV1cXt27cBAJ999hmio6Ohp6eHO3fuoLy8HFpaWvL5ANC/f3+0bdsWLVq0gK6uLn7++WfY2dmhpKQEf//9N1q1aqXQnkiohH0inkggVFVVMWLECIwYMQIymQy///479uzZg3nz5kFPTw9aWloAnhwA/0kkEuHGjRvQ0dF57jr09PSgqlq3v3Nu3LgBiUQCW1tbhekaGhr4888/cfPmTVy4cAGWlpbyeVKpFCKRSGF9/6Surg6pVPrMdf5zG9TV1SGRSAA8CSSFhYXo2bOnfL5MJkNlZSXu3bsHAGjdurXCyIu6urrCCFZGRgb69OmDX3/9FXPmzEHLli1r3f6CggJ06NBBYdp7772H3377rcZ6RSKRQp+qqqry9auqqmLz5s1ITEzEW2+9BSMjI5SUlMjnl5WV4bvvvsPp06fRrl07GBsbQyaTKeyrt99+W2Hb9u3bh7i4OKioqMDQ0BAlJSWCv+6KCGCoIXrtHTt2DB4eHkhJSYGOjg5UVFRgYGCAb775BsePH8f//vc/DBs2DABw4MABhbCQn5+PDh06yK/P+Od1JPfv31dYz79Pt6iqqj6zfbt27aCpqYlTp07Jg0pFRQX+/PNPdOrUCSdOnECvXr2wceNGheVLS0tfdndU065dO3Ts2BEHDx6UTyspKcG9e/fkp+ae55NPPkFYWBjGjh2LgIAAfP/997W2f++993D9+nWFaX/++afCvq/t9NU/RUdH4/jx40hMTESbNm0AANOmTZPP9/HxQcuWLZGamopmzZpBKpUqBLh/r+vAgQPYunUrYmNj0alTJwBAYGAgLl++XKd6iJoynn4ies317NkTrVu3xoIFC3Dp0iVUVlaipKQEe/fuxbVr1zBgwAC0bdsWAwYMQHBwMO7fv4/KykqsXr0ao0ePxsOHD9G6dWu0bNkSP//8M2QyGS5cuKAQAmrywQcf4NixY3j48CGKi4uxfv16+bzu3bujU6dOCA0NRWlpKcrLy7Fo0SJMnDgREokEjo6OyMrKwt69e1FVVYU7d+5g2rRpr+SbQwMHDkRpaSk2bNiAiooKPHz4EF5eXpgzZ06dg4W6ujpEIhFCQkLwyy+/YP/+/bW2Hz16NLZv346TJ09CIpEgLS0N27dvx6hRo+pd/9NRFHV1dVRVVWHPnj04duyYPFCWlJSgWbNmUFVVRUlJCcLCwlBSUlLjhc4AUFxcDFVVVWhqakImk+Ho0aP46aefntmeSEgYaohec5qamti2bRv09PQwffp0WFpaYsCAAdi7dy82bdqEDz74AAAQFhaGFi1aYOTIkejduzeOHDmCDRs2QE9PDxoaGggMDMSBAwdgbm6O0NDQaqeq/m3q1Klo3bo1PvroI4wYMQJ2dnbyeWpqali7di0KCgowaNAg9O3bF9evX8emTZvQrFkzvPvuu9iwYQO2b98OGxsbjBgxAp07d34loUZbWxvR0dE4deoU+vfvD3t7e6iqqmL16tX17uuDDz7ArFmzEBAQUOs1KEOGDMGCBQsQFBQES0tL+Pv7Y968eRg5cmS91/nll1+iffv2GDhwIPr27YuffvoJ48ePl4+s+Pj4IDc3F1ZWVvj4449RVFQEOzu7Z468fPrpp7CxscGwYcPQu3dvREZG4ssvv8TVq1fl3wgjEirep4aIiIgEgSM1REREJAgMNURERCQIDDVEREQkCAw1REREJAgMNURERCQIDDVEREQkCAw1REREJAgMNURERCQIDDVEREQkCAw1REREJAgMNURERCQIDDVEREQkCP8Paa/we43tlwAAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ax = sns.countplot(tips, x='size', stat='percent')\n", "plt.title(f'Viikon aikana ruokailleet seurueet, n={tips['size'].count()}')\n", "plt.xlabel('Seurueen henkilömäärä')\n", "plt.ylabel('')\n", "\n", "ax.yaxis.set_major_formatter(ticks)\n", "ax.yaxis.set_major_locator(MultipleLocator(10))\n", "plt.ylim(0, 100)\n", "\n", "for container in ax.containers:\n", " ax.bar_label(container, fmt='{:.1f} %', padding=2)" ] }, { "cell_type": "markdown", "id": "70decfc2-c26e-4c50-9c46-72cb3c08400d", "metadata": {}, "source": [ "### Vierekkäiset pylväät\n", "\n", "Käyttämällä **x**:n sijasta **y**-parametria saadaan vaakapylväskaavio. Käyttämällä **hue**-parametria voidaan lisätä kaavioon ryhmittelevä kategorinen muuttuja. Seuraavassa kaaviossa on käytetty **hue**-parametrin arvona **time**-muuttujaa (lounas vai illallinen). Kaaviossa on käytetty aiemmin selitettyjen lisäksi seuraavia muotoiluja:\n", "\n", "- Pylväiden nimet (**yticks**) korvataan suomenkielisillä viikonpäivillä. Ennen korvaamista on tärkeää katsoa kaaviosta, mitä viikonpäivää mikäkin pylväs edustaa. **plt.yticks**-funktion ensimmäinen parametri on viittaus korvattavien nimien numeroihin [0, 1, 2, 3]. Toisena parametrina annetaan korvattavat arvot.\n", "- Selitteen (**legend**) nimet korvataan suomenkielisillä vastineilla." ] }, { "cell_type": "code", "execution_count": 6, "id": "bfe97b4e-9f2e-4281-956d-0f63efee07a1", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkwAAAHBCAYAAACbouRYAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjYsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvq6yFwwAAAAlwSFlzAAAPYQAAD2EBqD+naQAAS4JJREFUeJzt3Xl4THf/xvE7y0Si1JaQoj+KSmtNiNi3qGrtUi2lsZXaaqu1pcRalEdbqaVKUdrSloqtdKOKxlJb60GppaGJJaFC1pnz+8OVeaToSSRMJt6v68olc+Ysn8+ZZHI75zvnuBiGYQgAAAB35OroAgAAAHI6AhMAAIAJAhMAAIAJAhMAAIAJAhMAAIAJAhMAAIAJAhMAAIAJAhMAAIAJAhMAZCOuBQzkTgQm3HehoaEKDQ11dBkOExUVJT8/P61atSpL65k9e7b8/Pzsj/+5X/38/DR79uxMrfPmZSIjI+Xn56fIyMjbbg+3mjt3rhYuXJilddyL1/VeGzVqlIKDg2/5/nbPZ9TNP3///FnMyXLi64Ps4e7oAoAHTdGiRbVixQr93//9X5bW8/zzz6t+/frZVFXO254zeuedd/Tqq69maR3/3M/jxo3Laln3XL9+/dSlS5dbvr/d8xlVsWJFrVixQuXKlZOkdN8DjkBgAu4zDw8P+fv7Z3k9vr6+8vX1zXpBOXR7D6p/7mdnCAk3h//b/Ufgbv5zkC9fvnS/J9nxOwNkBafkkGNt375dnTp1UvXq1VWzZk0NHTpUf/31l/35VatWyc/PT1FRUemWCw4O1qhRo+yP/fz8tHz5co0ePVpBQUEKCAjQwIEDdfHiRfs8VqtVH3zwgVq2bKkqVarI399fHTt21M6dO+3zJCUlafz48WrQoIEqVaqkZ555RosWLcp0X7c7Jbd79269/PLLqlGjhipVqqTg4GDNnj1bNpvtjuvJ7CmyI0eO6NVXX1WtWrVUsWJF1a9fX5MmTVJiYmKGlv/n9v7880/17dtXNWvWVNWqVdWhQwdt3brV/nxG9tfly5c1duxY1alTR5UrV9YLL7yQbp9Ltz/F8c9aRo0apa5du2rcuHEKDAxUu3btlJqamqFlJWnPnj166aWXVLVqVQUFBWnkyJGKjY1NN8+5c+f02muvKSgoSFWrVlXXrl11+PDhdHVKUnh4+B1flzfffFO1atVSampquulvv/22goKClJycbHpK7p/effddPfHEE/riiy/s0zLyu1OhQgUdOHBAHTp0UOXKldWoUSMtWLDAPk/az+n69evVp08fVa1aVQ0bNrzl5zIxMVEzZ87U008/rUqVKqlatWrq3r27/vvf/9rnufmUXEb2gSR9++236tSpkwICAuw/P8uWLbPPn3aabufOnerRo4eqVq2qOnXqaNq0abes+2arVq1S5cqVtXfvXj333HOqXLmymjVrpu+//15//PGHunbtqqpVq6pp06Zav359uuUy8n6Tkdfn888/V0hIiPz9/VWlShW1adNGGzZsSLec2XtC2uuzceNGDRw4UAEBAapRo4ZGjx6ta9eu3bEe3D0CE3KkNWvWqEePHipWrJj+85//6PXXX9e+ffvUoUMHXbp0KdPrmzVrlmw2m/7zn/9oxIgR2rJli6ZMmWJ/fsaMGXr//ffVoUMHffjhh5owYYLi4uI0aNAgXb9+XZI0efJkbd26VSNHjtTChQvVpEkTTZs2LctjkY4cOaJu3bqpYMGCmjVrlubOnatq1aopPDw83Rt2Vpw/f16dO3dWQkKCpk6dqgULFujZZ5/Vxx9/rMWLF2d6fTabTb1799b169c1ffp0zZkzRwULFlS/fv10+vRpSeb7KykpSV27dtV3332nIUOGKDw8XL6+vurZs+ctoSkj9uzZo9OnT2v27Nnq37+/3N0zdgB99+7d6tatmzw9PfXOO+/ojTfe0K5du9SlSxd7mIyNjVXHjh3122+/6c0339TMmTNls9nUuXNnnThxQtKNU0aS1L59e/v3/9SmTRvFxcWl688wDG3YsEHPPPOMPDw8MtXzwoULNXfuXE2YMEHt27eXlPHfHZvNpsGDB6t58+b64IMPVL16dc2YMUPbtm1Lt42wsDDly5dPs2fPVtu2bTVnzhxNnz7d/vyIESO0fPly9ejRQ4sWLdLrr7+u33//XUOGDLntAPiM7IMtW7aof//+Kl26tObMmaPw8HA9+uijmjhxon755Zd06xs2bJiqV6+uefPmqVWrVlq0aFG6cHI7qampeu2119SxY0fNmTNHefLk0bBhw9SnTx81atRI7777rnx8fDRy5EhFR0dn/AX5h9u9PsuXL9fYsWPVpEkTzZ8/X2+//bYsFouGDx+uc+fOScrce8K4ceNUokQJzZkzRz179tSXX36pefPm3XXNuDNOySHHsdlsevvtt1WnTh3NmjXLPr1atWpq3ry5Fi1apOHDh2dqneXLl9dbb71lf3zw4EF9/fXX9sfnz5/XkCFD0v1P3tPTUwMGDNDRo0cVEBCgXbt2qU6dOmrRooUkqWbNmsqbN68KFSp0t61KuvHmWKdOHb399ttydb3xf5i6detqy5Yt2r17t1q1apWl9UvSsWPH9OSTT+rdd99Vvnz5JEl16tTRzp07tXv3bvXp0ydT67t06ZJOnDihPn36qGHDhpKkKlWqKDw8XElJSZJkur/WrFmjI0eOaOXKlapataokqUGDBgoNDdWMGTP05ZdfZqqm1NRUjR8/XqVKlcrUcjNnztRjjz2m+fPny83NTZJUtWpVtWjRQl9++aU6d+6sJUuW6PLly/r0009VokQJe63NmzfXu+++q/fee89+ysjX1/eOp4+qV6+ukiVLasOGDfZxSnv37tW5c+fUpk2bTNX92Wef6e2339b48eP1wgsvSMrc745hGOrXr5+ef/55e23ffPONtmzZkm4MVYUKFTRjxgx7z9evX9eyZcvUr18/eXp6KiEhQcOGDVPHjh0lSUFBQYqPj9fUqVN14cIFFS1aNNP74MSJEwoODk73nxp/f3/VrFlTu3fvVrVq1ezTn3/+efXv31+SVLt2bX377bfasmWLvZ7bsdls6tOnj733v//+W6+99pq6du2q7t27S5K8vb313HPP6ddff72rU9G3e32kG0dme/ToYa9ZkkqWLKmQkBD98ssvKl68eKbeExo2bKiRI0fa+9++fbu2bNmioUOHZrpm/DsCE3KckydP6sKFC3rttdfSTf+///s/BQQE3NUnZf75B8zX11cJCQn2xzNnzpR040jC6dOndfLkSX3//feSpJSUFEk3/uB/9tlniomJUePGjdWwYcN0b3pWqzXd/6hdXV3tb3b/pm3btmrbtq2SkpJ05swZnT59Wr/99pusVqt921lVr1491atXTykpKTp58qROnTqlo0ePKjY2VgULFsz0+ry9vVWuXDm9+eab2rFjhxo0aKB69erp9ddft89jtr927twpHx8fVaxYMd0plMaNG2v69Om6cuWKChQokOGaPD09Mz1WJiEhQQcOHNDLL78swzDsdTz66KMqW7astm/frs6dO2vnzp168sknVaxYMfs8rq6uatCggSIiIjK8PRcXF7Vu3Vof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+fLq2rWrFi5cqJYtW6pGjRoZ+t3JjK+//lre3t5q2LChdu3apeXLl2vIkCHKmzevKlasKHd3d7399tvq0aOHkpOTtWrVKm3ZskXSvx8J/Ld9UKVKFa1du1YVK1aUr6+v9u3bp/nz52fr70Rm3c37ze1enxIlSmj58uXy9fXVww8/rJ9++klLliyRJHtv9+M9AZlHYIJDnDlzJt2n1tK0a9dO9erVU0hIiB566CHNnz9f/fv3V758+VS/fn299tpr8vHxkXTjNMl7772nmTNnqn///ipRooReffVVffXVV5mqJX/+/PaPSg8aNEgPPfSQnnzySS1btky9evXSnj17FBwcrAkTJuidd97RokWLdOHCBRUpUkTt27fXoEGDsrQvRo0apZSUFL3zzjtKTk5WyZIl1bdvXx0/flzff/+9rFar/QjG3erdu7fi4uK0dOlSvf/++3rkkUfUpk0bubi4aP78+ZkeYJ0nTx4tWrRIM2fO1OTJk/X333+rdOnSmjBhgkJCQiTJdH/lzZtXy5cv18yZM/X222/r6tWrKlGihIYOHaoePXrYt/X6668rNTVVb7/9ttzd3dW8eXMNHTpUY8aMMa0zI8vWq1dPCxcuVHh4uAYOHCiLxaKKFSvqo48+sg+oLVasmD777DPNnDlTYWFhSkpKUunSpTV58uR0pzX79OmjOXPmqFevXtqwYYOKFy9+27oKFiyohg0bauvWrWrevHmG9/vtvPrqq9q4caPGjBmjiIiIDP3uZMagQYO0a9curVixQo888ojGjh2rF198UdKNU2szZ85UeHi4+vbtqwIFCsjf318ff/yxQkNDtWfPnjtek+rf9sHUqVM1ceJETZw4UZJUunRpjR8/XhEREdqzZ0+me8gOd/t+88/XZ86cOZo8ebJGjRolDw8PlStXTnPnztWUKVO0Z88ehYaGZug9Afefi8HoMOC+OnHihJo3b6533nlHzz77rKPLAW4rKipKTZo00VtvvWUPwcCDjCNMwH20bds2ffvtt5Lu7nYRAADHIDAB99HMmTN19uxZdenS5Y4fUQcA5DyckgMAADDBZQUAAABMEJgAAABMEJgAAABMMOg7G9hsNqWmpsrV1TXT97ICAACOYRiGbDab3N3dTa/UT2DKBqmpqfY7aQMAAOdSuXJl03tCEpiyQVoqrVChQqZuwukMrFarDh06pMqV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V0899ZQiIiLk6+vr4EqdC4EJAIBcwmazae7cuerTp4/y5csnSbpy5YpWrVqlKlWqaMuWLQoPD9eKFSv00UcfObha50JgAgAgl4iMjNT58+fVvn17+zQPDw9VrlxZ7du3l8Vi0RNPPKGXXnpJGzdudGClzofABABALrFp0yY1bdpUefPmtU8rW7askpOT081ns9lkGMb9Ls+pEZgAAMgl9u7dqxo1aqSb9txzz+nYsWNasGCBrFarjh49qmXLlqlNmzYOqtI5EZgAAMgloqKiVLRo0XTTypYtq2XLlmnLli2qVauWevbsqY4dOyo0NNRBVTonLisAAEAusW/fvttOr1q1qpYvX36fq8ldOMIEAABggsAEAABggsAEAABggsAEAABggsAEAABggsAEAABggsAEAABggsAEAABggsAEAABggsAEAABggsAEAABggsAEAABggsAEAABgwt3RBeQmliKl5WpLdnQZAIBczOJdxtElPJAITNmoSOvxcnNzc3QZAIBczrBZ5eLK35v7iVNy2chqtTq6hGxntVp1+PDhXNcbfTmf3NobfTmfnNAbYen+IzDBVEJCgqNLuCfoy/nk1t7oy/nk5t5wewQmAAAAEwQmAAAAEwQmAAAAEwQmAAAAEwQmAAAAEwQmAAAAE1y4MhsYhiHpxrU5cts1R9L6oS/nkFv7knJvb/TlfHJrbw9iX2nT0v6O/xsXIyNz4V8lJyfr0KFDji4DAADchcqVK8vDw+Nf5yEwZQObzabU1FS5urrKxcXF0eUAAIAMMAxDNptN7u7ucnX991FKBCYAAAATDPoGAAAwQWACAAAwQWACAAAwQWACAAAwQWACAAAwQWACAAAwQWACAAAwQWDKokuXLqlfv34KDAxUzZo1NXnyZKWmpjq6rCyJjY1V06ZNFRkZaZ924MABPf/88woICFBwcLA+//xzB1aYOUeOHFH37t0VFBSkunXrasSIEYqNjZXk3H3t3LlTzz//vKpVq6a6detq4sSJSkxMlOTcfaWxWq0KDQ3VqFGj7NOcva8NGzaoQoUKCggIsH8NHz5cknP3dvnyZY0YMUI1a9ZUjRo11K9fP50/f16S8/YVERGR7nUKCAhQpUqVVKlSJUnO21ea3377TZ07d1ZgYKDq1aunSZMmKTk5WZJz93bixAm9/PLLCgwMVKNGjTR37lzZbDZJ2dCXgSx56aWXjKFDhxrXr183zpw5Y7Ro0cJYsGCBo8u6a3v27DGeeuopo3z58sbPP/9sGIZhXL582QgKCjKWLVtmpKSkGDt27DACAgKMAwcOOLhacwkJCUbdunWNd99910hKSjJiY2ONXr16Gb1793bqvi5dumRUrlzZ+PLLLw2r1WrExMQYLVu2NN59912n7utm77zzjvHEE08YI0eONAzDuX8O00ydOtUYNWrULdOdvbeXXnrJ6N+/v3HlyhXj6tWrxquvvmq88sorTt/XzaKjo426desaX331ldP3ZbVajbp16xpLliwxrFar8ddffxnNmjUzwsPDnbq3+Ph4o1GjRsbo0aONa9euGVFRUUbLli2N2bNnZ0tfHGHKgtOnT2vXrl0aPny4vLy89Oijj6pfv35avny5o0u7K6tXr9awYcM0ZMiQdNM3b96sggULqnPnznJ3d1ft2rXVqlUrp+jz3LlzeuKJJ9S/f395eHioUKFC6tChg3bv3u3UfRUuXFg7duxQSEiIXFxcdPnyZSUlJalw4cJO3VeanTt3avPmzXr66aft03JDX4cOHbIfobiZM/f266+/6sCBA5o6daoefvhh5cuXTxMnTtSwYcOcuq+bGYah4cOHq1GjRmrTpo3T93XlyhVduHBBNpvNftNZV1dXeXl5OXVve/fu1aVLlzR27FjlzZtXJUqUUN++ffXpp59q06ZNWe6LwJQFv//+uwoWLKhixYrZp5UtW1bnzp3T33//7cDK7k69evX0zTffqHnz5umm//777ypfvny6aeXKldORI0fuZ3l3pUyZMvrwww/l5uZmn7Zp0yZVrFjRqfuSpHz58kmSGjZsqFatWsnHx0chISFO39elS5c0evRozZw5U15eXvbpzt6XzWbTb7/9pi1btqhx48Zq0KCB3nzzTV25csWpezt48KDKlSunlStXqmnTpqpXr56mTZsmHx8fp+7rZmvWrNHx48ftp4edva9ChQqpW7dumjZtmipXrqyGDRuqdOnS6tatm1P3ZrPZZLFYZLFY7NNcXFx08eJF7du3L8t9EZiy4Nq1a+ne0CXZH1+/ft0RJWWJj4+P3N3db5l+uz49PT2drkfDMDRr1iz98MMPGj16dK7pa/Pmzfrxxx/l6uqqgQMHOnVfNptNw4cPV/fu3fXEE0+ke86Z+5JujA2sUKGCmjVrpg0bNuizzz7TqVOnNHz4cKfu7cqVKzp69KhOnTql1atX66uvvlJMTIxGjhzp1H2lsdlsmjt3rvr06WP/T4qz92Wz2eTp6ak333xT+/fv17p163TixAm99957Tt1btWrV5OnpqZkzZyohIUFnz57VwoUL7c9ntS8CUxbkzZtXCQkJ6aalPX7ooYccUdI94eXlZR9MnCYxMdGpeoyPj9fAgQO1du1aLVu2TH5+frmiL+nGL32xYsU0fPhwbdu2zan7mj9/vjw8PBQaGnrLc87clyR5e3tr+fLlat++vby8vFS8eHENHz5cP/74owzDcNrePDw8JEmjR49Wvnz55O3trcGDB2vr1q1O3VeayMhInT9/Xu3bt7dPc/afxW+++UabNm1Sp06d5OHhoccff1z9+/fXp59+6tS9Pfzww1qwYIEOHDigRo0aafDgwWrbtq0kyc3NLct9EZiy4PHHH9fly5d18eJF+7QTJ07I19dX+fPnd2Bl2at8+fL6/fff0007fvy4Hn/8cQdVlDlnzpzRc889p/j4eH3xxRfy8/OT5Nx9/fLLL3rmmWfsn2qRpOTkZFksFpUrV85p+1qzZo127dqlwMBABQYGat26dVq3bp0CAwOd+vWSbnxac8aMGfYxI9KN18zV1VVVqlRx2t7KlSsnm82mlJQU+7S0TyU9+eSTTttXmk2bNqlp06bKmzevfZqz/yz+9ddf6d47JMnd3V0Wi8Wpe0tOTlZqaqqWLl2qyMhIff7553J1dVW5cuWy53fsngxVf4C8+OKLxpAhQ4yrV6/aPyX33nvvObqsLLv5U3KxsbFGYGCg8dFHHxnJycnGzp07jYCAAGPnzp0OrtLc5cuXjUaNGhmjRo0yrFZruuecua/4+HijYcOGxpQpU4ykpCQjKirKaN++vTFu3Din7uufRo4caf+UnLP39ddffxn+/v7GBx98YKSkpBhnz541XnjhBeONN95w6t6Sk5ONpk2bGgMGDDDi4+ONS5cuGV26dDH69+/v1H2ladmypbFy5cp005y9r99//92oVKmSMXfuXCM1NdU4c+aM0bJlS2Pq1KlO3VtSUpIRGBhorFy50rDZbMahQ4eM+vXrGytWrMiWvghMWXThwgVjwIABRlBQkFGrVi1j6tSpRmpqqqPLyrKbA5NhGMbBgweNDh06GAEBAUaTJk2ML7/80oHVZdyiRYuM8uXLG1WrVjX8/f3TfRmG8/ZlGDfe9Lp3724EBgYajRs3Nv7zn/8YSUlJhmE4d183uzkwGYbz9xUZGWmvv1atWsbEiRONxMREwzCcu7fo6Ghj8ODBRt26dY3AwEBjxIgRxpUrVwzDcO6+DMMw/P39jS1bttwy3dn72r59u/H8888b1atXNxo1apRr3j927dpltGvXzvD39zeaNGliLF261P5cVvtyMYybjg8DAADgFoxhAgAAMEFgAgAAMEFgAgAAMEFgAgAAMEFgAgAAMEFgAgAAMEFgAgAAMEFgApCj+fn5KTIy8q6WDQ0N1ezZs7O5otsbO3asxo4dK0kKCAjQnj170j3fokULRUREaM+ePQoICDBd37x589SzZ890ywJwHC5cCSBH8/Pz09KlS1WzZs1MLxsaGqqgoCANGDDgHlQG4EHCESYATmv27NkKDQ1NNy04OFirVq26Zd7Dhw+rVq1aWrx48W3ni4yMtN+YOSoqSn5+fvrqq6/UuHFj+fv76/XXX9eePXvUunVrBQQEqGvXroqNjZUkxcfHa8yYMXr66afl7++v+vXra968efZ1nzhxQr1791ajRo1UpUoVNW/eXD/88EO6bU2dOlU1atTQ+PHjlZycrGnTpunZZ59VQECAateurYkTJ4r/3wKO4+7oAgDgXvv111/Vs2dPDR06VM8//3yGl9u6das2bNigP//8U23bttXhw4e1YMECWSwWdezYUZ988oleffVVzZgxQ1FRUfriiy+UP39+bd68WQMHDtSzzz6rUqVKacCAAWrSpInCw8NlGIZmzJihsLAwNW7c2L6ta9euafv27UpMTNSSJUu0bds2LVmyREWLFtW+ffv00ksv6amnnlLt2rXvxS4CYILABCBX++2337R06VK98sormQpLktSjRw95eXmpfPny8vHxUbt27VSsWDFJkr+/v86ePStJGjBggNzc3JQvXz5FR0crT548kqTz58+rVKlSmj9/vooVKybDMHT27Fk9/PDDiomJSbettm3bysPDQx4eHnrhhRfUrl07FSlSROfPn1diYqIeeuihW5YBcP8QmADkajt27FBAQIDWrVunrl27ysPDI8PLFixY0P69m5ubHn74YftjV1dX+ymyS5cuafLkyTp8+LBKliypSpUqSZJsNpsk6ciRI+rXr58uXLigsmXLqnDhwrecXitatKj9+4SEBE2YMEG7d++Wr6+vKlSoIMMw7OsDcP8RmAA4LVdXV6WkpNgf22w2Xb58Od083bp1U+/evdWqVSvNnj1bQ4cOve2ycXFxt6zfxcUlQ3UMGjRIwcHBWrhwodzd3RUXF6eVK1dKkmJiYjRo0CCFh4crODhYkrRp0yZt3rz5jtsaM2aMChQooJ9++kl58uSRzWZTjRo1MlQLgHuDQd8AcrzY2FhFR0en+0pNTVXZsmV19OhR/f7770pNTdWHH36o69evp1vWYrHooYce0uTJk7Vo0SL98ssvkqSyZcvqu+++U2Jioi5cuKClS5fedX1Xr16Vp6en3NzcFBsbq0mTJkmSUlJSdO3aNVmtVnl5eUmSjh8/rvfff1+SlJycfNv1xcfHK0+ePHJ1dVV8fLymT5+u+Pj4dAEPwP1FYAKQ4w0ePFgNGzZM93X69Gk99dRTatWqlbp166b69esrLi5O1atXv+06ateureeff14jR47U9evXNWzYMF27dk1169ZVly5d1Lp167uu76233tKGDRtUrVo1tWvXTt7e3qpataqOHTumMmXKaMSIERo+fLiqVaumAQMG6LnnnlOePHl07Nix265vzJgxOnLkiIKCgvTMM8/oypUrCg4OvuP8AO49rsMEAABggiNMAAAAJghMAAAAJghMAAAAJghMAAAAJghMAAAAJghMAAAAJghMAAAAJghMAAAAJghMAAAAJghMAAAAJghMAAAAJghMAAAAJv4fKp1HbE9wiUsAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ax = sns.countplot(tips, y='day', hue='time')\n", "plt.title('Lounas- ja illallisseurueet viikonpäivän mukaan')\n", "plt.xlabel('Lukumäärä')\n", "plt.ylabel('')\n", " \n", "plt.yticks([0, 1, 2, 3], ['Torstai', 'Perjantai', 'Lauantai', 'Sunnuntai'])\n", "ax.legend(['Lounas', 'Illallinen'])\n", "ax.xaxis.set_major_locator(MultipleLocator(10))\n", "\n", "for container in ax.containers:\n", " ax.bar_label(container, fmt='{:.0f}', padding=2)" ] }, { "cell_type": "markdown", "id": "294efd4c-e5d7-496c-9a93-63f279fb15e9", "metadata": {}, "source": [ "Seuraavana vielä kertauksen vuoksi toinen vastaavanlainen esimerkki." ] }, { "cell_type": "code", "execution_count": 7, "id": "b8de4336-f824-4e7a-ac69-3b86c3226285", "metadata": {}, "outputs": [ { "data": { "image/png": "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NAm9evUSulQiItJxGgebrVu3YsOGDbC1ta2KeugNZG1tjYSEBHz33XdYtGgRqlWrhu7duyMiIgLDhw9HWVkZ4uLiEBcXp1qnVatWSExMFLBqIiLSRRoHGwsLC7zzzjtVUQu9wVxdXZGSkvLM9MWLFwtQDRER6SuNg014eDjGjx+PgQMHombNmqoxEQBQt25drRZHREREpAmNg01kZCQAYNOmTapQo1QqYWBggL/++ku71RERERFpQONg8/vvv1dFHURERESvTONgU69evaqog4iIiOiVaRxsmjRpojau5knsiiIiIiIhaRxsVq5cqfY6Pz8fP/74I3r27Km1okgc5AoFpHyeGBERvUYaBxtXV9dnprVq1QrBwcHo06ePVooicZBKJIhZvQ+XcgsEq6GtfV2EdXMWbP9ERPR6aeXe9DVq1MDNmze1sSkSmUu5BThzPV+w/b9rVUOwfRMR0euncbD59ddf1V6Xlpbi999/x/vvv6+tmoiIiIgqReNgM3/+fLXXUqkUNjY2mDhxotaKIiIiIqoMjYPNzp07nzu9uLj4lYshIiIiehUaX7Ly9FVRAHD8+HFeFUVERESC0zjYLFq0CKmpqQCAsrIyfPfdd/jss8/Qtm1brRdHREREpAmNu6KWLVuGgQMH4s6dO9i4cSPu3buHxMREtGnTpirqIyIiIqowjYONg4MDEhMTERISgqZNm2L16tUwMTGpitqIiIiINFLhYLNw4UK1187Ozjh06BASEhJgaPh4M8OGDdNudUREREQaqHCwycjIeGaao6Mjjhw5AgAvfH4UERER0etS4WDz448/VmUdRERERK/sle88/CQ/P79XKIWIiIjo1bzynYcLCgrw8OFDtGrVisGGiIiIBPXKdx5WKpVYunQp7t69q62aiIiIiCpF4xv0Pc3AwAADBw7Ehg0btFEPERERUaW9crABgEuXLvGqKCIiIhKcxl1RQUFBaiGmtLQUZ8+eRY8ePbRaGBEREZGmNA42bm5uaq8lEgmCg4PRqVMnrRVFREREVBkaB5vn3V1YLpfjypUreO+997RSFBEREVFlaGWMTV5eHj766CNtbIqIiIio0rQSbIDHl30TERERCUlrwYZXRREREZHQtBZsiIiIiIRW4cHDmZmZL5yXn5+vlWKIiIiIXkWFg01QUNBL57MrioiIiIRW4WBz5syZqqyDiIiI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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ax = sns.countplot(tips, x='size', hue='time')\n", "plt.title('Seurueiden koot aterialajin mukaan')\n", "plt.xlabel('Seurueen henkilömäärä')\n", "plt.ylabel('Lukumäärä')\n", "ax.legend(['Lounas', 'Illallinen'], ncol=2)\n", "for container in ax.containers:\n", " ax.bar_label(container, fmt='{:.0f}', padding=2)" ] }, { "cell_type": "markdown", "id": "8655da19-534a-494e-8f7e-6e58a12e1fcb", "metadata": {}, "source": [ "### Usean kaavion yhdistelmä\n", "\n", "Vierekkäisten pylväiden kaavioihin voidaan ottaa lukumäärien sijasta prosenttiluvut. Tällaiset kaaviot ovat tulkinnan kannalta ongelmallisia, koska katsojan on vaikea hahmottaa, mistä prosentit on laskettu? Edellisen kaavion kohdalla prosentit voisi laskea seurueiden kokonaismäärästä tai lounasseurueiden ja illallisseurueiden kokonaismääristä. Parametrin **stat** arvolla **percent** laskettaisiin prosentit seurueiden kokonaismäärästä.\n", "\n", "Tulkinnan kannalta on selkeämpä käyttää kahden kaavion yhtdistelmää kuten seuraavassa esimerkissä.\n", "\n", "Usean kaavion yhdistelmä voidaan luoda **plt.subplots**-funktiolla, joka palauttaa kuvion (**figure**) ja kuvion sisään sijoitettujen kaavioiden listan. Seuraavassa nämä on sijoitettu muuttujien **fig** ja **axs** arvoiksi. Parametrin `ncols=2` mukaisesti luodaan kuvio, joka sisältää kaksi kaaviota vierekkäin. Kaavioilla on yhteinen y-akseli (`sharey=True`) ja kuvion koko on **12.8 x 4.8**. Oletuskuvion koko olisi ollut **6.4 x 4.8**. Koko kuvion otsikko määritellään **plt.suptitle**-funktiolla.\n", "\n", "Kuvion sisällä sijaitseviin kaavioihin voi viitata **axs[0]** ja **axs[1]**. Kaaviot luodaan normaaliin tapaan, mutta ylimääräisenä parametrina **ax** annetaan viittaus kaavion sijaintiin kuvion sisällä, esimerkiksi `ax=axs[0]`.\n", "\n", "Prosentteja käytettäessä on tärkeää ilmoittaa n-arvot eli arvot, joista prosentit on laskettu. Seuraavassa esimerkissä ne on lisätty kaavioiden otsikoihin.\n", "\n", "Lisätietoa usean kaavion yhdistelmistä https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.subplots.html." ] }, { "cell_type": "code", "execution_count": 8, "id": "d32a3596-eb58-4d42-8e67-ab7700316b8a", "metadata": {}, "outputs": [ { "data": { "image/png": "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pBs3bmj79u2aOXOmPv30U/3yyy/P1I6BAweqa9euatGihUaOHKnly5ebvE7Lly+vWbNmaerUqfr222/VvHlzVa5cOVPul7mvMQCA5WLBTgCAUaFChWRra6vFixfr/v37KY6fPXtWOXPmVKlSpVSmTBm98sor+uuvv+Tq6mr8KVq0qCZPnqzff/9dkoxz5//++29jPeYugmjOudWrV9e9e/eUlJRkEsepU6c0ffr0FFMJpIcfgBISEvSf//zHuC8+Pl67d+82bpvbvmfh4OAgBwcHtW/fXm5ubho7dqxu374t6eH0lIMHD+rixYsm56xdu1aFCxdWqVKlVL16dSUmJqZYaDT5w2ny6AFzpk486s0335SdnZ3Cw8NN9kdGRury5cvGUS7P8rt91NGjR3X//n316dPH5HGgyR8qk5KSdOnSJXl6emrjxo2SHv5+evXqpdq1a+uff/6RJJPfk6urq4oUKWLW9Q8cOKAmTZqoZs2asrOzkyTjUzHMfRKIOdeoUaOGGjVqZPwgfvToUUVFRaXrGhs3blTNmjV17do12djYyM3NTaNHj1a+fPn0zz//6ObNmzp37pzatWunypUrG5MG/27X+++/r/Hjx0uSXnnlFbVp00adOnXSnTt3dPfu3WdqR6FChZQzZ06NGjVKv//+u+bNm2dyPHnUUN++fVW8eHH5+voap29k9P0y5zUGALBsjLwAABjZ2Nho9OjR8vb2Vtu2bdWpUyeVLVtWsbGx2r17t8LCwjRw4EDjN/ODBw/WqFGjZGNjowYNGuj27dsKDQ3VlStXjEPEPT09FRAQID8/P/Xq1Uv//POPpk2bZhyu/STmnOvp6alq1aqpX79+6tevn8qWLavDhw9r6tSpqlu3rgoWLJii3lq1aqlu3boaOXKkbty4oddee00LFixQVFSUXnnlFeO9MKd9GcHKykpjxoxRmzZtNGHCBPn7+6t79+5au3atunfvrv79+6tAgQL68ccftXfvXn311VeytrZW/fr1VaNGDX355Ze6evWqKlasqIiICH377bd67733jOtd5MuXT9evX9f27dv1f//3f08dkeDo6KjevXtr2rRpypEjh95++2399ddfmjJlisqVK6c2bdoY7316f7ePqlSpkmxtbTVp0iR9/PHHio+P16pVq7Rt2zZJD9eicHZ2VtGiRTV+/HjdvXtXJUuW1NGj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ExcxMTE6cOCA8f1148aNqlmzpq5duyYbGxu5ublp9OjRypcvn7Evkt52ODg4yMHBQe3bt5ebm5vGjh2r27dvm9RXqFAhvfLKK/rss8+0detW41NCzLnOzZs3de7cObVr106VK1eWre3D74T/3YewsbFJ8701V5EiRZ7Yh0j+ciwtDh06pIoVK6Y6IrZ+/fqysrLSTz/9ZLL/v//9rxwdHZmeikzHyAsgg/zzzz+aP39+iv3lypVT3bp19dlnn+mLL77Q4MGD1bp1a928eVPTpk1T/vz5TeYN2tvbKzAwUIMGDVJMTIymTZtmHLlhrjfeeEN58uTRzJkzZWtrK1tbW23atMn4GKvY2FjlypVLlSpV0rRp05QjRw45Ozvr3LlzWr16tZo0aSJJxpW5Z8+erSpVqujPP//UrFmzFB8fb1yzoWbNmgoKCpK3t7c++ugj2djYaOnSpbKzs1ODBg1SxJY8cmLs2LFq27atbt++rUWLFun48eOSlOoin7ly5ZKfn5969+6tb7/9Vv369UtRr7e3t3766SeNHDlSq1evNus65twnScqXL58kacuWLapfv77Kli2rf/75R//8848qVqyYYuXyzPDZZ5+pc+fO6tWrlz7++GPduHFDQUFBevPNN42PkBs4cKC8vb01cOBAtWvXTvHx8fr+++915coVBQUFZXqMAADLVKlSJdna2mrSpEn6+OOPFR8fr1WrVmnbtm2S/reGQlpUq1ZN8+bNU6FCheTm5qYrV67ou+++U/Xq1VWwYEFVrlxZS5YsUWBgoBo0aKCrV69q7ty5un79unE6pLu7uwwGg7y9vdW7d285ODhow4YNunPnTopREulth5WVlcaMGaM2bdpowoQJ8vf3T1Em+clv48ePV+3atc26zuuvv67XXntNYWFhKlq0qPLly6ddu3bp+++/l/S/PkTylz/btm1T/vz5VaFCBUVFRenChQsqV66cxa0RcfLkSdWtWzfVY6+//ro++ugjzZkzR7a2tqpWrZq2bt2qtWvXys/PTzly5MjiaPGyYeQFkEEuXLiggICAFD/r1q2TJLVp00YhISH6888/5e3trcDAQLm5uWnFihUqXLiwpIdvcCEhIcY38ilTpqhv377G1a/NlTdvXoWGhiopKUkDBw7U0KFDdfnyZS1atEgODg6KjIyU9PCDfZs2bTRv3jx9/PHHCg0N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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, axs = plt.subplots(ncols=2, sharey=True, figsize=(12.8, 4.8))\n", "\n", "plt.suptitle('Seurueiden koot lounas- ja illallisasiakkailla')\n", "\n", "n_arvot = tips.groupby('time', observed=True)['size'].count()\n", "\n", "# Lounasasiakkaiden kaavio\n", "sns.countplot(tips[tips['time']=='Lunch'], x='size', stat='percent', ax=axs[0])\n", "axs[0].set_title(f'Lounasasiakkaat, n={n_arvot['Lunch']}')\n", "axs[0].set_ylabel('Prosenttia')\n", "axs[0].set_xlabel('Seurueen koko')\n", "axs[0].yaxis.set_major_formatter(ticks)\n", "for container in axs[0].containers:\n", " axs[0].bar_label(container, fmt='{:.1f} %', padding=2)\n", "\n", "# Illallisasiakkaiden kaavio\n", "sns.countplot(tips[tips['time']=='Dinner'], x='size', stat='percent', ax=axs[1])\n", "axs[1].set_title(f'Illallisasiakkaat, n={n_arvot['Dinner']}')\n", "axs[1].set_xlabel('Seurueen koko')\n", "for container in axs[1].containers:\n", " axs[1].bar_label(container, fmt='{:.1f} %', padding=2)" ] }, { "cell_type": "markdown", "id": "6ae3b5ee-1749-4a15-87ed-b81f76232046", "metadata": {}, "source": [ "### Muuta huomioitavaa\n", "\n", "#### Fontit\n", "\n", "Tekstiä lisäävät funktiot (**plt.title**, **plt.xlabel**, **plt.xticks**, **bar_label** jne.) tunnistavat tekstiin liittyviä parametreja https://matplotlib.org/stable/api/text_api.html#matplotlib.text.Text kuten esimerkiksi **fontsize** ja **fontstyle**.\n", "\n", "Jos haluat tehdä kerralla koko muistiota koskevia fonttimuutoksia, niin katso [matplotlib7.ipynb](https://github.com/taanila/kaaviot/blob/master/matplotlib7.ipynb).\n", "\n", "#### Värit\n", "\n", "Kaavion väripaletin voit vaihtaa antamalla kaavionluonti-komennossa arvon **palette**-parametrille. Esimerkiksi `palette='Set1'` muuttaa paletiksi **Set1** tai `palette=['green', 'red']` muuntaa kahdenvärisiä pylväitä sisältävän kaavion pylväät vihreiksi ja punaisiksi.\n", "\n", "Jos haluat käyttää kaikissa muistion kaavioissa samaa vaihtoehtoista palettia, niin käytä **sns.set_palette**-funktiota, esimerkiksi `sns.set_palette('Set1')`.\n", "\n", "- Värejä https://matplotlib.org/stable/gallery/color/named_colors.html.\n", "- Paletteja https://matplotlib.org/stable/gallery/color/colormap_reference.html.\n", "\n", "#### Kuvion koko\n", "\n", "Kuvion (**Figure**) oletuskoko on **6.4 x 4.8**. Jos haluat vaihtaa koon, niin luo kuvio ennen kaavion luontia, esimerkiksi `plt.figure(figsize=(4, 3))`. Usean kaavion yhdistelmän koon voit vaihtaa **subplots** funktion **figsize**-parametrilla." ] }, { "cell_type": "markdown", "id": "d99a1211-525c-45a3-9843-fc7a5eeb6715", "metadata": {}, "source": [ "### Lisätietoa\n", "\n", "https://tilastoapu.wordpress.com/python" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.13.9" } }, "nbformat": 4, "nbformat_minor": 5 }