{ "cells": [ { "cell_type": "code", "execution_count": 1, "id": "5505d2e3", "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": "99e63c07", "metadata": {}, "source": [ "## Histplot - määrällisen muuttujan luokiteltu jakauma\n", "\n", "Määrällisen muuttujan jakauman graafiseen esittämiseen voidaan käyttää\n", "\n", "- Ruutu- ja janakaaviota (boxplot), joka perustuu tilastollisiin tunnuslukuihin. Katso https://github.com/taanila/kaaviot/blob/master/sns_box.ipynb.\n", "- Histogrammia, joka esittää luokitellun muuttujan lukumäärä- tai prosenttiyhteenvedon.\n", "\n", "Tässä muistiossa esitetään esimerkkejä histogrammin käytöstä.\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": "6cf278ec", "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": "986f4c2d-1807-4e5a-9d47-d0ea804e568c", "metadata": {}, "source": [ "### Datan avaaminen\n", "\n", "Seaborn-paketin esimerkkidata **tips** sisältää tietoja ravintolassa asioineista seurueista." ] }, { "cell_type": "code", "execution_count": 3, "id": "595ef5a4-f318-4fb4-90f7-3cc2cea5692d", "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": "226fd4d7", "metadata": {}, "source": [ "### Luokiteltu jakauma\n", "\n", "Seabornin **histplot** esittää määrällisen muuttujan luokitellun jakauman histogrammina. Lisätietoa https://seaborn.pydata.org/generated/seaborn.histplot.html.\n", "\n", "Seuraavassa esitetään laskun loppusumman jakauma käyttäen luokitelua kuuteen luokkaan (`bins=6`)" ] }, { "cell_type": "code", "execution_count": 4, "id": "eb3f7f54", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0, 0.5, 'Lukumäärä')" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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OnjwoBYsWKARI0bojjvuoO8Bsn79en366acqKSlRSUmJhg4dqqFDh6qkpITXe4DFxMQoLy9PS5cuVUNDgw4dOqTf//73uueee4L+Nc+XYOKiJSYm6vXXX9eAAQMkfX8kfW5urj7//HPFxcVp0qRJGj58uMVVmuHVV1/V/Pnz5XA4ZLPZmqzbs2cPvQ+giooKPfXUUyotLdUll1yijIwMz9lp9L1tnL2Gzfz58yXxWRNou3bt0rPPPqvPP/9cnTp10pAhQ5Sdna1OnToFde8JNgAAwBjsigIAAMYg2AAAAGMQbAAAgDEINgAAwBgEGwAAYAyCDQAAMAbBBgAAGINgAwAAjEGwAQyUmJionTt3+v1x09LS9O677/r9cf/ZjBkzPFeZBQBfEGwAAIAxCDZAB1NXV6cFCxbozjvvVEpKilJTUzV37lzPt/gWFxdr+PDh6tevn9LT05Wbm6uGhoZzHufDDz9U3759tW7dOknnzhK9++67SktLkyTt3LlTaWlpeumll3TzzTerf//+euCBB+R0Or2qOT8/X0OGDFGfPn2UkZGh//u///Osy8rK0vz58zV8+HD17t1bw4cPV0lJiSTp66+/VmJiot544w0NGjRIffv2VXZ2tmfcP/zhD8rKymoy1g9npZrrxT/PXu3cudPzTetnx33vvfd02223qXfv3po5c6ZKSkp01113KSUlRWPGjNGJEyckfT9D9cQTT2jixIlKSUlRenq6duzYoblz5+qGG27QoEGDlJ+f7xlry5Yt+vd//3elpqbq5z//uX71q1/piy++8KqXgOkINkAH89prr+nDDz/Ua6+9pj179ujFF1/UypUrVVRUJEmaNm2asrKyVFJSoldffVXr16/X5s2bmzzG9u3b9fDDD+vZZ5/VnXfe6dW4Bw8e1JEjR7Rp0ybl5+drz549evPNN1u837vvvqv58+crJydHxcXFmjVrlubMmaNNmzZ5tnnrrbc0bdo07dq1S+np6frtb3+rkydPetZv3LhRhYWFWr9+vb788kvNmTPHq5q96UVztm/frrVr1+rtt9/W6tWrNXfuXC1ZskSbN2/WN9980+T5v/POO7rvvvu0e/duXX/99Ro/fryuueYa7dixQxMnTtQTTzyhuro6HT58WL/73e80YcIE7dixQ9u2bZPb7dYLL7zgdV2AyQg2QAdz7733avny5eratau+/fZb1dbWKioqSkeOHJEkderUSevWrdPWrVsVExOj7du364477vDcf/v27Zo8ebLmzJmjW2+91aexJ0+erIiICP34xz/WgAED9Pe//73F+7zzzjsaNWqUUlNTZbfblZqaqlGjRmnlypWebTIzMzVw4ECFh4frP//zP+VwOLR161bP+pkzZyouLk5du3bVlClTtH79etXV1bU4dku9aMmvf/1rORwOJSQkqGvXrrrnnnvUrVs3xcXFqXfv3jp48KBn24EDB6pfv34KCQnRwIEDFRkZqaysLIWGhuq2225TXV2djh07pri4OL3//vtKS0uT0+nU4cOHFRsb6/n3Azo6gg3QwdTU1OjRRx9V//79NX78eL333ntyu91qbGyU9P2MzmWXXaY5c+ZowIABmjRpkg4fPuy5/44dO3Tddddp1apVPo/dtWtXz89hYWGe3V/NOXbsmK666qomy6688somoeCaa67x/Gyz2XT55Zfr6NGjnmU//vGPPT//6Ec/Ul1dnU6dOtXi2C31oiUxMTGen+12uzp37uy5HRIS0uT5N7etzWaTJDU2NiosLExr1qzRLbfcoiFDhujZZ5/V8ePHveol0BEQbIAOJicnRw6HQx999JEKCws1b948T6g5c+aMKioq9Pjjj2vbtm1as2aNTp8+raeeespz///6r//SokWLtGfPniazJiEhIaqvr/fc/uGuoItx5ZVX6sCBA02WffXVV01C0g9nKxobG3Xo0CH96Ec/Ou/6r7/+Wg6HQ7GxsefU3NjY6Ak8LfXCm+d7NpB4w9tt161bpxUrVuiNN97Q9u3btWTJEiUlJXk9DmA6gg1gqBMnTujw4cNN/jQ0NMjpdKpTp04KCQmR0+nU008/LafTqfr6etlsNj388MNatmyZGhoa1LVrV4WGhio2NtbzuGFhYerWrZtmzpypBQsWeEJHjx49tGHDBjU0NOjAgQMqKCjwy/MYMWKE3nrrLe3YsUMul0tFRUV66623lJmZ6dkmPz9ff/nLX1RXV6cXXnhBbrdbt912m2f9M888I6fTqSNHjmjRokW6++67FRYWph49eqisrEzl5eVqaGjQ0qVLVV1dLUkt9qJHjx7avHmzamtrdfToUb3++ut+eb4tOX36tEJCQhQRESG3260PPvhA7733XpOQBXRkoVYXACAwHnzwwXOWrV27Vjk5OZ5dUVFRUfrXf/1X3Xzzzfr8888VHh6ul156SQsWLNDixYtlt9t1yy23aOrUqec8VmZmpjZs2KDp06crLy9Pjz32mObNm6f+/fvrmmuu0YgRI5SXl3fRz+POO++U0+nUk08+qUOHDqlbt26aNm2ahg0b5tmmf//+euKJJ1RRUaGkpCQtW7ZMl1xyiSorKyVJV199tYYOHaqamhplZGQoOztbknT77bfrk08+0dixY9XY2Khhw4apb9++ktRiL6ZOnarHH39cgwYN0mWXXaYxY8Zo9+7dF/18W3LPPfdo9+7dGjJkiOx2u6699lqNGTNGeXl5qqurU3h4eMBrAIKZzc2OWQDtWFZWluf08X/29ddf6xe/+IU2b96sK6+80oLqALQ1dkUBAABjEGwAAIAx2BUFAACMwYwNAAAwBsEGAAAYg2ADAACMQbABAADGINgAAABjEGwAAIAxCDYAAMAYBBsAAGCM/wcwTojnqCD/nwAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sns.histplot(tips, x='total_bill', bins=6)\n", "plt.xlabel('Laskun loppusumma')\n", "plt.ylabel('Lukumäärä')" ] }, { "cell_type": "markdown", "id": "d17b4ccd", "metadata": {}, "source": [ "**bins**-parametrilla voit määrittää luokkien lukumäärien sijasta myös täsmälliset luokkarajat listana. Luokkarajoja tulkitaan seuraavasti:\n", "- Luokkien alarajat sisältyvät luokkaan, mutta ylärajat eivät.\n", "- Poikkeuksena viimeisen luokan yläraja sisältyy luokkaan." ] }, { "cell_type": "code", "execution_count": 5, "id": "e9dbf5a2", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0, 0.5, 'Lukumäärä')" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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Gb0K1L59e9XV1emxxx5TfX29tm/frlmzZmnQoEHq06cPvfqFFStW6PPPP1dxcbGKi4vVr18/9evXT8XFxTyvjiI2Nlb5+fmaN2+eGhsbtWPHDv31r3/VTTfdxHPrMJdffrnOP/98TZ48WdXV1SovL9cTTzyha6+9Vv369bO1V1wEMwS42rg17du318svv6wePXpIOvDpg5ycHH399deKj4/XqFGjNHDgQJurtMeLL76o3Nxcud1uORyOgGUbN26kV4cpKyvTI488opKSEp1xxhnKzMz0f6KMXh3boe+wyc3NlcRr8Gg+++wzPf744/r6668VFRWlvn37Kjs7W1FRUfTrMLt27VJubq6Kioq0f/9+paena8qUKWrdurWtvSLYAAAAY3AoCgAAGINgAwAAjEGwAQAAxiDYAAAAYxBsAACAMQg2AADAGAQbAABgDIINAAAwBsEGMFD79u21fv36kM+bnp6uJUuWhHzew02cONH/LbkAEAyCDQAAMAbBBjjN1NfXa9asWbr++uvVuXNnpaWlacaMGf4rGhcVFWngwIHq1q2bMjIylJOTo8bGxiPm+eijj9S1a1e98847ko7cS7RkyRKlp6dLktavX6/09HQ999xzuuKKK9S9e3fdfffdqqqqslTzokWL1LdvX3Xp0kWZmZn6+9//7l82bNgw5ebmauDAgerUqZMGDhyo4uJiSdL333+v9u3b65VXXlGvXr3UtWtXZWdn+7f7t7/9TcOGDQvY1i/3Sh2vF4fvvVq/fr3/iuyHtvvmm2/q6quvVqdOnTRp0iQVFxfrxhtvVOfOnXXrrbeqvLxc0oE9VA899JDuuOMOde7cWRkZGVq3bp1mzJihyy67TL169dKiRYv823r//ff1xz/+UWlpafrDH/6gW265Rd98842lXgKmI9gAp5mXXnpJH330kV566SVt3LhRzz77rBYuXKjCwkJJ0vjx4zVs2DAVFxfrxRdf1IoVK7R69eqAOdauXat7771Xjz/+uK6//npL292+fbt27dqld999V4sWLdLGjRv16quvNnm/JUuWKDc3V1OnTlVRUZEmT56s6dOn69133/Wv89prr2n8+PH67LPPlJGRoTvvvFM//fSTf/mqVatUUFCgFStW6Ntvv9X06dMt1WylF8ezdu1aLV++XK+//rreeustzZgxQ3PnztXq1av1ww8/BDz+N954Q7fffrs2bNigSy+9VLfddpsuuugirVu3TnfccYceeugh1dfXa+fOnfrLX/6ikSNHat26dfrggw/k8/n0zDPPWK4LMBnBBjjN3HzzzcrLy1NCQoJ+/PFH1dXVqVWrVtq1a5ckKSoqSu+8847WrFmj2NhYrV27Vn369PHff+3atRo9erSmT5+uq666Kqhtjx49WtHR0brwwgvVo0cP/etf/2ryPm+88YaGDBmitLQ0uVwupaWlaciQIVq4cKF/naysLPXs2VMtWrTQf/7nf8rtdmvNmjX+5ZMmTVJ8fLwSEhI0ZswYrVixQvX19U1uu6leNOVPf/qT3G63kpOTlZCQoJtuuklt2rRRfHy8OnXqpO3bt/vX7dmzp7p16yan06mePXuqZcuWGjZsmCIiInT11Vervr5ee/bsUXx8vN5++22lp6erqqpKO3fuVFxcnP//H3C6I9gAp5na2lo98MAD6t69u2677Ta9+eab8vl88nq9kg7s0Tn77LM1ffp09ejRQ6NGjdLOnTv991+3bp06duyopUuXBr3thIQE/++RkZH+w1/Hs2fPHp1//vkBY+edd15AKLjooov8vzscDp1zzjnavXu3f+zCCy/0//7b3/5W9fX1qqioaHLbTfWiKbGxsf7fXS6XWrdu7b/tdDoDHv/x1nU4HJIkr9eryMhILVu2TFdeeaX69u2rxx9/XHv37rXUS+B0QLABTjNTp06V2+3Wxx9/rIKCAs2cOdMfavbv36+ysjJNmzZNH3zwgZYtW6Z9+/bpkUce8d//vvvu0+zZs7Vx48aAvSZOp1MNDQ3+2788FHQyzjvvPG3bti1g7LvvvgsISb/cW+H1erVjxw799re/Pery77//Xm63W3FxcUfU7PV6/YGnqV5YebyHAokVVtd95513tGDBAr3yyitau3at5s6dq5SUFMvbAUxHsAEMVV5erp07dwb819jYqKqqKkVFRcnpdKqqqkqPPvqoqqqq1NDQIIfDoXvvvVfz589XY2OjEhISFBERobi4OP+8kZGRatOmjSZNmqRZs2b5Q0e7du20cuVKNTY2atu2bVq8eHFIHsegQYP02muvad26dfJ4PCosLNRrr72mrKws/zqLFi3Sl19+qfr6ej3zzDPy+Xy6+uqr/csfe+wxVVVVadeuXZo9e7b69++vyMhItWvXTlu3blVpaakaGxs1b9481dTUSFKTvWjXrp1Wr16turo67d69Wy+//HJIHm9T9u3bJ6fTqejoaPl8Pn344Yd68803A0IWcDqLsLsAAM1j7NixR4wtX75cU6dO9R+KatWqlf7t3/5NV1xxhb7++mu1aNFCzz33nGbNmqU5c+bI5XLpyiuv1Lhx446YKysrSytXrtSECROUn5+vBx98UDNnzlT37t110UUXadCgQcrPzz/px3H99derqqpKDz/8sHbs2KE2bdpo/PjxGjBggH+d7t2766GHHlJZWZlSUlI0f/58nXHGGaqsrJQkXXDBBerXr59qa2uVmZmp7OxsSdK1116rTz/9VMOHD5fX69WAAQPUtWtXSWqyF+PGjdO0adPUq1cvnX322br11lu1YcOGk368Tbnpppu0YcMG9e3bVy6XSxdffLFuvfVW5efnq76+Xi1atGj2GoBw5vBxYBbAKWzYsGH+j48f7vvvv9c111yj1atX67zzzrOhOgC/Ng5FAQAAYxBsAACAMTgUBQAAjMEeGwAAYAyCDQAAMAbBBgAAGINgAwAAjEGwAQAAxiDYAAAAYxBsAACAMQg2AADAGP8PsLdLOpac+2UAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "bins = [0, 10, 20, 30, 40, 60]\n", "sns.histplot(tips, x='total_bill', bins=bins)\n", "plt.xlabel('Laskun loppusumma')\n", "plt.ylabel('Lukumäärä')" ] }, { "cell_type": "markdown", "id": "dd4727de-7f2f-47cd-9547-20e4b68cbac3", "metadata": {}, "source": [ "Seuraavassa esitetään lukumäärien sijasta prosentit (`stat='percent'`). Pystyakselin asteikko muotoillaan prosenttiasteikoksi käyttäen aiemmin määriteltyä **ticks**-muotoilua. Asteikon jaotus säädetään kymmenen välein." ] }, { "cell_type": "code", "execution_count": 6, "id": "ef231148-034e-4dcf-988d-6fb63edb4316", "metadata": {}, "outputs": [ { "data": { "image/png": "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/fXX6tevn6RTwUaS3n33XZWXlys6Olrbt2932mf//v2Kiopqc+zy8nJVV1drxIgRWr16taKjoxUYGKjevXs7zQ4BAADzuuRz5Js3b9aHH36o8vJylZeXa9SoURo1apTjqq/k5GRVV1dr7dq1am5uVllZmYqKijRu3LgLjtvS0qKsrCzNnTtXkhQZGal9+/apoaFBFRUV6tGjh9ePDQAAtH8+u9rr+4SFhSk3N1eZmZnKyclReHi4MjIyNGDAgAvut27dOg0bNkyRkZGSpOHDh6ukpERDhgzRDTfcoGXLll2C6gEAQHvn8/CTnZ19zrK4uDjl5+e7Nc7UqVOdHlssFmVlZSkrK+sH1QcAAK4sXBoCAABMhfADAABMhfADAABMhfADAABMhfADAABMhfADAABMhfADAABMhfADAABMhfADAABMhfADAABMhfADAABMhfADAABMhfADAABMhfADAABMhfADAABMhfADAABMhfADAABMhfADAABMhfADAABMhfADAABMhfADAABM5QeFn7vuustTdQAAAFwS/q5s9NRTT513+WeffeZYN2PGDM9VBQAA4CUuhZ8333xTX3zxhfr27eu03G63a+fOnfLz8/NKcQAAAJ7mUvgpLCzU/PnzdeTIES1dulRXX321JCkxMVHr1q3zaoEAAACe5NI5PzabTYsXL9Zdd92le+65R++9954kyTAMb9YGAADgcS7N/Jw2duxY/fjHP9aDDz6o7du3e6smAAAAr3H7aq+bbrpJBQUFamhoUFNTkzdqAgAA8JqLutS9Q4cOWrRokTZv3uzpegAAALyK7/kBAACm4tI5P5MnTz7v8hMnTjjWvfjii56rCgAAwEtcCj8RERH6y1/+ol/+8pfq0qWLY/mePXuUmJjoteIAAAA8zaXws3TpUvXv319//OMfNX/+fA0ZMkTSqdkevtkZAABcTly+1H38+PHq06ePHnzwQe3YsUMPPfSQN+sCAADwCrdOeO7Zs6cKCgpUV1enCRMmqLW11Vt1AQAAeIXbV3sFBQUpMzNTU6ZMUZ8+fbxQEgAAgPe4HH6OHDmid999V4cOHZIk/eIXv9Bzzz0nSdq0aZN3qgMAAPAwl8LPzp07NWLECKWnp+uOO+7Qn/70J6f18+bN80pxAAAAnuZS+FmxYoUeffRR7dy5U2vWrNHzzz+vF154wbGeG5wCAIDLhUvh58CBAxo/frwkaeDAgXrmmWf0xBNPqKysTJLk5+fnvQoBAAA8yKXw07FjR3399deOx3369NGjjz6qhx56SP/85z+9VhwAAICnuRR+7rjjDs2YMUNbt251LEtJSdHw4cM1ceJENTc3e61AAAAAT3Ip/KSlpalPnz569913nZbPnz9fSUlJfN8PAAC4bLj0Dc+BgYFKT08/Z7nFYlFGRoZSU1M9XhgAAIA3uPUlh/Pnz3f8/Nhjjzl+DgsL81hBAAAA3uRW+HnjjTccP/PFhgAA4HLkVvg58/t8+G4fAABwOXIr/Jz5fT58tw8AALgcuX1jUwAAgMsZ4QcAAJgK5/wAAABTcSv8VFRUOH7evXu3x4sBAADwNpe+5PBMX3/9tQ4ePHjOzM9PfvITjxUFAADgLW6Fn3Xr1ik7O/uc21n4+fnpH//4h0cLAwAA8Aa3ws8LL7ygefPmady4cfL3d3vSCAAAwOfcSjC1tbVKSUmRxcJFYgAA4PLkVopJTEzUzp07f/CT7tixQykpKerbt68GDx6shQsXqrGx0bF+z549SklJUXx8vJKSklRQUPC9Y+3atUvJyclKSEhQenq67Ha7Y93cuXNVWFj4g+sFAABXDrdmfiIiInT//ferf//+6tKli9O6rKwsl8aora3V/fffr/nz52vMmDGqrq7Wfffdp9WrV2vmzJmqq6vTtGnTNHPmTE2YMEG7d+9WamqqYmJidMstt5wz3pIlSzR58mTddddduvvuu7Vt2zYNHTpUe/fu1YEDB5xuwAoAAOBW+GlqatLIkSN/0BOGh4fr/fffV0hIiAzD0LFjx/Ttt98qPDxcklRcXKzQ0FBNnDhRkjRw4ECNHj1aeXl55w0/p889MgxDhmHIarXKbrdr0aJFWrhwIbfhAAAATtwKP67O7rQlJCREkjRs2DAdPXpU/fr109ixYyVJVVVVio6Odtq+Z8+e2rhx43nHSktL0/z587Vq1SqNHDlSgwYN0oYNG9S3b1/FxMRcdI1nX9HmCafH9MbYVxq73S6r1SoZhvg+zTZ816AzP/LF+fEedB29ch29cp03e+XOmD69ZKu4uFh1dXWaNWuWZs6cqTVr1ujEiROy2WxO2wUFBenkyZPnHSMhIUFFRUWOxzU1NXrppZeUn5+vZcuWaevWrerWrZsWLFigiIgIl2urrKy8uIPy8dhXCpvNptjYWJ1saFB9fb2vy2nXTnY8NbtZVVWlhoYGH1dzeeA96Dp65Tp65Tpf98qn4ScoKEhBQUFKS0tTSkqK6urqZLPZdPz4caftGhsbFRwc7NKYS5YsUWpqqsrLy1VaWqrCwkLl5uYqOztbK1eudLm2uLi4UzMPHtTa2qrKykqvjH2lOT2L0dFmU0gIUz8X0vG7PxaioqK4ErMNvAddR69cR69c581enR7bFZc8/Hz44Yd69NFH9cYbbygwMFDSqXOJAgICZLPZFB0dre3btzvts3//fkVFRbU5dnl5uaqrqzVixAitXr1a0dHRCgwMVO/evZ1mh1xhtVq99iL25thXHD8/cdpWG75rkMVi4XXlIt6DrqNXrqNXrvN1ry75n4kxMTFqbGzU8uXL1dTUpEOHDmnx4sUaP368AgMDlZycrOrqaq1du1bNzc0qKytTUVGRxo0bd8FxW1palJWVpblz50qSIiMjtW/fPjU0NKiiokI9evS4FIcHAADaOY/M/GzatEkBAQEaOnToOefrnC04OFhr1qzR448/rsGDB6tTp04aPXq0UlNTJUlhYWHKzc1VZmamcnJyFB4eroyMDA0YMOCC465bt07Dhg1TZGSkJGn48OEqKSnRkCFDdMMNN2jZsmWeOFQAAHCZ80j4mTt3rh5++GE9/vjjWrhwYZvb9+zZU7m5ud+7Pi4uTvn5+W7VMHXqVKfHFotFWVlZHrtCDQAAXBk8En4qKiokSRMmTPDEcAAAAF7jkXN+WlpaPDEMAACA17k183Pw4EE9/fTTOnr0qONS5ObmZn322WcqKyvzSoEAAACe5NbMT3p6ug4dOqROnTqppaVF0dHRqqqq0r333uut+gAAADzKrfDz97//XU8//bSmT5+uTp06KSMjQytWrNCOHTu8VR8AAIBHuRV+bDabrrrqKvXo0UOffPKJJGno0KE6cOCAV4oDAADwNLfCT48ePVRaWqrg4GDZ7XZ9+eWXOnr0KCc8AwCAy4ZbJzxPmzZNM2fO1KZNmzRhwgTdc889slqtuv32271VHwAAgEe5FX6SkpJUXFys8PBwTZ8+XZGRkaqvr9eYMWO8VB4AAIBnuf0lhxEREY6ff/7zn3u0GAAAAG9zKfz07dtXH374oW6++Wb5fc8ttv/xj394tDAAAABvcCn8rF69WpL04osverUYAAAAb3Mp/PTr10+SVFxcrIyMjHPWz549W4mJiZ6tDAAAwAvaDD9Hjx51fIlhQUGBevfu7bT++PHjeuedd7xTHQAAgIe1GX7CwsK0fv161dbWqqmpSTk5OU7rO3TooBkzZnitQAAAAE9qM/wEBgZq48aNkqT77rtPzz33nNeLAgBvCQgI8HUJAHzMrW94DgwMPO9ybmwK+M5VtgDZ7YasVquvS2n3rFarYnv18nUZAHyszZmfr776Sq+99pokadu2bXrqqaec1tfX1+vjjz/2SnEA2hbcwV8Wi5/+sKVKh441+Lqcdu3aUJseuD1Kra2tvi4FgA+1GX66d++uqqoq1dbWqrW1VTt37nRa36FDB/3+97/3WoEAXHPoWIM+rznh6zIAoN1rM/xYLBY9+eSTkqSMjAwtWrTI60UBAAB4i1u3t1i0aJGamppUW1sru93utK579+4eLQwAAMAb3Ao/mzdv1ty5c1VfX+9YZhiG/Pz8uL0FAAC4LLgVfnJycjRx4kTdfffd8vd3+56oAAAAPudWgvnnP/+pGTNmEHwAAMBly63v+enVq5f279/vrVoAAAC8zq0pnL59++pXv/qVfvazn6lLly5O67jFBQAAuBy4FX4qKioUFRWlTz/9VJ9++qljuZ+fn8cLAwAA8Aa3ws+6deu8VQcAAMAl4dY5P5L06aefatGiRZoxY4a++eYbrV+/3ht1AQAAeIVb4Wf79u1KSUnRN998o/fff1+NjY16+umntXr1am/VBwAA4FFuhZ8VK1Zo5cqVWr58uaxWq7p166bVq1fr5Zdf9lZ9AAAAHuVW+Pniiy80dOhQSf//JOe4uDjV1dV5vjIAAAAvcCv8dO/eXR9++KHTssrKSnXr1s2jRQEAAHiLW1d73X///frNb36j//zP/1Rzc7OeffZZrVu3Tg899JC36gMAAPAot8LPyJEjFRISory8PHXv3l1lZWVKT0/XnXfe6a36AAAAPMrtm3QNGzZMw4YNkyTV19crMDDQ40UBAAB4i1vn/Hz66adKTU2VJL3zzjsaMGCAhgwZog8++MArxQEAAHiaWzM/jz/+uK6++moZhqHly5dr5syZCg4OVnZ2tgoKCrxVIwAAgMe4FX4+/vhj/elPf9KhQ4f05Zdf6r/+678UHBys5cuXe6s+AAAAj3LrY6+WlhYZhqHt27erV69eCgkJ0TfffKMOHTp4qz4AAACPcmvmZ9CgQXrggQe0b98+3Xffffryyy81e/Zs/fSnP/VSeQAAAJ7l1szPwoUL1bt3b02cOFGTJ0/WiRMn1KtXL82bN89b9QEAAHiUWzM/wcHBeuCBB1RTU6O9e/eqa9euysjI8FZtAAAAHudW+Kmvr9ecOXP017/+VYZhyM/PTwMHDtQTTzyhzp07e6tGAAAAj3HrY6/ly5frxIkT2rRpk/bs2aPXX39ddrtdS5cu9VZ9AAAAHuVW+CkpKdHy5ct10003qUOHDoqOjtbSpUv17rvveqs+AAAAj3Ir/DQ0NKhTp05Oyzp37iy73e7RogAAALzFrfDz4x//WE8++aQMw5AkGYahJ598UnFxcV4pDgAAwNPcOuH5d7/7nSZPnqw33nhD1157rQ4dOiQ/Pz89//zz3qoPAADAo9wKP9dff73efvttbdmyRTU1Nbr22ms1bNgwhYSEeKs+AAAAj3Ir/IwaNUpvvPGGxo0b5616AAAAvMqtc36kUyc9AwAAXK7cmvnp37+/UlJSNHToUF199dVO62bMmOHRwgAAALzBrfDz1Vdf6frrr9dnn32mzz77zLHcz8/P44UBAAB4g1vhZ926dd6qAwAA4JJwOfw89dRT+uijj3Trrbdq4sSJ3qwJAADAa1w64XnJkiXasGGDAgIClJOTo9WrV/+gJ923b5+mTp2qxMREDR48WLNnz1Ztba1j/Z49e5SSkqL4+HglJSWpoKDge8fatWuXkpOTlZCQoPT0dKdvm547d64KCwt/UK0AAODK4lL42bRpk1544QXl5OQoJydHRUVFF/2EjY2N+p//+R/Fx8dr27Zt2rRpk44dO6ZHH31UklRXV6dp06ZpzJgx2r17tzIzM5WVlaW9e/eed7wlS5Zo8uTJKikpUVlZmbZt2yZJ2rt3rw4cOKCxY8dedK0AAODK41L4OX78uKKioiRJCQkJOnr06EU/4eHDh3XzzTcrNTVVgYGBCgsL04QJE7R7925JUnFxsUJDQzVx4kT5+/tr4MCBGj16tPLy8s47nr//qU/uDMOQYRiyWq2y2+1atGiR5s2bx8nYAADAiUvn/Fgs/z8jnQ4bF+vGG2/UmjVrnJa9/fbb6tWrlySpqqpK0dHRTut79uypjRs3nne8tLQ0zZ8/X6tWrdLIkSM1aNAgbdiwQX379lVMTMxF19na2nrR+7Y1pjfGvtLY7XZZrVbJMPTdreTwfRwNoldt+q5B3Iy5bfy+ch29cp03e+XOmC4lGcNLv1ENw9ATTzyhkpISrV+/XpJ04sQJ2Ww2p+2CgoJ08uTJ846RkJDg9DFcTU2NXnrpJeXn52vZsmXaunWrunXrpgULFigiIsLl2iorKy/iiHw/9pXCZrMpNjZWJxsaVF9f7+ty2rXGb4NP/bfxW3rVhpMdT80EV1VV8YWtLuL3levolet83SuXwk9LS4tee+01x+Pm5manx5I0ZswYt564vr5ejzzyiD766COtX7/eMUtjs9l0/Phxp20bGxsVHBzs0rhLlixRamqqysvLVVpaqsLCQuXm5io7O1srV650ub64uLhTMw8e1NraqsrKSq+MfaU5/Zd5R5tNISFMZ1xIUIegU/8N6sB99trQ8bs/rKKiopxmtHEufl+5jl65zpu9Oj22K1wKP126dFFOTo7jcVhYmNNjPz8/t8LPwYMH9etf/1rdu3fXxo0bFR4e7lgXHR2t7du3O22/f/9+xzlHF1JeXq7q6mqNGDFCq1evVnR0tAIDA9W7d2+3T9K2Wq1eexF7c+wrjp+fOG2rDY4G0as2fdcgi8XCe9BF/L5yHb1yna975VL4+etf/+qxJ6yrq9OUKVM0YMAAZWZmnvPXV3JyspYuXaq1a9dq4sSJ+uCDD1RUVKRVq1ZdcNyWlhZlZWVp+fLlkqTIyEi9/vrramhoUEVFhXr06OGxYwAAAJevH3b28kV45ZVXdPjwYb311lvavHmz07qKigqFhYUpNzdXmZmZysnJUXh4uDIyMjRgwIALjrtu3ToNGzZMkZGRkqThw4erpKREQ4YM0Q033KBly5Z565AAAMBl5JKHn6lTp2rq1KkX3CYuLk75+fluj3smi8WirKwsZWVluV0jAAC4cnHGHwAAMBXCDwAAMBXCDwAAMBXCDwAAMBXCDwAAMBXCDwAAMBXCDwAAMBXCDwAAMBXCDwAAMBXCDwAAMBXCDwAAMBXCDwAAMBXCDwAAMBXCDwAAMBXCDwAAMBXCDwAAMBXCDwAAMBXCDwAAMBXCDwAAMBXCDwAAMBXCDwAAMBXCDwAAMBXCDwAAMBXCDwAAMBXCDwAAMBXCDwAAMBXCDwAAMBXCDwAAMBXCDwAAMBXCDwAAMBXCDwAAMBXCDwAAMBXCDwAAMBXCDwAAMBXCDwAAMBXCDwAAMBXCDwAAMBXCDwAAMBXCDwAAMBXCDwAAMBXCDwAAMBXCDwAAMBXCDwAAMBXCDwAAMBXCDwAAMBXCDwAAMBXCDwAAMBXCDwAAMBXCDwAAMBXCDwAAMBXCDwAAMBXCDwAAMBXCDwAAMBXCDwAAMBXCDwAAMBXCDwAAMBWfhp/a2lolJydr586dTsv37NmjlJQUxcfHKykpSQUFBd87xq5du5ScnKyEhASlp6fLbrc71s2dO1eFhYVeqx8AAFx+fBZ+PvjgA02YMEEHDx50Wl5XV6dp06ZpzJgx2r17tzIzM5WVlaW9e/eed5wlS5Zo8uTJKikpUVlZmbZt2yZJ2rt3rw4cOKCxY8d6/VgAAMDlwyfh59VXX9WsWbP04IMPnrOuuLhYoaGhmjhxovz9/TVw4ECNHj1aeXl55x3L399fkmQYhgzDkNVqld1u16JFizRv3jz5+fl59VgAAMDlxd8XT3rrrbdq9OjR8vf3PycAVVVVKTo62mlZz549tXHjxvOOlZaWpvnz52vVqlUaOXKkBg0apA0bNqhv376KiYm56BpbW1svet+2xvTG2Fcau90uq9UqGYYMw9fVtHOOBtGrNn3XoDM/Hsf58fvKdfTKdd7slTtj+iT8dO3a9XvXnThxQjabzWlZUFCQTp48ed7tExISVFRU5HhcU1Ojl156Sfn5+Vq2bJm2bt2qbt26acGCBYqIiHC5xsrKSpe3dZc3x75S2Gw2xcbG6mRDg+rr631dTrvW+G3wqf82fkuv2nCy46mZ4KqqKjU0NPi4mssDv69cR69c5+te+ST8XIjNZtPx48edljU2Nio4ONil/ZcsWaLU1FSVl5ertLRUhYWFys3NVXZ2tlauXOlyHXFxcadmHjyotbVVlZWVXhn7SnP6L/OONptCQpjOuJCgDkGn/hvUQSEhIT6upn3r+N0fVlFRUbJYuNj1Qvh95Tp65Tpv9ur02K5od+EnOjpa27dvd1q2f/9+RUVFtblveXm5qqurNWLECK1evVrR0dEKDAxU7969nWaHXGG1Wr32Ivbm2FccPz9x2lYbHA2iV236rkEWi4X3oIv4feU6euU6X/eq3f3pk5ycrOrqaq1du1bNzc0qKytTUVGRxo0bd8H9WlpalJWVpblz50qSIiMjtW/fPjU0NKiiokI9evS4FOUDAIB2rt3N/ISFhSk3N1eZmZnKyclReHi4MjIyNGDAgAvut27dOg0bNkyRkZGSpOHDh6ukpERDhgzRDTfcoGXLll2C6gEAQHvn8/Dz8ccfn7MsLi5O+fn5bo0zdepUp8cWi0VZWVnKysr6QfUBgFkFBAT4ugTAK9rdx14A4C1X2QJktxucl+ECq9Wq2F69fF0G4BU+n/kBgEsluIO/LBY//WFLlQ4d41L3C7k21KYHbo/iu2twRSL8ADCdQ8ca9HnNCV+XAcBH+NgLAACYCuEHAACYCuEHAACYCuEHAACYCuEHAACYCuEHAACYCuEHAACYCuEHAACYCuEHAACYCuEHAACYCuHnEuMuyQAA+Bbh5xKL7dWLO0q7gB4BALyFG5teYv5WK3eUdkGf60N1T2IPX5cBALgCEX58gDtKt617qM3XJQAArlB87AUAAEyF8AMAAEyF8AMAAEyF8AMAAEyF8AMAAEyF8AMAAEyF8AMAAEyF8AMAAEyF8AMAAEyF8AMAAEyF8AMAAEyF8AMAAEyF8AMAAEyF8AMAAEyF8AMAAEyF8AMAwA9ks9l8XcJlIyAgwNclyN/XBQAA2p+rbAGy2w1ZrVZfl9LuWa1WxcbG+rqMy4LValVsr16+LoPwAwA4V3AHf1ksfvrDliodOtbg63LavZMnT6pjx46+LqPduzbUpgduj1Jra6tP6yD8AAC+16FjDfq85oSvy2jXDEOqr69XSIghPz9fVwNXcM4PAAAwFcIPAAAwFcIPAAAwFcIPAAAwFcIPAAAwFcIPAAAwFcIPAAAwFcIPAAAwFcIPAAAwFcIPAAAwFcIPAAAwFcIPAAAwFcIPAAAwFcIPAAAwFcIPAAAwFcIPAAAwFcIPAAAwFcIPAAAwFcIPAAAwFcIPAAAwlXYXfmpqajR9+nT169dP/fv3V2ZmplpaWs677dGjR3XPPfcoPj5ekyZNUnV1tWNdUVGR5syZc6nKBgAAl4l2F35++9vfqmPHjtq6das2btyoHTt2aO3atefd9oUXXlC3bt30/vvv60c/+pFju/r6ev3pT3/S7NmzL13hAADgstCuws8XX3yhXbt2KS0tTTabTddff72mT5+uvLy8827v7+8vSTIMQ5JktVolSU8++aQmTpyoH/3oR5emcAAAcNnw93UBZ6qqqlJoaKgiIiIcy2666SYdPnxY//73v9W5c2en7SdPnqxZs2bptttuU1xcnH71q19p37592rt3rx555JGLquF0kGpqanKEKU+x2+2SpB6hHeTvZ3h07CvNNZ381draSq9cQK9cR69cR6/cYBhqCPGTLShI8vPzdTXtWverOqi1tVXNzc1qbW316Ninxzv9/+MX4me4stUl8vrrr2vlypV67733HMsOHjyo5ORklZaW6pprrrng/oZh6N5779XDDz+sgwcP6rnnnlNgYKBmzZqlfv36uVRDU1OTKisrf8hhAAAAH4mLi1NgYOAFt2lXMz8dO3ZUQ0OD07LTj4ODg9vc/5VXXlF0dLSuu+46TZkyRZs2bdKRI0c0c+ZMbd26VX4uJHJ/f3/FxcXJYrG4tD0AAPA9wzBkt9sdp8RcSLsKP1FRUTp27Jiqq6vVpUsXSdKnn36qa665Rp06dbrgvnV1dVq7dq3y8vL02WefqWPHjurevbu6dOmif/3rX/rmm28UHh7eZg0Wi6XNxAgAAC5f7eqE58jISCUkJOjxxx9XfX29vvzyS61atUrjx49vc98VK1bovvvuU+fOnXXttdfq3//+t7744gtVVFToqquuUmhoqPcPAAAAtHvtauZHknJycvTYY4/p9ttvl8Vi0ZgxYzR9+vQL7lNZWakDBw5owYIFkqQuXbpozpw5uueeexQUFKTs7GxZLO0q5wEAAB9pVyc8AwAAeBvTIQAAwFQIPwAAwFQIPwAAwFQIPwAAwFQIP5eAO3eqN7Pa2lolJydr586djmV79uxRSkqK4uPjlZSUpIKCAh9W6Hv79u3T1KlTlZiYqMGDB2v27Nmqra2VRK/OtmPHDqWkpKhv374aPHiwFi5cqMbGRkn06vu0trZq0qRJevjhhx3L6JWzN998U7GxsYqPj3f8S0tLk0Svznbs2DHNnj1b/fv3109+8hNNnz5dX3/9taR20CsDXnfvvfcav/vd74yTJ08aBw8eNEaOHGk8++yzvi6rXSkvLzeGDx9uREdHG2VlZYZhGMaxY8eMxMREY/369UZzc7Px/vvvG/Hx8caePXt8XK1vNDQ0GIMHDzaefPJJ49tvvzVqa2uNX//618b9999Pr85SU1NjxMXFGYWFhUZra6tx9OhRY9SoUcaTTz5Jry7giSeeMG6++WZjzpw5hmHwHjyf7Oxs4+GHHz5nOb0617333mukpqYadXV1xvHjx40ZM2YY06ZNaxe9YubHy9y9U70Zvfrqq5o1a5YefPBBp+XFxcUKDQ3VxIkT5e/vr4EDB2r06NGm7d3hw4d18803KzU1VYGBgQoLC9OECRO0e/duenWW8PBwvf/++xo7dqz8/Px07NgxffvttwoPD6dX32PHjh0qLi7WHXfc4VhGr85VWVmp3r17n7OcXjn7+9//rj179ig7O1udO3dWSEiIFi5cqFmzZrWLXhF+vKytO9VDuvXWW/XOO+/o5z//udPyqqoqRUdHOy3r2bOn9u3bdynLazduvPFGrVmzRlar1bHs7bffVq9evejVeYSEhEiShg0bptGjR6tr164aO3YsvTqPmpoapaena/ny5bLZbI7l9MqZ3W7XRx99pPfee0+33Xabhg4dqrlz56quro5enWXv3r3q2bOn/vznPys5OVm33nqrFi9erK5du7aLXhF+vOzEiRNOv0wkOR6fPHnSFyW1O127dj3vjejO17ugoCD6plM38Fu5cqVKSkqUnp5Ory6guLhYf/vb32SxWDRz5kx6dRa73a60tDRNnTpVN998s9M6euWstrZWsbGxuvPOO/Xmm28qPz9fn3/+udLS0ujVWerq6vTxxx/r888/16uvvqrXXntNR48e1Zw5c9pFrwg/XvZD71RvZjabzXGC6mmNjY2m71t9fb1mzpypoqIirV+/XjExMfTqAoKCghQREaG0tDRt3bqVXp3lmWeeUWBgoCZNmnTOOnrlrEuXLsrLy9P48eNls9nUvXt3paWl6W9/+5sMw6BXZzh9g/D09HSFhISoS5cu+u1vf6vS0tJ20SvCj5edeaf601y9U73ZRUdHq6qqymnZ/v37FRUV5aOKfO/gwYMaN26c6uvrtXHjRsXExEiiV2f78MMP9bOf/UxNTU2OZU1NTQoICFDPnj3p1Rlef/117dq1S/369VO/fv20adMmbdq0Sf369eN1dZZ9+/Zp2bJlMs64K1RTU5MsFotuueUWenWGnj17ym63q7m52bHMbrdLkv7jP/7D570i/HjZD7lTvdklJyerurpaa9euVXNzs8rKylRUVKRx48b5ujSfqKur05QpU9S3b18999xzCg8Pd6yjV85iYmLU2Nio5cuXq6mpSYcOHdLixYs1fvx43XnnnfTqDJs3b9aHH36o8vJylZeXa9SoURo1apTKy8t5XZ0lNDRUeXl5WrNmjVpaWnT48GEtXbpUd999N6+rswwaNEjXX3+9Hn30UZ04cUK1tbVauXKlhg8frlGjRvm8V9zY9BKorq7WY489pp07dzruVD9r1iynE1dxSkxMjF588UX1799f0qkrKzIzM/XJJ58oPDxc06dP19ixY31cpW88//zzys7Ols1mk5+fn9O6iooKenWW/fv36/HHH1dlZaU6deqk0aNHO66Uo1ff7/R3/GRnZ0viPXi2Xbt2acWKFfrkk0/UoUMHjRw5UmlpaerQoQO9OsvRo0eVnZ2t3bt369tvv1VSUpLS09PVuXNnn/eK8AMAAEyFj70AAICpEH4AAICpEH4AAICpEH4AAICpEH4AAICpEH4AAICpEH4AAICpEH4AAICpEH4AE4qJidHOnTs9Pm5SUpJeeeUVj497tocfftjxTcQA4C7CDwAAMBXCDwAnTU1NWrx4sUaMGKH4+HgNHDhQCxcudNzJevfu3Ro7dqz69eun5ORkZWZmqqWl5Zxxtm7dqoSEBL311luSzp1teuWVV5SUlCRJ2rlzp5KSkvTHP/5RQ4YMUWJioh544AHV19e7VHNBQYFGjhypvn37avTo0XrjjTcc6yZNmqTs7GyNHTtWffr00dixY1VeXi5J+uqrrxQTE6N169Zp8ODBSkhIUFpamuN5//CHP2jSpElOz3Xm7NaFenH2LNjOnTsVExPj9LyvvfaabrvtNvXp00ePPPKIysvL9Ytf/ELx8fGaMmWKamtrJZ2a6Xrsscd0//33Kz4+XsnJydqxY4cWLlyon/zkJxo8eLAKCgocz/XXv/5V99xzjwYOHKgf//jHuvfee/X555+71EvADAg/AJy88MIL2rp1q1544QVVVFRo1apVys/PV1lZmSRp9uzZmjRpksrLy/X8889r8+bN2rJli9MYpaWleuihh7RixQqNGDHCpec9dOiQjh49qnfeeUcFBQWqqKjQhg0b2tzvlVdeUXZ2tjIyMrR79249+uijWrBggd555x3HNi+//LJmz56tXbt2KTk5Wb/5zW/0zTffONYXFxerqKhImzdv1hdffKEFCxa4VLMrvbiQ0tJSvfnmm/rzn/+s119/XQsXLtSzzz6rLVu26J///KfT8RcWFurXv/61PvjgA91yyy267777FBkZqR07duj+++/XY489pqamJh05ckT/93//p2nTpmnHjh167733ZBiGnn76aZfrAq50hB8ATn75y19q7dq16tq1q77++ms1NjYqODhYR48elSR16NBBb731lkpKShQaGqrS0lLdeeedjv1LS0uVmpqqBQsWaNiwYW49d2pqqoKCgnTDDTeof//++uyzz9rcp7CwUBMmTNDAgQNltVo1cOBATZgwQfn5+Y5txo0bpwEDBigwMFD/+7//K5vNppKSEsf6Rx55ROHh4eratatmzpypzZs3q6mpqc3nbqsXbfnv//5v2Ww2RUdHq2vXrrr77rsVERGh8PBw9enTR4cOHXJsO2DAAPXr108Wi0UDBgxQx44dNWnSJPn7++u2225TU1OTqqurFR4err/85S9KSkpSfX29jhw5orCwMMf/fgAIPwDO0tDQoHnz5ikxMVH33XefXnvtNRmGIbvdLunUzNDVV1+tBQsWqH///po+fbqOHDni2H/Hjh3q1auXXn31Vbefu2vXro6fAwICHB+1XUh1dbWuv/56p2XXXXedU3CIjIx0/Ozn56drrrlG//rXvxzLbrjhBsfP3bp1U1NTk44dO9bmc7fVi7aEhoY6frZarercubPjscVicTr+C23r5+cnSbLb7QoICNCmTZs0dOhQjRw5UitWrFBNTY1LvQTMgvADwElGRoZsNpu2bdumoqIiZWVlOYLPt99+q/3792v+/Pl67733tGnTJh0/flyPP/64Y//f/e53ysnJUUVFhdPsi8ViUXNzs+PxmR87/RDXXXedDh486LTsyy+/dApSZ8562O12HT58WN26dTvv+q+++ko2m01hYWHn1Gy32x2hqK1euHK8p0OLK1zd9q233tL69eu1bt06lZaW6tlnn1VsbKzLzwOYAeEHMKna2lodOXLE6V9LS4vq6+vVoUMHWSwW1dfXa8mSJaqvr1dzc7P8/Pz00EMPKTc3Vy0tLeratav8/f0VFhbmGDcgIEARERF65JFHtHjxYkcwuemmm/T222+rpaVFBw8e1MaNGz1yHOPHj9fLL7+sHTt2qLW1VWVlZXr55Zc1btw4xzYFBQX6+9//rqamJj399NMyDEO33XabY/3y5ctVX1+vo0ePKicnR3fddZcCAgJ000036eOPP1ZVVZVaWlq0Zs0anTx5UpLa7MVNN92kLVu2qLGxUf/617/04osveuR423L8+HFZLBYFBQXJMAz97W9/02uvveYUxACz8/d1AQB847e//e05y958801lZGQ4PvYKDg7WT3/6Uw0ZMkSffPKJAgMD9cc//lGLFy/WM888I6vVqqFDh2rWrFnnjDVu3Di9/fbbmjNnjvLy8vT73/9eWVlZSkxMVGRkpMaPH6+8vLwffBwjRoxQfX29Fi1apMOHDysiIkKzZ8/WmDFjHNskJibqscce0/79+xUbG6vc3Fx16tRJdXV1kqQePXpo1KhRamho0OjRo5WWliZJGj58uN5//3396le/kt1u15gxY5SQkCBJbfZi1qxZmj9/vgYPHqyrr75aU6ZM0QcffPCDj7ctd999tz744AONHDlSVqtVN954o6ZMmaK8vDw1NTUpMDDQ6zUA7Z2fwQfBAK5gkyZNclw6f7avvvpKt99+u7Zs2aLrrrvOB9UB8AU+9gIAAKZC+AEAAKbCx14AAMBUmPkBAACmQvgBAACmQvgBAACmQvgBAACmQvgBAACmQvgBAACmQvgBAACmQvgBAACm8v8Asw6Vwop/lUsAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "bins = [0, 10, 20, 30, 40, 60]\n", "ax = sns.histplot(tips, x='total_bill', bins=bins, stat='percent')\n", "plt.xlabel('Laskun loppusumma')\n", "plt.ylabel(f'Prosenttia, n={tips['total_bill'].count()}')\n", "ax.yaxis.set_major_formatter(ticks)\n", "ax.yaxis.set_major_locator(MultipleLocator(10))" ] }, { "cell_type": "markdown", "id": "08085de5", "metadata": {}, "source": [ "### Usean histogrammin yhdistelmä\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=len(muuttujat)` 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**.\n", "\n", "Kuvion sisällä sijaitseviin kaavioihin voit 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", "Usean kaavion yhdistelmissä kannattaa yksittäisen kaavion muotoiluun käyttää **plt**:n sijasta suoraa viittausta muotoiltavaan kaavioon (esimerkiksi `axs[0]`). Lisätietoa https://matplotlib.org/stable/api/axes_api.html.\n", "\n", "Lisätietoa usean kaavion yhdistelmistä https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.subplots.html." ] }, { "cell_type": "code", "execution_count": 7, "id": "8d28d375", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 0, 'Juomaraha dollareina')" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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HpYuXSpJysrK0qhRozR48GCNGjVKd999t3w+n8aMGVPryZcvX66CggKNHj1ao0aNUrNmzY4LMCIjI1VcXFzrsVNSUhz/BS+YxERHSy7zRzxERnp++n+kYmKcSTkDMacsS9GRoQoJcWn6ijzlHzKzI3Ks82M9GnlVG7Vt29aR+Zzm9XqVm5vLz7uN6KkZTve1aj44o7H/vPh8PklSlMejmBh7Dx+IioqSJCUlJdk67tHjN6SaWUc7h147h147x0Sva7rPUeu7WrRq1UrvvfeepMpba3788ccqKirSJZdcUusiIyMjFRkZqaysLA0aNEiZmZk6fPhwteeUlpYqOjq61mO73W4+uHXhcjmROxw7peOcmvPo01byD5Vo+35njiipEuw/C/y824+emkFfgxPv608M7juY7G9DrJnPnHPotXPotXMC0esaX1zyaDt37tSGDRuUk5Oj7777Tj/88INmz55do+/98ssvde2116qsrMy/rKysTGFhYWrdurXy8vKqPX/btm1q06bNmZQJAAAAAAACrMbBwxdffCFJmjFjhnr16qXMzEz9z//8jzIzM3XHHXdo2bJlNRonKSlJpaWleu6551RWVqb8/HxNmTJFAwcOVO/evbVv3z7Nnj1b5eXlWrt2rZYsWaKMjIwze3UAAAAAACCgahw83HnnnZKkefPmadq0aXr55Zc1aNAgrV27Vtdff71SU1NrNE50dLRmzpypvLw8de/eXZmZmfr5z3+usWPHKi4uTrNmzdKyZcuUlpam7OxsZWdnq2vXrmf26gAAAAAAQEDV+BoPX331lSTp8OHDuuaaa/Tjjz9q2rRpio2N1aOPPqqMjAw99NBDNRqrdevWmjVr1gkfS0lJ0fz582taFgAAAAAAqMdqfMTDE088IUk699xzVVhYqGbNmun777+XZVmKj4/Xf/7zH1M1AgAAAACABqrGRzxYVuWthjp37qxRo0bp+eefV3JysqZOnaqIiAg1a9bMWJEAAAAAAKBhqvERD08++aQk6eGHH9bFF1+siooKjR07Vn//+9/15ptvauzYscaKBAAAAAAADVONj3ioEhMTo8cff1ySFB8frw8++MD2ogAAAAAAQHCodfBw6NAh/fWvf1V+fr58Pl+1xyZNmmRbYQAAAAAAoOGrdfBw33336YcfflD79u0VElLjMzUAAAAAAEAjVOvgYePG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vFlDhw5Vly5d1L17d40ZM0YHDhyQRE/rYs2aNRo0aJA6dOig7t27a/z48SotLZVEX+3g9XqVmZmphx9+2L+Mvp65999/X8nJyUpNTfX/l5WVJYm+IricapsHM060vob9Dh06pDFjxigtLU2dO3fW3XffrT179gS6rKC0adMm3XrrrerUqZN69OihCRMmqKysLNBlBZV687uehUZtw4YN1tVXX20lJiZaa9eutSzLsg4dOmR16dLFmjt3rlVeXm6tXr3aSk1NtTZu3Bjgauu3kpISq3v37tYLL7xgHTlyxDpw4IB11113WcOHD6endbB//34rJSXFevvtty2v12vt3r3b6tu3r/XCCy/QV5s8//zz1mWXXWY99NBDlmWxDqiryZMnWw8//PBxy+krgsmptnkw59j1Ncy47bbbrBEjRlgFBQXW4cOHrXvuuccaNmxYoMsKOl6v1+revbs1Z84cy+v1Wj/88IPVu3dv68UXXwx0aUGjPv2uxxEPjdg777yj0aNH6/7776+2fPny5YqNjdWtt96q0NBQdevWTf369dO8efMCVGnDsGvXLl122WUaMWKEwsPDFRcXp5tvvlk5OTn0tA7i4+O1evVqDRgwQC6XS4cOHdKRI0cUHx9PX22wZs0aLV++XNdcc41/GX2tm9zcXF1++eXHLaevCCan2ubBjBOtr2G/f/7zn9q4caMmT56sJk2aKCYmRuPHj9fo0aMDXVrQKSgo0N69e+Xz+WRZliQpJCREHo8nwJUFh/r2ux7BQyPWo0cPffTRR7r++uurLc/Ly1NiYmK1Za1bt9bmzZudLK/BufTSSzVz5ky53W7/sg8//FBt27alp3UUExMjSerZs6f69eunhIQEDRgwgL7W0f79+/Xoo4/queeeq7aRp69nzufzadOmTfrkk0905ZVX6pe//KUee+wxFRQU0FcElVNt82C/k62vYb9vvvlGrVu31ltvvaVevXqpR48emjJlihISEgJdWtCJi4vTkCFDNGXKFKWkpKhnz55q2bKlhgwZEujSgkJ9+12P4KERS0hIUGho6HHLi4qKjtuoRUZGqri42KnSGjzLsvTHP/5RH3/8sR599FF6apPly5frH//4h0JCQjRq1Cj6Wgc+n09ZWVkaOnSoLrvssmqP0dczd+DAASUnJ6t37956//33NX/+fG3fvl1ZWVn0FUHr2G0e7HWq9TXsV1BQoC1btmj79u1655139O6772r37t166KGHAl1a0PH5fIqMjNRjjz2mr7/+WkuXLtW3336radOmBbq0oFDfftcjeMBxPB6P/8J9VUpLSxUdHR2gihqWwsJCjRo1SkuWLNHcuXOVlJRET20SGRmpZs2aKSsrS59++il9rYMZM2YoPDxcmZmZxz1GX8/cOeeco3nz5mngwIHyeDxq0aKFsrKy9I9//EOWZdFXBJ0TbfNgr1Otr2G/8PBwSdKjjz6qmJgYnXPOObrvvvu0atUqFRUVBbi64PLRRx/pww8/1G9+8xuFh4erTZs2GjFihP72t78FurSgFqj9PIIHHCcxMVF5eXnVlm3btk1t2rQJUEUNx44dO5SRkaHCwkItXLjQvwNGT8/cl19+qWuvvbbaFY7LysoUFham1q1b09cztHjxYq1fv16dOnVSp06dtHTpUi1dulSdOnXi81oHmzdv1h/+8Af/uapS5ec1JCRE7dq1o68IKifb5sFep1pfw36tW7eWz+dTeXm5f5nP55Okaut21N0PP/xw3B0sQkNDFRYWFqCKGodA7ecRPOA4vXr10r59+zR79myVl5dr7dq1WrJkiTIyMgJdWr1WUFCg22+/XR06dNBrr72m+Ph4/2P09MwlJSWptLRUzz33nMrKypSfn68pU6Zo4MCB6t27N309Q8uWLdOXX36pDRs2aMOGDerbt6/69u2rDRs28Hmtg9jYWM2bN08zZ85URUWFdu3apWeffVY33XQTn1cElVNt82CvU62vYb+f//znuvDCCzV27FgVFRXpwIED+uMf/6irr77af80p2KNHjx7au3evXnnlFXm9Xu3cuVMvv/yy+vXrF+jSglqg9vNcFtEdVPnL3RtvvKG0tDRJlVdlnzhxorZu3ar4+HjdfffdGjBgQICrrN9ef/11TZ48WR6PRy6Xq9pjX331FT2tg23btunpp59Wbm6uzjrrLPXr189/JXX6ao+qe8JPnjxZEuuAuli/fr2mTp2qrVu3KiIiQn369FFWVpYiIiLoK4LG6bZ5MOfY9TXst3v3bk2ePFk5OTk6cuSI0tPT9eijj6pJkyaBLi3orF69Ws8//7z+3//7fzrrrLN0ww03+PfxYJ/68LsewQMAAAAAADCGUy0AAAAAAIAxBA8AAAAAAMAYggcAAAAAAGAMwQMAAAAAADCG4AEAAAAAABhD8AAAAAAAAIwheAAAAAAAAMYQPAAAAAAAAGMIHhC0kpKStG7dOtvHTU9P16JFi2wf91gPP/ywHn74YePzNFa1eR+P/iyZfP/HjRuncePGGRkbABC8Fi1apPT09ECXYQtT+2+1Hf/7779XUlKSvv/+e+N13XnnnXrllVeMjA3UF6GBLgAAUOmpp54KdAkAAMBhM2fODHQJgHEc8YBGqaysTFOmTNF1112n1NRUdevWTePHj5dlWZKknJwcDRgwQJ06dVKvXr00ceJEVVRUHDfOp59+qo4dO+qDDz6QdHwafvRfINatW6f09HS9/PLL+sUvfqEuXbpo5MiRKiwsrFHNCxYsUJ8+fdShQwf169dP//u//+t/LDMzU5MnT9aAAQPUvn17DRgwQBs2bJD038T+L3/5i7p3766OHTsqKyvLP+/06dOVmZlZba6j/6p/ql4c+9f/devWKSkpqdq87777rq688kq1b99ejzzyiDZs2KAbbrhBqampuv3223XgwAFJlUd4PPXUUxo+fLhSU1PVq1cvrVmzRuPHj1fnzp3VvXt3LViwwD/XypUrdcstt6hbt2664oordNttt2n79u0n7J1lWXrllVfUo0cPderUSVOmTJHX6/U/XlpaqmeeeUY9e/ZU586dlZmZqW+++ea078nu3bt13333KT09XVdccYWuuuoqLVy40P94UlKSJkyYoLS0NP3ud7+TJK1evVoDBw5Up06d1KdPn2rv49FHuUyfPl2jRo3S6NGj1alTJ/3yl7/Uc889V+O5AQCN07F/qZeO39b//e9/14ABA9ShQwf17t1bs2fPls/nk2Tv9njRokUaMGCAfvvb36pTp05asmRJjbZfn3/+uW688UalpqZq4MCB2rp1q/+xhQsXasCAAUpLS1NqaqqGDx/u35c4Vnl5uSZNmqS0tDR17dr1uF/wDx48qMcee0w9evRQWlqahg8fftJ9iaN9++23Gj58uH71q1+pXbt2uv766/Xxxx9X6//kyZPVuXNnPfnkk5Kk9957T/369VPHjh01YMAAffbZZ/7xMjMzNX36dH//x40bp9/97ndKTU3VVVddpTfeeKNGcwP1GcEDGqU5c+bo008/1Zw5c/TVV1/ppZde0vz587V27VpJ0pgxY5SZmakNGzbo9ddf17Jly7RixYpqY6xatUoPPPCApk6dquuuu65G8+bn52v37t366KOPtGDBAn311Vf661//etrvW7RokSZPnqzs7Gzl5ORo7NixevLJJ/XRRx/5n/Pmm29qzJgxWr9+vXr16qXf//73OnjwoP/x5cuXa8mSJVq2bJm+++47/4bwdGrSi1NZtWqV3n//fb311ltavHixxo8fr1dffVUrVqzQDz/8UO31v/3227rrrrv0xRdfqF27drrjjjvUsmVLrVmzRsOHD9dTTz2lsrIy/fjjj7r33ns1bNgwrVmzRp988oksy9Kf/vSnE9bw9ttva86cOZoxY4ZWr16tsLAw/fjjj/7Hn3jiCX322Wd644039Pnnn+vqq6/WkCFDtGvXrlO+tuzsbIWFhem9997Tl19+qdtuu03jx49XUVGR/zk7duzQJ598omeeeUabN2/W73//ew0bNkzr1q3T+PHj9fTTT+vTTz894fjLly9Xjx49/M999dVX9fXXX9d4bgAAjrV27Vrdd999uvPOO7V+/XpNnTpVr7/+erVfbu3cHm/atEn9+vXT6tWr1atXrxptv9avX6/XXntNa9asUVxcnKZMmSJJ+uabbzRhwgQ98cQTWrdunT744ANt3769Wu1He+mll/TJJ59o4cKFWrlyZbUAQ5JGjRqlHTt26J133tGqVat06aWXasiQIaf9o9DIkSOVmJiojz76SBs2bFCPHj30xBNPVHtOUVGRPv/8c91///1atWqVHn/8cY0bN07r16/XyJEjNXLkSOXl5Z1w/EWLFikzM1M5OTm66667NHnyZO3evbvGcwP1EcEDGqXBgwdr9uzZSkhI0J49e1RaWqro6Gj/Sj0iIkIffPCBPv74Y8XGxmrVqlXq3bu3//tXrVqlESNG6Mknn1TPnj1rNfeIESMUGRmpiy++WGlpafr3v/992u95++23dfPNN6tbt25yu93q1q2bbr75Zs2fP9//nIyMDHXt2lXh4eH63e9+J4/HUy0Bf+SRRxQfH6+EhASNGjVKy5YtU1lZ2WnnPl0vTue3v/2tPB6PEhMTlZCQoJtuuknNmjVTfHy82rdvr/z8fP9zu3btqk6dOikkJERdu3ZVVFSUMjMzFRoaqiuvvFJlZWXat2+f4uPj9d577yk9PV2FhYX68ccfFRcX53//jrV48WINHjxYbdu2VXh4uO69917FxcVJko4cOaKlS5fqwQcf1MUXX6zw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o/WrX/1Kv/jFL7R161aFh4fr5Zdf1pQpUzRjxgy53W798pe/1OjRo48bKyMjQx9++KEeeughzZs3T48//rgmTZqkLl26qGXLlho4cOBJz9+vjeuuu06FhYWaMGGCdu3apWbNmmnMmDHq37+//zldunTRU089pW3btik5OVmzZs3SWWed5T9n8qKLLlLfvn1VUlKifv36KSsrS5J09dVXa/Xq1RoyZIh8Pp/69++vjh07StJpezF69Gg98cQT6t69u84991zdfvvt+uKLL+r8ek/npptu0hdffKE+ffrI7Xbr0ksv1e2336558+aprKxM4eHh1Z7ft29fHTx4UPfff78KCgp07bXX+u++IVVeQHP69OkaMmSIDh06pKSkJL322mu65JJLTlpDVFSUnn76ab3wwguaMGGCzj77bA0ePFjbtm3T1q1bT/i9V1xxhaZOnaqpU6fq3nvvlcfjUd++ffXAAw/U6vWfydwAgOAxaNAg/etf/9INN9ygI0eOKC0tzb9dDw8P1/jx4zVt2jS99tpruvzyyzV48GD/9vmKK67QCy+8oD/96U8aO3as4uLi9Otf/1p33XVXres43fb4WHXdfv32t7/V1q1bdeWVVyoiIkLJycn6zW9+4784+LHuuusulZSU6LbbblNFRYUGDx5c7TSOZ555Rn/4wx900003qbi4WO3bt9ecOXMUGxt70gtMXnrppRozZoyysrJUUlKi5s2ba/DgwXr22We1devWauNXufbaa1VcXKyxY8dq165dio2N1ZAhQ467q9jpnG7uqvAJqI9cFicFAQ1eZmam//acx/r+++911VVXacWKFcddxwAAAAAATONUCwAAAAAAYAzBAwAAAAAAMIZTLQAAAAAAgDEc8QAAAAAAAIwheAAAAAAAAMYQPAAAAAAAAGMIHgAAAAAAgDEEDwAAAAAAwBiCBwAAAAAAYAzBAwAAAAAAMIbgAQAAAAAAGPP/AfNlawA1swxHAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "muuttujat = ['total_bill', 'tip']\n", "fig, axs = plt.subplots(nrows=1, ncols=len(muuttujat), sharey=True, figsize=(12.8, 4.8))\n", "\n", "# Käydään muuttujat-lista läpi: i=järjestysnumero, muuttuja=muuttujan nimi\n", "for i, muuttuja in enumerate(muuttujat):\n", " sns.histplot(tips, x=muuttuja, ax=axs[i])\n", " \n", "axs[0].set_xlabel('Laskun loppusumma dollareina')\n", "axs[0].set_ylabel('Lukumäärä')\n", "axs[1].set_xlabel('Juomaraha dollareina')" ] }, { "cell_type": "markdown", "id": "2283cbc2", "metadata": {}, "source": [ "### Displot\n", "\n", "Seabornin **displot**-funktio on oikotie usean kaavion histogrammeihin kategoristen muuttujien määräämissä ryhmissä. Funktiota voidaan käyttää myös useiden muiden kaaviolajien kanssa. Lisätietoa https://seaborn.pydata.org/generated/seaborn.displot.html.\n", "\n", "Seuraavassa tarkastelen tipin (**tip**) suuruutta sukupuolen (**sex**) ja tupakoinnin (**smoker**) määrittämissä ryhmissä. Kaaviolaji määritetään parametrina `kind='hist`. Kuvion kokoa säädetään **height**-parametrilla.\n", "\n", "**displot** palauttaa **Facetgrid**-luokan olion, jolla on omat funktionsa otsikointien ym. ominaisuuksien muotoiluun. Esimerkissä olio sijoitetaan **g**-nimiseen muuttujaan. Lisätietoa https://seaborn.pydata.org/generated/seaborn.FacetGrid.html.\n", "\n", "Yksittäisiin kaavioihin voidaan viitata rivi-ja sarakenumeroiden avulla, esimerkiksi `g.axes[0, 0]`. Rivinumero on pakollinen vaikka kuvia olisi vain yhdellä rivillä kuten tässä esimerkissä." ] }, { "cell_type": "code", "execution_count": 8, "id": "8c6e28ea", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 1.0, 'Tupakoimaton nainen')" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAk0AAAJQCAYAAACTslAdAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjYsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvq6yFwwAAAAlwSFlzAAAPYQAAD2EBqD+naQAAZFxJREFUeJzt3Xl4U3XaxvE7TVuStkCpIAjquADFQtFSbUFwqyJuSAURRkVEWZQKgwrINqACVsVBBGQTEIEyKBVUEFEBl1FWK0JlWFVEAYFCW+hm2zTvH0zzGtaTNhvp93NdXE5OkvN7njTnN3fOOTkx2e12uwAAAHBWQb4uAAAA4HxAaAIAADCA0AQAAGAAoQkAAMAAQhMAAIABhCYAAAADCE0AAAAGEJoAAAAMIDQBAOAirgtdNRGaqpAhQ4YoOjr6rP+SkpK8XtfixYsVHR2t33//vVLr6datm7p16+amqtzP3+tDYGP7d5+MjAz16dPHK2NVRnR0tCZNmuTrMgJKsK8LgPf07dtXXbt2ddyeMmWK/vvf/2ry5MmOZaGhob4ozS1GjRrl6xLOyt/rQ2Bj+3efRYsWaffu3V4br6Leffdd1atXz9dlBBRCUxVy6aWX6tJLL3XcjoqKUmhoqK655hrfFeVGDRs29HUJZ+Xv9SGwsf1XPYHyt/UnHJ7DKdavX6/o6GitX7/eafnJu7+TkpL0+uuvKzU1VQkJCUpISNCgQYOUnZ3t9LxFixapY8eOuuaaa9S8eXN16NBBy5cvP+P4x44dU4cOHZSUlOTYZf/nn3/qzTff1B133KHY2FjdfvvtmjFjhsrKyk5b32OPPabk5ORT1j1gwADdfffdFa6tfJyRI0dq6tSpuuGGG3T11VerV69eysrK0vvvv6+2bdsqLi5Ojz76qNMhh5Nfv7KyMs2YMUNt27ZVs2bN1K5dO82bN89prN9++01PPvmkEhMTdfXVV6tLly766quvzlofUBmBsP1LJw5N/fvf/9aQIUMUHx+vhIQEjRkzRkVFRXrllVfUsmVLJSYmavjw4frzzz8dzzt69KheeOEF3XLLLWrWrJkSEhKUkpLiqGXIkCFasmSJ9u3bp+joaC1evFiSdPz4caWmpuq2225TbGys7rnnHqWnpzv1lpSUpIkTJ+qVV17R9ddfr+bNm+vxxx/XL7/8cta/SUV7OfnwXE5OjkaOHKnrr79esbGxeuCBB7R27VqnsdasWaMuXbooLi5O1113nfr27auff/75rPVVJYQmVMqCBQuUkZGhl156SQMHDtTXX3+tnj17OiaztLQ0jRw5UrfeequmT5+ucePGKSQkRIMGDdL+/ftPWV9+fr569eqlY8eO6Z133tHFF18su92uJ554QjNnztT999+vadOm6Y477tCECRPOuEu+Q4cO2rZtm9PGnp+fry+++EIdOnSoUG1/9fHHH2vNmjUaO3ashg4dqjVr1ujhhx/WvHnz9Nxzz2n48OHavHmzXnzxxTOu4/nnn9fEiRN17733Onp66aWX9Oabb0o6Ear69OmjgoICvfrqq5oyZYoiIyPVt29f/frrr2f/wwBe4K/bf7nXXntNoaGhmjx5sjp06KB58+YpOTlZBw4c0Lhx49S1a1elp6c7PqzY7Xb16dNH3377rZ599lnNmjVLffv21Zo1azRy5EhJJw5z3nTTTapTp47effdd3XzzzSoqKtKDDz6ojz76SI899pimTJmi+Ph4DR8+XNOmTXOqae7cufr555+VmpqqMWPG6Mcff9SQIUPO+Vq72svJ/vzzT3Xv3l2rVq3S008/rcmTJ6tevXrq2bOnIziVf0hr2rSppk6dqjFjxujnn39W7969nQJqVcbhOVSKyWTS22+/rerVq0s6scs/JSVFX3/9tW6++Wb99ttveuyxx5SSkuJ4zsUXX6yOHTvq+++/V/369R3L//zzTz355JP6448/NH/+fF1yySWSpK+//lpr1qzRuHHjdO+990qSWrduLYvFojfeeEPdu3c/Zdd827ZtFRYWpuXLl+upp56SJH3++ef6888/1b59e0lyqbaTlZSUaPLkyapZs6Zj3d98841WrlzpqHvbtm368MMPT/v8X375Re+9956eeeYZ9e7dW5LUpk0bmUwmTZ8+XQ8++KBKS0v1008/6YknntBNN90kSWrevLkmT57s9GkS8BV/3f7LXXnllY4PLtddd53S09NVUlKi1157TcHBwbrhhhu0evVqff/995KkQ4cOyWq16rnnntO1114rSUpMTNTvv/+uhQsXSjpxmPPkQ5sLFizQzp07tWDBAsXHx0uSbrjhBpWWlmrKlCnq2rWrIiMjJUk1atTQlClTZDabJUl79+7VpEmTlJ2drVq1ap3xtXa1l5N9+OGH2r59u9577z1dffXVkqQbb7xR3bp102uvvab3339fW7ZsUVFRkfr06aO6detKki666CKtWrVKBQUFioiIOGN9VQWhCZVyyy23OCZM6cTu55CQEH333Xe6+eabHZ+gjh8/rj179mjPnj2OTzUlJSVO6xo8eLB+/PFHjR071jFhStKGDRtkNpt11113OT3+3nvv1RtvvKH169efMmmGhYWpbdu2TqHp448/VkJCgi666CJJcqm2k1155ZWOwCRJderUUVRUlFPdkZGROn78+Gmfv27dOtntdiUlJam0tNTp9Zs6daoyMjJ06623qmHDhvrnP/+pNWvW6MYbb1SbNm00dOjQs9YGeIu/bv/l4uLiHP87ODhYtWrVUrNmzRQc/P//1/fX7bRu3bqaO3euJGn//v369ddf9dNPP+n7778/65ywYcMGNWjQwBGY/lpjenq6Nm/e7PjgExsb6whMkhwnahcWFp41NLnay8nWrl2rOnXqqGnTpk5zzi233KJXX31Vubm5uvrqq1WtWjXdf//9uuuuu3TTTTfp2muvVfPmzc9YV1VDaEKlXHjhhU63g4KCFBkZqWPHjkk68Slq5MiRWrdunYKDg3XFFVcoOjpa0qnXOTl48KCaNWumN998U3feeafCw8MlSbm5uapVq5bT5CCdCCqSzjhJJCcnOz5dXXjhhVqzZo3T4TJXajvZ6T5xWa3Wsz7nr3JyciTJ6fyqvzp48KBMJpNmz56tqVOn6vPPP9eSJUsUEhKi2267Tc8//7zjkyvgK/68/UsV204/+ugjjR8/XgcOHFBkZKSaNGkii8Vy1ufk5uaqdu3apywvX1b+epxu/KCgE2fJnOvwlzvmnMOHD6tp06anvf/w4cNq2LCh5s+frxkzZui9997TnDlzVKNGDT344IP6xz/+4ai1KiM04RQmk0nSqRtxfn6+YyIrV/5//uVsNpuys7MVFRWlsrIy9e7dWyEhIXrvvfcUExOj4OBg7d69Wx999NEp406ePFkRERFKTk7W66+/rhEjRkiSatasqezsbJWWljpNnIcOHZKkM346a9myperWratPPvlEdevWVXBwsNq1a+fozZXa3K1GjRqSpHfeeeeU11SS47BF3bp19fzzz2vUqFHavn27VqxYobfeeks1a9bUCy+84PE6UfUEyvZfEd99952ee+45Pfzww3r88ccde4FeffVVZWRknPF5NWvWPO15hocPH3Z7jRVVvXp1XXbZZXrttddOe//FF18s6f9PASguLlZGRobeffddTZs2TdHR0afs7auKiI04RfknmgMHDjiW5ebm6qeffjrlsf/5z39UXFzsuL1q1SqVlpaqVatWys7O1i+//KL7779fzZs3d0x4X3/9taRTJ+XatWurYcOG6tGjh9LS0rRp0yZJUkJCgmw22ynfuCmfeE/eJV4uKChI99xzj1atWqUVK1bo1ltvdfTmam3udt111znqiI2NdfzLycnRhAkTlJOTo02bNun666/Xli1bZDKZdNVVV+npp59W48aN9ccff3i0PlRdgbL9V8SmTZtUVlam/v37OwKTzWbTmjVrnGo+eY/Lddddp3379p0SrD766COFhIT4xeGthIQEHThwQBdccIHTnLN27VrNnDlTZrNZc+bMUVJSkoqLixUaGqpWrVpp9OjRkpzfD1UZe5pwiujoaF100UWaPHmyqlevrqCgIM2YMeO0u4L/+OMPPfnkk3rkkUd04MABjR8/Xm3atFFiYqIkqUGDBkpLS1O9evVUo0YNffPNN3rnnXcknTiGfzopKSn6+OOPNWLECC1ZskQ33nijEhMTNWrUKB06dEgxMTHasGGD3nrrLd13331nvT5LcnKyZs2aJbPZrKlTpzqWX3DBBRWqzV0aN26se++9V//85z+1b98+NWvWTL/88otef/11XXzxxbrssstUWloqi8WiwYMHq1+/fqpdu7bWrFmjbdu26ZFHHvFofai6Amn7d1V5uHnxxRfVqVMnHTt2TPPnz9f27dslyXEydI0aNZSVlaWvvvpKV111lTp27KgFCxboqaeeUv/+/XXJJZdo9erVev/99/XUU0859iz7UseOHTV//nz16NFDTzzxhC666CKtWbNGb731lh5++GGFhISoZcuWeu2115SSkqKHH35YZrNZCxcuVGhoqG655RZft+AX2NOEU5jNZk2cOFEXXnihnnnmGY0ZM0Z33nmnbr/99lMee/fdd+vSSy/VgAEDNGnSJN13332Or8xLJ646XLduXQ0ZMkQDBgzQDz/8oKlTp+qKK67Qd999d9rxLRaLRo4cqd27d2vatGmOb5R17dpVc+fOVe/evbVixQo9/fTTGjt27Fl7ady4sa666irVrFlTrVu3drqvIrW5U2pqqnr06KGFCxeqZ8+emjZtmu66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6aK9e/c6luXm5qp3795KTk7Wxo0bNXbsWKWmpmrLli0+rNSzmDv8X6DMH8wdriE0edD+/fvVpEkTpaSkKDQ0VLVq1VKXLl20ceNGX5dWYWvXrtVnn32m22+/3delVMqPP/6ozZs36+WXX1aNGjUUERGh0aNHa+DAgb4urUJyc3N1+PBhlZWVOX54NigoSFar1ceVGbdkyRINHDhQTz/9tNPyzz77TJGRkXrooYcUHBysVq1aqX379kpLS/NRpZ7H3OHfAmn+YO5wDaHJg6644grNnDnT6aKcn376qZo2berDqiruyJEjGj58uP71r3+dVxvU6WzZskUNGzbUe++9p7Zt26pNmzZ65ZVXVKdOHV+XViG1atXSo48+qldeeUWxsbG66aabdNlll+nRRx/1dWmGtWnTRp9//rnuuusup+W7du1S48aNnZY1bNhQ27dv92Z5XsXc4d8Caf5g7nANoclL7Ha7Xn/9dX3xxRcaPny4r8txWVlZmQYNGqQePXqoSZMmvi6n0nJzc7Vjxw7t2bNHS5Ys0QcffKCDBw/queee83VpFVJWViaLxaJ//vOf+uGHH7Rs2TL99NNPmjhxoq9LM6xOnToKDj715zDz8/NP+T9ai8WigoICb5XmU8wd/ieQ5g/mDtcQmrwgLy9P/fv319KlSzV//nxFR0f7uiSXTZ8+XaGhoerWrZuvS3GL8h9mHT58uCIiIlS7dm0NGDBAX331lfLz831cnes+//xzffrpp3rwwQcVGhqqRo0aKSUlRf/+9799XVqlWa1WFRUVOS0rKipSeHi4jyryHuYO/xRI8wdzh2tOjWZwq71796pXr16qX7++0tPTFRUV5euSKuTDDz/UoUOHdO2110qS4424cuXK8/LEzoYNG6qsrEwlJSWqVq2apBOfuCTpfPxloQMHDpzybZfg4GCFhIT4qCL3ady4sb799lunZbt371ajRo18VJF3MHf4r0CaP5g7XMOeJg/Kzc1V9+7d1aJFC82aNeu8nfQkacWKFfr+++/13Xff6bvvvtM999yje+6557yd9K6//npdcsklGjZsmPLz83X06FG9/vrruu222xQREeHr8lzWpk0bHT58WNOmTZPNZtNvv/2mqVOnqn379r4urdLatm2rrKwszZkzRyUlJVq3bp2WLl2qTp06+bo0j2Hu8G+BNH8wd7iG0ORBixcv1v79+/XJJ58oPj5ecXFxjn/wrZCQEM2bN09ms1nt2rVTu3btVK9ePb300ku+Lq1CGjZsqOnTp2v16tVKTEzUI488oqSkpFO+TXI+qlWrlmbPnq0VK1YoMTFRI0aM0IgRI9SyZUtfl+YxzB3+LZDmD+YO15js59u+RAAAAB9gTxMAAIABhCYAAAADCE0AAAAGEJoAAAAMIDQBAAAYQGgCAAAwgNAEAABgAKEJAADAAEITPGLx4sVKSkrydRmVFh0drfXr1/u6DKBKYf6AvyI0AQAAGEBogkf9/vvvio6O1u+//+5YNmnSJHXr1s1xe+XKlerYsaNatGihdu3aac6cOY5fDB8yZIhefPFF9enTR3FxcWrbtq3Wrl2r0aNH67rrrlPr1q21aNEix7pWr16trl27qlWrVrr66qv18MMPa8+ePZJOfHrt2LGjHnvsMV177bVaunSpDh48qAEDBigpKUlXX321br31VqWnpzv18O2336pDhw6Ki4vT/fffr507dzruS09PV8eOHZWYmKi4uDj16dNHR48e9cRLCVQ5zB/wN4Qm+NS6des0YMAA9ezZUxs2bND48eP19ttva+7cuY7HvP/+++rVq5cyMjLUvHlzPf7447rsssu0du1a9enTRy+++KKKi4v1xx9/6B//+Id69+6ttWvX6ssvv5Tdbtebb77pWNfWrVvVvn17rVmzRm3bttWIESMUEhKijz/+WN9//70efvhhjR49Wvn5+Y7nbNiwQbNmzdLatWtVq1YtvfLKK5KkLVu2aMyYMXr++ee1fv16ffLJJ9qzZ49T7QA8h/kD3kZogk8tXrxYt956q+666y4FBweradOm6t27txYuXOh4TMuWLXXttdcqKChILVu2VFhYmLp166bg4GDdcsstKi4uVlZWlqKiovTxxx8rKSlJeXl5+uOPP1SrVi0dPHjQsa6QkBB16NBBoaGhslgsGjNmjEaNGqWQkBDt379f4eHhKioqUm5uruM5PXr0UO3atWWxWHTbbbdp7969kqTGjRtr2bJlat68uXJzc3Xo0CFFRUU5jQfAc5g/4G3Bvi4AVduRI0d01VVXOS27+OKLtW/fPsftyMhIx/82m82qUaOG47bJZJIklZWVKSQkRMuWLdPChQtlMpnUuHFj5eXlKTj4/9/mderUUVDQ/39W+O233/Tqq69qz549uuyyy/S3v/3Nsb7TjR8SEiKbzSZJCgoK0ty5c7V06VKFhYUpOjpaeXl5stvtlXhFABjF/AFvIzTBLT744AMdOnRIvXv3liSVlpbKYrHIbDZLkkpKShyPzc7OdvzvBg0aOD55lfvtt99Up04dx+3yie1cPvnkE82fP1///ve/HZPX6NGjnc4h+Ou6SkpK1KdPHz3zzDN68MEHZTKZ9OOPP+qjjz4yNN6cOXP07bffaunSpapdu7Yk6YknnjD0XAD/j/mD+eN8weE5uEVBQYHmz5+vQ4cOKS8vT59++qmaNWumCy64QDVr1tTHH38su92urVu3asWKFY7nderUSatXr9Ynn3wim82m//73v3rrrbfUqVMnl2s4fvy4goKCZLFYZLfb9fXXX+uDDz5wmnD/qqSkREVFRbJYLDKZTNq/f7/GjRvnuO9cyj+FhoSEqLS0VB9++KH+85//GHougP/H/MH8cb5gTxPconPnztq2bZvuvfde/fnnn0pMTNSgQYMUGhqq0aNHa+LEiZo1a5aaNWumBx54QBkZGZKkq6++Wm+88YbefPNNDRs2TLVq1dLf//539erVy+Ua7rvvPmVkZOjuu++W2WzWFVdcoe7duystLU3FxcWnPD4sLEwvvfSS3njjDY0ZM0YXXHCBHnjgAe3evVs7d+7U5ZdfftbxHnvsMe3cuVO33HKLqlWrppiYGD344INat26dy7UDVRnzB/PH+cJk5wAqAADAOXF4DgAAwABCEwAAgAGEJgAAAAMITQAAAAYQmgAAAAwgNAEAABhAaAIAADCA0AQAAGAAoQkAAMAAQhMAAIABhCYAAAAD/g92bCp0BkQyPgAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "g = sns.displot(tips, x='tip', row='sex', col='smoker', kind='hist', bins=8, height=3)\n", "g.set_axis_labels('Juomaraha', 'Lukumäärä')\n", "\n", "g.axes[0, 0].set_title('Tupakoiva mies')\n", "g.axes[0, 1].set_title('Tupakoimaton mies')\n", "g.axes[1, 0].set_title('Tupakoiva nainen')\n", "g.axes[1, 1].set_title('Tupakoimaton nainen')" ] }, { "cell_type": "markdown", "id": "294c1860-bf7c-448c-8f5e-3aefed1cb052", "metadata": {}, "source": [ "### Muuta huomioitavaa\n", "\n", "#### Fontit\n", "\n", "Tekstiä lisäävät funktiot (**plt.title**, **plt.xlabel**, **plt.xticks** 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 arvo **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. Funktiolla **displot** luotavan kaavion kokoa voit säätää **height**-parametrilla." ] }, { "cell_type": "markdown", "id": "74ea30ae-afe3-4ba0-853b-01fb0dc1e855", "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 }