{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Päivitetty 2025-11-26 / Aki Taanila\n" ] } ], "source": [ "from datetime import datetime\n", "print(f'Päivitetty {datetime.now().date()} / Aki Taanila')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Grafiikka - johdanto\n", "\n", "* Jos käytät **pandas**-kirjastoa, niin voit tehdä kaavion dataframesta **plot**-funktiolla. Käytettävissä on monia kaavioon vaikuttavia parametreja: https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.plot.html.\n", "* Kaavion luonnin jälkeen voit muotoilla ja täydentää kaaviota **matplotlib.pyplot**-paketin komennoilla. Lue lisää https://matplotlib.org/stable/tutorials/pyplot.html ja https://matplotlib.org/stable/api/pyplot_summary.html.\n", "* Tarvitset usein myös kaavion luonnin palauttamaa **Axes**-luokan oliota kaavion muotoiluun. Lue lisää https://matplotlib.org/stable/api/axes_api.html.\n", "\n", "**Seaborn** on matplotlibin päälle rakennettu paketti, joka tekee monista vaikeista asioista helppoja. Tässä muistiossa käytän sitä ainoastaan grafiikan tyylimäärittelyyn.\n", "\n", "### Tuonnit ja alkuvalmistelut" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "\n", "# Grafiikan tyylimäärittely 'whitegrid' sisältää taustaviivoitukset (grid).\n", "# Muita tyylivaihtoehtoja ovat 'darkgrid', 'dark', 'white' ja 'ticks'.\n", "sns.set_style('whitegrid')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Dataframesta kaavioksi\n", "\n", "* `df.plot()` luo oletuksena viivakaavion.\n", "* **kind**-parametrilla voit määrittää tehtäväksi muun kuin viivakaavion." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Myynti 2017
Helsinki1321847
Turku852669
Tampere1032199
Oulu568230
\n", "
" ], "text/plain": [ " Myynti 2017\n", "Helsinki 1321847\n", "Turku 852669\n", "Tampere 1032199\n", "Oulu 568230" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df1 = pd.DataFrame({'Myynti 2017':[1321847, 852669, 1032199, 568230]},\n", " index=['Helsinki', 'Turku', 'Tampere', 'Oulu'])\n", "df1" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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B2eGAACA7VasWKGpU6cqMzOzxlhhYaFGjx6txMREDR06VKtWrfKNLV26VA8//LBuv/12ORwO9evXT++++646derk97YJQwAAwHa33HKL1q5dqyFDhlRbvmvXLj3++OMaP368ioqK9Oyzz+qPf/yjPv30U0nSjh071KpVK40fP15JSUkaMWKE9u/fr1atWvm9bcIQAACwXVRUlMLCat6989Zbb2ngwIG666675HK51Lt3b91333164403JEknT57Uq6++qscff1x/+9vfNHHiRGVmZuqzzz7ze9vcMwQAAELWoUOHtHHjRiUmJvqWeTwe32WwiIgIpaWlKSEhQZJ01113qX///iooKFCvXr382gZhCAAAhKzo6GiNGjVKWVlZvmVHjx5V1ffMx8TEqKKiotp7PB6PAvkeei6TAQCAkDV69Gi9//77+p//+R95vV59++23euihh/Taa69Jkh544AEtX75chYWF8nq9KigoUFFRkYYNG+b3NjgzBAAAQlavXr00f/58zZ8/XxkZGYqMjNSwYcP01FNPSZLS0tLkdDo1d+5cHTx4UB06dNCCBQvUs2dPv7fhsAI5jwQAANDEcJkMAAAYjTAEAACMRhgCAABGIwwBAACjEYYAAIDRCEMAAMBohCEAAGA0whAAADAaYQgAABiNMAQAAIxGGAIAAEYjDAEAAKP9H+qhdAnL6MmIAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "df1.plot(kind='barh')\n", "# Kaaviossa on 'whitegrid'-tyylin tuoma taustaviivoitus; vaakaviivoitus on tässä tarpeeton.\n", "# 1e6 kertoo asteikon lukujen olevan miljoonia.\n", "# Selitteen (Myynti 2017) voisi korvata otsikolla." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkMAAAHBCAYAAABqqb/VAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjYsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvq6yFwwAAAAlwSFlzAAAPYQAAD2EBqD+naQAAMGZJREFUeJzt3XlYVOXfx/EPDCComZq4pGaFiaEkKIqmZaLlgntWphFmV+kvTbP8paWPuRb2+6UlmUuWS2mShluGW0b2hKJmmGllLrnvmgtKwMx5/vBhckIQXBjkfr+ui+tyzrnnzPd808Onc98z42FZliUAAABDebq7AAAAAHciDAEAAKMRhgAAgNEIQwAAwGiEIQAAYDTCEAAAMBphCAAAGI0wBAAAjEYYAlCo8bmwAG40whBQRERFRSkwMFBdu3bNccyAAQMUGBiowYMHF2BleRcVFaWoqCjn43nz5mns2LFurKjw2bdvn1566SU1adJE9erVU9euXbV27dps46ZPn64WLVooODhYHTp00KpVq3I85qFDhxQWFqbk5GSX7YGBgTn+XPrfCbjZebm7AADXj6enp1JSUnTo0CFVqlTJZd+FCxeUmJjonsLy6I033nB5PGnSJDVo0MBN1RQ+f/75p5566imVKlVKr7/+ukqWLKn58+erZ8+emjlzprNX06ZN07hx49SnTx/Vrl1bX3zxhfr166eZM2eqfv36Lsc8cOCAnn32WZ09ezbb68XFxWXbtmLFCn300Ue5hm7gZkMYAoqQoKAg7dixQ8uWLdMzzzzjsm/16tUqVqyYbrnlFjdVd2XVq1d3dwmF2oIFC3TixAl9/vnnqlChgiSpSZMm6tChgz766CM1aNBAaWlpmjJlinr06KE+ffpIkh588EF17dpVEydO1IwZMyRJDodDCxYs0Ntvv53j64WEhLg8PnjwoD7//HN1795dkZGRN+QcAXdgmgwoQooXL66mTZsqISEh276vvvpKrVq1kpfX3/8P1K9fPzVt2lQOh8Nl7LBhw9S8eXMlJiYqMDBQ//u//+uyPyUlRYGBgVq/fr2Sk5MVGBiotWvXqmfPnqpTp47uv/9+jR07VpmZmc7nBAYGavbs2RoyZIgaNGig0NBQ9evXT8ePH3eOuXSaLCIiQgcOHNCCBQsUGBio/fv3ZzunyZMnq1atWjp58qTL9jlz5igoKEjHjh1TfHz8ZZ8fERHhMl34119/aeLEiWrVqpWCg4P1yCOPaOrUqS69iYqK0pAhQzR16lQ99NBDCg4OVteuXbV582bnmNjYWD388MNKTExUu3btVLt2bbVs2VILFixwef1ff/1Vffv2VcOGDVWrVi098MADGj16tNLS0rKdZ5YKFSqoR48eziAkXbwbeMcdd2jv3r2SpM2bN+vMmTN65JFHnGM8PDz08MMPa/369c7j//bbbxo+fLg6duyYayC6VExMjHx9ffXyyy/naTxwsyAMAUVMmzZttHnzZh08eNC57dy5c1qzZo3atm3rMrZLly46fPiwy1qR9PR0JSQkqFOnTnrggQdUoUIFLVq0yOV5CxYsUNWqVV2mXAYOHKh69epp8uTJateunT7++GPNnz/f5Xnjx4+Xw+HQuHHj9OqrryoxMVFvvvnmZc/j/fffl7+/v5o2baq4uDiVL18+25j27dvLbrdrxYoVLtu//PJLNWrUSP7+/lfo1kWWZal3796aNm2aunTposmTJ6tVq1Z69913s03dLV++XF9//bWGDh2qcePG6fjx4+rXr5/sdrtzzLFjxzRy5Eg9/fTTmjp1qqpUqaLBgwdr586dkqSjR4+qe/fuunDhgmJiYvThhx+qdevW+uSTT5x3bi6nTZs2GjhwoMu2P//8U+vXr9c999wjSc7XuPPOO13GVatWTXa73RmaKlWqpJUrV+q1116Tr6/vFXu0adMmLV++XC+//LJKlix5xfHAzYRpMqCIeeihh1S8eHEtW7ZMPXv2lCStXLlSZcuWVb169VzGNmnSRBUrVtTChQvVqFEjSdKqVat09uxZderUSTabTR07dtQnn3yi1NRUlShRwhmWoqOj5eHh4TzWY4895pyWadSokVatWqXExESXtSU1atTQW2+95Xz8008/admyZZc9j6CgIPn4+Khs2bLZpmuy3H777apfv76WLl3qfJ2DBw9q06ZNeb7bIUlr1qxRUlKS/vOf/6h9+/aSpMaNG8vX11fvvfeeoqOjnVN4mZmZ+uijj5yBIDU1VYMGDdIvv/yi2rVrS7q4PmvMmDHOnt55551q1qyZvv32WwUEBGj79u2699579d577zmPc//992vt2rXasGGDevfunae67Xa7hgwZovPnz+u5556TJOfan38GlhIlSki6GIwlqXTp0nnujyR99NFHqly5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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Selite (legend) piiloon ja pylväiden paksuuden määritys (width).\n", "(df1/1000000).plot(kind='barh', legend=False, width=0.7)\n", "\n", "plt.title('Myynnit vuonna 2017') # Otsikko.\n", "plt.xlabel('Miljoonaa euroa') # Otsikko x-akselille.\n", "plt.grid(axis='y') # Vaakasuuntaisen taustaviivoituksen poisto." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Myynti 2017Myynti 2016
Helsinki13218471203434
Turku852669923450
Tampere10321991023563
Oulu568230542399
\n", "
" ], "text/plain": [ " Myynti 2017 Myynti 2016\n", "Helsinki 1321847 1203434\n", "Turku 852669 923450\n", "Tampere 1032199 1023563\n", "Oulu 568230 542399" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df2 = pd.DataFrame({'Myynti 2017':[1321847, 852669, 1032199, 568230],\n", " 'Myynti 2016':[1203434, 923450, 1023563, 542399]},\n", " index=['Helsinki', 'Turku', 'Tampere', 'Oulu'])\n", "df2" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjIAAAGbCAYAAADeN3riAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjYsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvq6yFwwAAAAlwSFlzAAAPYQAAD2EBqD+naQAAMzNJREFUeJzt3XtcVPW+//E3DJgDSpagqBszSTGLagRFt7m95bGLqHnfmWF20QhFK1Nrb1PLW7az43VXlmSZWqYJpXnSrDwPTamwzArFvKQUipLGbQPDnD/8Ob8mRFnKXJa8no8HjwfzXd9Z38/Md2Des9aatfwcDodDAAAAJuTv7QIAAAAuFkEGAACYFkEGAACYFkEGAACYFkEGAACYFkEGAACYFkEGAACYFkEGAACYVoC3C3C38vJylZWVyd/fX35+ft4uBwAAVIHD4VB5ebkCAgLk71/5dpfLPsiUlZVp9+7d3i4DAABchOjoaNWqVavS5Zd9kDmb4qKjo2WxWLxcDQAAqAq73a7du3efd2uMVAOCzNndSRaLhSADAIDJXOiwEA72BQAApkWQAQAApkWQAQAApnXZHyMDwHscDofKyspkt9u9XQoAH2OxWBQQEHDJp0YhyABwi5KSEv3yyy8qLCz0dikAfFRQUJAaNWp03q9XXwhBBkC1Ky8v14EDB2SxWNS4cWPVqlWLE1ICcHI4HCopKdHx48d14MABtWjR4oJfs64MQQZAtSspKVF5ebkiIiIUFBTk7XIA+CCr1arAwEAdOnRIJSUlql279kWth4N9AbjNxX7CAlAzVMf/CP7LAAAA0yLIAPAYe7njsh6vuhw6dMjbJfiWcg9/683T41WTmvq64RgZAB5j8fdT8soMZR3Ld/tY1zWoo/8eYjN0n6ioKEnShg0b1Lx5c5dlS5cu1axZs5SUlKTRo0dXW51/Nnv2bOXl5WnWrFmSJJvNpldffVWxsbEV+h45ckSzZs3Sl19+KYfDoZiYGE2aNEkRERGSpAMHDmjKlCn69ttvFRwcrHvvvVejRo2qsJ6NGzfq+eef1+bNm51tNpvrc1deXq7i4mL961//Uq9evarzIV+Yv0V670Epd6/7xwptKfVfYuguvG42u7S//fbbWrp0qXJzc/WXv/xFjz32mLp27eqGR30GQQaAR2Udy9ee7NPeLqNSV111ldauXavHH3/cpX3NmjWqU6eO28fPy8tzuZ2RkVFp30cffVQ33nijPvnkEzkcDk2fPl2JiYlKS0tTaWmpRo0apR49eujVV19VVlaWRo4cqWuuuUZ33HGHJKm0tFQpKSl66aWX1LBhw/OO++STT+rEiRO6/fbbq+mRGpS7V/rlG++MXQW8bs5Yu3atFi5cqMWLFys6OloffvihRo8erc2bN1foW13YtQQAfxAfH69169apvLzc2fbtt9+qpKRErVu3liTl5OSodevW+vrrr519cnNzdcMNN+irr76qdNnhw4c1ceJETZ48WaNGjZLNZlP37t21bNkySdLChQuVlpamtLQ09e7dW9KZT/s7duyoUOepU6cUGhqq5ORkBQUFKTg4WPfdd5/27t2rU6dOKT09XceOHdOYMWNUq1YttW7dWsOGDdPy5cud6xgxYoR27Nihhx566LzPyZo1a7Rt2za98MILCgjg8++58Lo54/XXX1dycrJuuukm+fn5qVevXlq1apVbwxxBBgD+oEuXLiotLdW2bducbatXr9aAAQOctxs2bKiOHTtq3bp1zrbU1FTZbDbFxMRUuqxp06aSzgSDYcOGKT09XQ899JBmzZqlnJwcPfroo4qPj1d8fLxSU1PPW+eVV16p1157TQ0aNHC2bdy4UU2aNNGVV16pffv26dprr3U50dh1112nH3/80Xl7zpw5WrJkibOuc/n99981e/ZsPfXUU7rqqqvOW1NNxutGKioq0r59++Tv76+hQ4cqLi5OQ4YMUVFRkYKDg6v6VBpGkHEzbx5saNYDHQFvCggIUHx8vNauXStJKi4u1saNG9W3b1+Xfv3799dHH32kkpISSWc2qffv3/+CyyQpLi5OHTt2VEBAgPr37y+73a7Dhw9fUt0rVqzQ66+/rueee06SVFBQIKvV6tLHarW6nGk5PDz8gutdtmyZmjRp4tytgHPjdSOdPn1aDodDr7/+uqZMmaKtW7eqV69eeuihh3TkyJFLqvN82EboZp48uPGPLuZARwBn9OvXT4MHD1Z+fr42bdqkNm3aKCwszKVPt27d9Mwzz+izzz5T48aNdfToUfXs2fOCyyS5rCswMFCSXHZJGFFSUqKZM2dq/fr1evnll9W+fXtJZ079XlRU5NLX6Cdjh8Oh1atXa8yYMZyZuQpq+uvmbE3333+/WrRoIUm69957tWLFCn322WcaOnTo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o0eP1qlTp3TNNddo4cKFuv766y+1bAAAcBkwFGTef/99l9ulpaXavHmz4WARGhqqefPmnXNZRkbG/y8uIECjR4/W6NGjDa0fAADUDIaCzJ/Dh8ViUWRkpJ555plqLQoAAKAqDAWZTz75xF11AAAAGGboEgXSmW8qpaSkaMaMGcrPz9eWLVvcURcAAMAFGQoye/bs0e23366PPvpI7777rvLy8pScnKz33nvPXfUBAABUylCQmTlzpiZOnKiVK1cqICBAERERWrhwoV577TV31QcAAFApQ0Fm7969zpPfnT3Db6dOnQx//RoAAKA6GAoyV199tX766SeXtp9++sl5hl4AAABPMhRk7rnnHo0cOVLvvPOOysrKtH79eiUnJ2vw4MHuqg8AAKBShr5+fd9998liseiNN95QeXm55s2bp0GDBmn48OFuKg8AAKByhi9RMHToUA0dOtQdtQAAABhi+DwyAAAAvoIgAwAATIsgAwAATIsgAwAATMvQwb55eXl68803lZOTo/LycklSaWmp9u7dq9TUVLcUCAAAUBlDQWbSpEk6ePCgrr76ahUUFKhRo0b63//9X77FBAAAvMJQkElPT9f69euVk5OjV155RQsWLNC6dev0wQcfuKs+AACAShk6RiYgIEANGzZUs2bNlJmZKUm666679P3337ulOAAAgPMxFGSaNGmi7777TiEhISooKNDJkydVWFio4uJid9UHAABQKUO7lu655x4NGzZMH374oXr16qWEhAQFBASobdu27qoPAACgUoaCzIABA9SyZUuFhoZq/PjxWrp0qQoKCjRixAh31QcAAFApw9dauummm5y/P/zww5KkkydPVl9FAAAAVWQoyHzzzTeaM2dOhfPInDx5Ut99951bCgQAAKiMoYN9n332WYWFhenWW2/Vtddeq3vvvVcWi0WPP/64u+oDAAColKEgs2/fPs2cOVNDhw6V3W7X/fffr7lz5yotLc1d9QEAAFTKUJAJCQlR7dq1FRERoX379kmSbrnlFh09etQtxQEAAJyPoSDTvHlzrVixQldccYWCgoL0ww8/aP/+/fLz83NXfQAAAJUydLBvcnKyHnnkEXXs2FEPPPCABg0aJIvFor///e/uqg8AAKBShoJMmzZt9PnnnyswMFCDBw/W9ddfr99//10dO3Z0V30AAACVMnweGT8/Px07dkzl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+HEtW7bM3Q+hxvv999/l7++v2rVry+Fw6PPPP9f777/v8uZj1NKlS3Xo0CEVFRVp5syZat68uWw2m+Lj47Vr1y6lpqaqrKxMx44d06hRozRr1qxzrqdhw4bq0qWLpk+frry8PJWWlmrx4sUaMGCATp8+fdH14dwCAwM1c+ZMvfXWW5o7d65ycnJUXl6urKwsJSUl6ddff9WkSZMUGRmp3NxcffHFF3I4HFq3bp32799/znVGRkYqMzNT+/btU1lZmZYsWaLCwkIPPzLvIcj4sDp16iglJUU7duzQ3/72N912223y9/fX4sWLK/S977771KVLFw0ZMkS33HKL5syZo7lz5yo8PPyix7/66qs1efJkzZs3Tz/++OOlPBRcglq1aunZZ5/Vhg0b1KZNG82aNavCboDz6dChgwYOHKgJEyaosLBQTzzxhAoKCtSxY0fdd9991fLVfJzf3Xffrb/+9a+666671L59ey1evFgJCQk6cODAOb+FWBUxMTF69NFH1bFjRx0/flyvvPKK/P391aRJEy1ZskSrVq3SX//6V/Xp00fNmzevNMhI0vPPP6+QkBD17dtX7du312effaYlS5a4bKFB9enUqZNWrlypw4cPq3///mrTpo1GjRqlpk2bKjU1VY0aNVJ0dLQeeeQRTZw4Ue3atdMXX3yhnj17nnN9t912m+Lj4zV8+HB16tRJeXl5iomJ8fCj8h6ufg0AJtOtWzclJSWpX79+3i4F8Dq2yAAAANMiyAAAANNi1xIAADAttsgAAADTIsgAAADTIsgAAADTIsgAAADTIsgAAADTIsgAAADTIsgAAADTIsgAAADTIsgAAADT+j8F2ORPgPj/BgAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "(df2/1000000).plot(kind='bar', rot=0) # Luokka-akselin nimiöiden asento (rot=0).\n", "\n", "plt.ylabel('Miljoonaa euroa') # y-akselin otsikko.\n", "plt.grid(axis='x') # Pystysuuntaisen taustaviivoituksen poisto.\n", "plt.legend(ncol=2) # Selitteeseen kaksi selitettä vierekkäin." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjIAAAHBCAYAAABzIlFzAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjYsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvq6yFwwAAAAlwSFlzAAAPYQAAD2EBqD+naQAAScBJREFUeJzt3XdclfX///EnHECGmgMVNTQn5krEGU7MHImSYvZJDbfmtrTUPh9zj2yYI8tcOTKSMHGg5rY0RbMc5cDclgvTWIHA7w9/nK8nQM9R1kWP++3mLc/7ep/rel3nHZ4n72vZpaSkpAgAAMCA7HO6AAAAgEdFkAEAAIZFkAEAAIZFkAEAAIZFkAEAAIZFkAEAAIZFkAEAAIZFkAEAAIZFkAEMjntaAvg3I8gAD9C9e3d5eXnp5ZdfzrDPiBEj5OXlpdGjR2djZfesXr1aM2bMML8ODQ2Vl5eXLl26lO21PIru3bure/fu2bKtlJQUBQcHy9/fX97e3mrRooWmTJmi6Ohoi36//fab+vXrJx8fH9WvX19jx47VnTt3MlzvtGnTMtyH0NBQ+fv7q0aNGvLz89PcuXOVlJSU4br2798vLy8v7d+//9F28h/r6tatm+rWrStfX18NHjxY58+ft+gTHR2tcePGydfXV7Vq1VLPnj0VGRmZ4Tq3bdsmLy+vdGvO6M/cuXMfe1+AB3HI6QKA3M7e3l4//fSTfv/9d5UsWdJiWVxcnHbu3JkzhUmaP3++6tWrZ37drFkzBQcHq3jx4jlWky3eeeedbNvWwoUL9eGHH6p3795q2LChzp8/r48++kinT5/WkiVLZGdnpzt37qhHjx4qXry43n33Xd28eVMzZ87UH3/8ocWLF6dZ54IFC7R06VKLMUi1cuVKTZw4Ub169dLYsWP1008/ad68eUpISNDrr7+ebo3VqlVTcHCwKlas+Fj7evjwYfXq1Ut+fn567733FBcXp/nz5+uVV17RunXrVKRIEUnSG2+8oSNHjmjUqFHKnz+/5s6dq6CgIG3YsEGFChWyWOe+ffs0cuTIDGv+p1mzZuno0aN64YUXHmtfgIchyAAPUbVqVUVGRmrTpk3q2bOnxbLt27crX758KlCgQA5VZ6lIkSLmLykjeNwvbGslJydrwYIF6tKli9544w1J0rPPPqtChQpp+PDhOnbsmGrUqKFVq1bpzp07+uabb8yfY4kSJdSvXz8dPHhQderUkSRdvHhR06dP144dO9Id+9jYWL3//vvq3bu33nzzTUlSw4YNdefOHe3duzfDIJM/f37VqlXrsff3008/Vfny5fXRRx/J3v7exHvt2rXVrFkzrVmzRr1799bhw4e1c+dOLViwQE2bNpUk1alTRy1atNAXX3yhgQMHSro3a/Ppp59q0aJFKlCggGJjYx9a89atW7Vv3z599NFHKleu3GPvD/AgHFoCHsLV1VVNmzZVeHh4mmUbN25U69at5eDwf78TDB06VE2bNlVycrJF33HjxqlFixbauXOnvLy89N1331ks/+mnn+Tl5aUDBw6Yp+v37dunXr166ZlnntGzzz6rGTNm6O7du5IkPz8/Xb58WWvWrDEfTnrYoaVevXopICAgTfvw4cPNvzmPHj1afn5+FssvXbokLy8vhYaGmtuuXbumMWPGqGnTpqpZs6YCAwO1bds2i/ft3btXXbp0kbe3t+rWrauBAwfqt99+My//56ElLy8vrVy5Um+//bbq1asnb29vDR06VDdu3DD3SUpK0oIFC9SuXTvVrFlTtWrV0ssvv6x9+/alu8/SvS/j9u3bq127dhbtqV+yFy9elCR999138vHxsQiDjRs3lpubm3bv3m1umzZtmi5cuKDPP/9cTz/9dJrtff/994qJiVG3bt0s2t966y2FhIRkWGd6h5a2bt2qV155Rd7e3qpevbpat26tFStWZLgOSapZs6aCgoLMIUaSihcvrvz58+vChQvmfXV1dZWvr6+5T5EiRVS3bl2LfQ0JCVFISIjGjRuXZn/SEx8fr8mTJ6tZs2Zq3br1Q/sDj4sgA1ihbdu2+vnnn3XlyhVzW3R0tHbv3p3myzEwMFB//PGHxZdRQkKCwsPD9eKLL6px48YqUaKE1q5da/G+NWvWyNPTU3Xr1jW3jRw5Uj4+Pvrkk0/k7++vxYsXm78I586dq2LFiqlp06ZWH07q0KGDfv31V4swERMTox07dqhDhw5Wfx43btxQYGCgDhw4oBEjRmjOnDkqXbq0Bg0apLCwMEn3wsFrr72matWqaf78+Zo8ebL5/JN/hrz7ffjhh0pOTtYHH3ygN998Uzt37tTUqVPNy9977z3NmzdPXbp00cKFCzVx4kTdunVLw4YNSzNbkKpgwYL63//+Jx8fH4v2LVu2SJIqVaokSTpz5kyaGQR7e3s9+eSTOnfunLlt+PDhCgsLsxir+/36668qUKCAoqKi1LVrV1WvXl2+vr6aO3fuA/f9n3bu3KlBgwapWrVq+vjjj82f86RJk/Tjjz9m+L6BAwcqMDDQou2HH37Q7du3VblyZfO+PvnkkxYhXJLKlCmjs2fPml/7+flp+/btDzxP7H5Lly7VtWvXNHbsWGt3E3gsHFoCrNCsWTO5urpq06ZN6tWrlyTp22+/VZEiRdJ8OTZq1EgeHh765ptv1LBhQ0n3fqv+66+/9OKLL8pkMikgIEDLly9XTEyM3NzczEEnKChIdnZ25nV17txZgwYNknTv0MTWrVu1c+dOvfzyy6pataqcnJxUpEgRqw9HtGzZUq6urtq4caMGDx5s3o+///5b/v7+Vn8eS5YsUVRUlMLDw+Xp6SlJatq0qXr06KF3331X7dq105EjRxQfH6/+/furRIkSkqSSJUtq27Ztio2NVf78+dNdd+XKlTVt2jTz6yNHjmjTpk3m19euXdOIESMsZnKcnZ01ZMgQnTx5Ut7e3lbtw48//qjPPvtMzz33nDnI3LlzR25ubmn6urm5WZwUnBoGMhIVFaWkpCT169dPQUFBGjJkiL7//nvNmzdPcXFxGjVqlFU1RkZGKiAgQG+//ba5zdvbW/Xr11dERIRq165t1XqioqL0v//9Tx4eHuYZub/++ivdMXBzc1NMTIz5dZkyZazahnQvsC9fvlxt27ZV2bJlrX4f8DiYkQGs4OzsLD8/P4vDSxs2bFDbtm0tgod07zf4F198UVu2bFFcXJyke7Mt9evXV+nSpSVJnTp1UlxcnL799ltJ94LOnTt30hz2+eeXsoeHR4azDtZwdXVVy5YttXHjRov9qFevXpoTmR/kwIED8vb2NoeYVO3bt9f169f122+/6ZlnnlG+fPkUGBioadOmae/evapSpYpGjBiRYYiRlCaUeXh4mD9HSXr//ffVo0cPRUVF6fDhwwoNDTXPAiUmJlpV/8GDB9WvXz+VKVNGU6ZMsVj2z/GU7l3xlF57RhITExUbG6u+ffuqf//+atCggd544w117txZn3/+eZorpTLSp08fzZgxQ7GxsTpx4oTCw8O1YMEC8zascfXqVQUFBenmzZuaM2eOOaglJydnuE+27Ov9Nm3apBs3bqhPnz6P9H7gURBkACu1adNGR44c0aVLl3Tr1i3t27cvwysyUoPKli1bdP36dX3//ffq2LGjeXnZsmVVt25dffPNN5Kkb775Rg0aNDAHnVTOzs4Wr+3t7R/7vjEBAQE6c+aMTpw4oaioKO3du9emw0qSdPv2bbm7u6dpT227c+eOnnzySa1YsULPPPOMvvrqK/Xs2VO+vr7mQ0cZcXFxsXj9z30+evSoAgMD1bBhQ/Xo0UMrV640nwtizWezYcMG9ezZU6VKldLSpUstrs7Jnz9/uiEjNjbWphO6U8NCs2bNLNqbNGmixMREnTlzxqr1REVFaciQIfLx8VHHjh01e/Zs86Xg1uzryZMn1aVLF129elULFy5UzZo1zcsKFCiQ7r7GxMQ88snrmzdvVqVKlVSlSpVHej/wKDi0BFipSZMmKlCggDZv3qwCBQroySefVPXq1dPt6+npqXr16ik8PFx//fWXXFxc9Pzzz1v06dSpk8aMGaOzZ8/q+++/tzickpUaNGigEiVKKDw8XCVKlJCDg4NatWplXm5nZ5fmXif/nAV64oknLE7ATXX9+nVJUuHChSXdO+l07ty5SkhI0KFDhxQcHKxPPvlEXl5eatu2rc21R0dHq0+fPvLy8tL69etVoUIF2dvba9euXdq8efND379w4UK99957qlu3rj7++OM0X9jlypUznwybKjk5WZcuXUozfg+SelglISHBoj11FiVfvnxWrWfkyJE6c+aMlixZotq1a8vJyUlxcXFavXr1Q9+7b98+DRo0SAUKFNCKFSvSHA4rV66cvvvuOyUnJ1ucFHzhwgVVqFDBqvrul5iYqO+//57ZGGQ7ZmQAKzk5OalFixbasmWLwsPDH3p/jMDAQO3du1dhYWFq06ZNmpmGVq1aydXVVePGjZOzs7NNX5Sp7v8CsuU97dq107Zt27Rp0ya1aNHC4lCPm5ubbt26pb///tvc9s8TS+vWravDhw+br/ZJFRYWpmLFiqls2bJaunSp/Pz8lJCQICcnJzVs2FCTJk2SJP3+++821y3du1ndn3/+qVdffVWVKlUy73/qVTYPmun58ssvNXPmTLVu3dp8KfE/+fr6KiIiQlFRUea2PXv2KCYmxuLqnodp0qSJ7OzstGHDBov27du3q1ChQlYHhUOHDqlVq1Zq0KCBnJycJFm3r7/88otee+01lSpVSl999VW65/Q0atRIMTEx2rNnj7ktKipKERERatSokVX13e/UqVOKi4tLc84YkNWYkQFs0LZtW/Xv31/29vb673//+8C+rVq10qRJk/Tzzz+ne9dfFxcXvfDCCwoODtZLL72U5jCSNQoWLKhffvlFBw4csDhs8DABAQFatGiRTCaT5s+fb7GsefPmWr58ucaOHavOnTvr9OnTWrx4sUwmk7lPz549FRYWpp49e2rw4MEqXLiwvvnmG/3www+aOnWq7O3t1aBBA7333nsaNGiQunXrJpPJpC+//FJOTk5q3ry5zfsq3ZtFyJ8/vz755BM5ODjIwcFBmzdvNl/Jdf+5NPe7fv26pk2bptKlS6tbt2765ZdfLJaXKVNGRYoU0SuvvKIVK1aY9+vPP//UzJkz1aRJE6tPIpbuzch169ZNCxculIODg+rWrasdO3YoLCxM//vf/+To6GjVemrWrKl169apWrVq8vDw0OHDh/Xpp5/Kzs4uw32VpLffflt3797V4MGD9fvvv1sExyJFiqhMmTKqW7eu6tWrp1GjRmnUqFEqVKiQ5syZowIFClh9hdL9Tp06JUmPNJsDPA6CDGCDZ599VgULFlTJkiUf+g92vnz51LBhQ508eTLDq0uaN2+u4OBgi/NnbNGrVy9NnTpVvXv31pIlS6x+X+XKlfX000/r6tWraWYafH199dZbb2n58uXasmWLqlWrprlz51p8uRUrVkyrVq3S+++/rylTpigxMVFVqlTRxx9/rBYtWkiSqlSpok8++UTz5s3T66+/rqSkJFWvXl2LFy9W+fLlH2l/CxQooI8//ljvvvuuhg0bJjc3Nz399NNasWKF+vbtq4MHD6a5B44k7dq1S/Hx8bp8+bK6du2aZvm0adPUsWNHFSlSRMuWLdPUqVM1cuRIubm5qXXr1uab2tli7Nix8vDwUHBwsBYsWKAnn3xSkydPVufOna1ex/Tp0zVp0iTzTNZTTz2lCRMmKCwsTAcPHkz3PRcvXjQHtWHDhqVZ/uKLL2r69OmS7l3CP336dL377rtKTk5W7dq1NWvWLD3xxBO27q75UOOjvBd4HHYpPHEOyBLx8fFq2rSp+vfvb75k+5/Gjx+vQ4cOad26ddlcHXKj3bt3q2/fvlq9erVNM2zAvxkzMkAmS73b7t69eyUp3d/Aly1bpt9++03BwcHZdpIvcrdvv/1W69atM9+AD4B1CDJAJrO3t9fy5cvl6uqqDz74IN2TSg8ePKg9e/aoe/fu6T4yAP8uCQkJGj9+vJKTk/X6668b6nlZQE7j0BIAADAsLr8GAACGRZABAACGRZABAACGledP9k1OTtbdu3dlb2//yA9CAwAA2SslJUXJyclycHB44F3M83yQuXv3ro4ePZrTZQAAgEdQo0YN8yM60pPng0xqiqtRo4bFLdYBAEDulZSUpKNHjz70mXJ5PsikHk4ymUwEGQAADOZhp4Vwsi8AADAsggwAADAsggwAADCsPH+ODADAWJKTk5WQkJDTZSCLOTo6Zsq5qwQZAECukZCQoLNnzyo5OTmnS0E2KFSokDw8PB7rPm8EGQBArpCSkqLff/9dJpNJnp6eD73sFsaVkpKi2NhYXbt2TZJUsmTJR14XQQYAkCvcvXtXsbGxKlWqlFxdXXO6HGQxFxcXSdK1a9dUvHjxRz7MRNwFAOQKSUlJkvTAu7gib0kNrImJiY+8DoIMACBX4bl4/x6ZMdYEGQAAYFgEGQBA7paclLe3l0nOnz+f0yXkCE72BQDkbvYm6es+0o1TWb8t98pSp4U2vcXLy0uSFB4ervLly1ssW7JkiaZPn67BgwdryJAhmVbmP82YMUO3bt3S9OnTJUne3t767LPPVKdOnTR9L126pOnTp+vgwYNKSUmRj4+PxowZI09PT0nS2bNnNX78eB05ckRubm7q1q2bBgwYkGY9mzdv1rvvvqtt27ZZtH/xxRdasmSJbty4oSeffFKvv/66mjdvngV7fQ9BBgCQ+904Jf3+c05XkaHChQtrzZo1euONNyzaQ0NDlT9//izf/q1btyxeHz58OMO+gwYNUvXq1bV9+3alpKRoypQpGjhwoNatW6fExEQNGDBALVu21GeffabIyEj1799fZcuWVZs2bSTdOzF36dKlmjVrlkqUKGGx7jVr1mjevHmaP3++atSooQ0bNmjIkCHatm1bmr6ZhUNLAAA8Jn9/f61du9biRn5HjhxRQkKCqlatKkm6evWqqlatqh9//NHc58aNG6pWrZoOHTqU4bILFy5o9OjRGjdunAYMGCBvb2+1aNFCy5YtkyTNmzdP69at07p169S+fXtJ92aJ9u/fn6bO27dvy93dXcOGDZOrq6vc3Nz06quv6tSpU7p9+7YiIiJ07do1DR06VE5OTqpataq6d++ulStXmtfRq1cv7d+/X3379k2z/sWLF2vYsGGqWbOm7Ozs1K5dOwUHB2dpmMuRIHPixAn17NlT9erVk6+vr958801FRUWl27dPnz6qUaOGvL29zX92796dzRUDAJCxZs2aKTExUXv37jW3hYSEKDAw0Py6RIkS8vX11dq1a81tYWFh8vb2lo+PT4bLypQpI+ne7E737t0VERGhvn37avr06bp69aoGDRokf39/+fv7Kyws7IF1PvHEE1q0aJGKFy9ubtu8ebNKly6tJ554QqdPn1a5cuUsLoGvWLGiTpw4YX49c+ZMLVy40FxXqri4OJ0+fVr29vbq2rWr6tevr5dffllxcXFyc3Oz9qO0WbYHmfj4ePXp00fe3t767rvvtH79ev35558aO3Zsuv2PHTumRYsW6fDhw+Y/TZo0yeaqH4FBTxbLlfgsAeRyDg4O8vf315o1ayTd+67bvHmzAgICLPp16tRJmzZtMj9Las2aNerUqdNDl0lS/fr15evrKwcHB3Xq1ElJSUm6cOHCY9W9atUqLV68WJMnT5YkxcTEmG9Ul8rFxUWxsbHm1x4eHumu686dO0pJSdHixYs1fvx47dmzR+3atVPfvn116dKlx6rzQbL9HJkrV66oSpUqGjRokEwmk5ycnNSlSxe9+eabafpevHhRt2/fNk/LGUp2npyWlz3CiXcAkBM6duyoLl26KDo6Wlu3blXt2rVVrFgxiz5+fn565513tGvXLpUqVUqXL19Wq1atHrpMksW6HB0dJemRn0mVkJCgadOmaePGjfr000/VoEEDSfduUBcXF2fR19oZldSaevbsqUqVKkmSunXrplWrVmnXrl3q2rXrI9X6MNkeZMqXL6+FCy2/mDZv3qxq1aql6Xv06FG5ublpxIgROnr0qNzd3dWjRw+LqTprpd4xMruYTKZcf3KakWT3+AHIfklJSUpJSTH/SZUTN8i7f/vW9vfy8lL58uW1ceNGrV+/XkFBQRb7k5KSIkdHR/n7+2vDhg0qVaqU2rRpIxcXl4cuS63nn3X98/O6f/k/P8dUt27d0oABA5SYmKiQkBA9+eST5n4VK1bUuXPnlJiYKAeHexEhMjJSlSpVeui2CxcurKJFi+rvv/+26Hv/uKb3uaWkpCgpKSnNv/PW/rufo1ctpaSkaNasWdqxY4dWrFiRZnlCQoJq1aqlESNGqFKlStq/f7+GDBkiNzc389nT1jp69Ghmlf1QLi4uxpxFysVOnjyZ5rcEAHmPg4OD4uLizDMN9vb29w51uFfOngL+/3bi4+Ntmu34+++/FRsbq3bt2mnJkiX666+/VKdOHcXGxio5OVmJiYnmwzMvvPCC+vTpo0KFCmnixIkWh20yWpb6pX5/3/u3azKZFBUVZbE8ddn9EhMT1bNnTxUuXFjvv/++nJ2dLfrUqFFDhQoV0owZMzRw4ECdP39ey5Yt06BBg9KsKyEhwfzwx1QdO3bUvHnzVLVqVVWoUEGrV6/W1atX5evrm+b9qTUmJiZanINjqxwLMtHR0RozZoyOHz+uFStWmK/Dv19AQIDF8cVGjRopICBA4eHhNgeZGjVqPPIDqZDz0vv/A0DeEh8fr/Pnz8vFxUXOzs7m9pTkJNll4yHmlOQki+1bI1++fHJ1ddWLL76oDz/8UEFBQSpYsKCke2HM0dHR/FyhWrVqqUyZMoqNjdWzzz5rsZ6MlqV+f/3zYZqp2/X399frr7+uF154QTt27LBYdr8tW7boxIkTypcvn5577jmLZevXr1epUqW0ePFiTZw4Uc8//7xcXV316quv6uWXX06zz05OTrKzs7PYxogRI1S4cGGNGTNG165dU/ny5bVgwQI99dRT6X5uqZ9NxYoV03zmSUlJVk1C5EiQuXDhgvr27atSpUopJCRERYoUSbdfSEhImtmXhIQE5cuXz+ZtmkwmgoyBMXZA3mcymWRnZ2f+Y2aXvT//dva2be/kyZPmvxcpUkTHjh2zWJ7eEYfSpUubL1G2ZtmMGTMeuN2GDRtq37596S67X6tWrTJcluqpp57S4sWLH9hHundy8v0nI0v3xrB3797q3bv3Q98vyTzWj/Mdne1XLd2+fVtBQUGqXbu2Fi1alGGIke7N2kyaNEm//PKLkpOTtXPnTq1fv15dunTJxooBAMgcFy9e1Lfffqu9e/eqY8eOVi9DxrJ9RiY0NFRXrlxReHi4Nm3aZLHs8OHD8vb21oQJE9S+fXsFBQUpNjZWgwcP1s2bN+Xp6akZM2ake8tlAAByu7lz52rbtm0aO3as3N3drV6GjNml2HpqtsEkJSXpp59+Uq1atbL/8MSnTbhq6XGVfEbqzw0QgX+D+Ph4nT17VuXKlbP5HBUY04PG3Nrvbx5RAAAADIsgAwAADIsgAwAADIsgAwAADIsgAwAADIsgAwDI1ZKSs/fi2uzeXmY5f/58TpeQI3L0WUsAADyMyd5Ow748rMhr0Vm+rYrF8+ujl71tek/qI1TCw8NVvnx5i2VLlizR9OnTNXjwYA0ZMiTT6vynGTNm6NatW5o+fbokydvbW5999lm69127dOmSpk+froMHDyolJUU+Pj4aM2aMPD09JUlnz57V+PHjdeTIEbm5ualbt24aMGBAmvVs3rxZ7777rrZt22Zu8/a2/OySk5MVHx+v999/X+3atcvMXTYjyAAAcr3Ia9E6fuVOTpeRocKFC2vNmjV64403LNpDQ0OVP3/+LN/+rVu3LF4fPnw4w76DBg1S9erVtX37dqWkpGjKlCkaOHCg1q1bp8TERA0YMEAtW7bUZ599psjISPXv319ly5Y1Py4oMTFRS5cu1axZs1SiRIkHbvfNN9/UzZs31bp160za07Q4tAQAwGPy9/fX2rVrLZ6YfeTIESUkJKhq1aqSpKtXr6pq1ar68ccfzX1u3LihatWq6dChQxkuu3DhgkaPHq1x48ZpwIAB8vb2VosWLbRs2TJJ0rx587Ru3TqtW7dO7du3l3Rvlmj//v1p6rx9+7bc3d01bNgwubq6ys3NTa+++qpOnTql27dvKyIiQteuXdPQoUPl5OSkqlWrqnv37lq5cqV5Hb169dL+/fvVt2/fB34moaGh2rt3r9577z05OGTdvAlBBgCAx9SsWTMlJiZq79695raQkBAFBgaaX5coUUK+vr5au3atuS0sLEze3t7y8fHJcFmZMmUk3QsG3bt3V0REhPr27avp06fr6tWrGjRokPz9/eXv76+wsLAH1vnEE09o0aJFKl68uLlt8+bNKl26tJ544gmdPn1a5cqVk5OTk3l5xYoVdeLECfPrmTNnauHChea60vPXX39pxowZGjt2rAoXLvzAmh4XQQYAgMfk4OAgf39/rVmzRtK9W+9v3rxZAQEBFv06deqkTZs2KSEhQZK0Zs0a8xOkH7RMkurXry9fX185ODioU6dOSkpK0oULFx6r7lWrVmnx4sWaPHmyJCkmJkYuLi4WfVxcXBQbG2t+7eHh8dD1Llu2TKVLlzYfjspKBBkAADJBx44dtXXrVkVHR2vTpk2qXbu2ihUrZtHHz89PkrRr1y4dP35cly9fVqtWrR66TJLFuhwdHSXJ4lCWLRISEjRhwgTNmjVLn376qZ599llJkqurq+Li4iz6xsXFyc3Nzep1p6SkKCQkRN27d5ednd0j1WcLTvYFACATVKlSReXLl1d4eLjWrVunoKCgNH2cnJzk7++vDRs2qFSpUmrTpo1cXV0fuiwzRUVF6bXXXlNCQoJCQkLMVytJUqVKlXTu3DndvXvXfF5LZGSkKlWqZPX6jx49muUn+N6PGRkAADJJx44dtXTpUp09e1ZNmzZNt09gYKD27Nmjb7/9Vh07drR62YM4OTnpr7/+emi/xMRE9enTR/nz59eqVassQox07/BV4cKF9f777+vvv//WiRMntHz5cotzfR7m0KFDqlatWppDVFmFGRkAQK5XsXjWX8KcGdtp166dZsyYoaCgoAyv1KlSpYrKlCmj2NhY+fj4WL3sQdq2basRI0aoWbNm2rlzZ4b9duzYoePHjytfvnxq2LChxbLUmaDFixdr4sSJ8vX1laurq7p3725TqLp48WKay7Kzkl1KSooxb2FopaSkJP3000+qVauWTCZT9m780ybS7z9n7zbzmpLPSP1353QVALJBfHy8zp49q3LlysnZ2dncnpScIpN91p9rkZ3bGzx4sGrWrKl+/frZtCyvyWjMJeu/vzm0BADI1bIzxGT19i5evKhvv/1We/fuTTPL8aBlyBiHlgAAyCZz587Vtm3bNHbsWLm7u1u9DBkjyAAAkE1mzJjxSMuQMQ4tAQAAwyLIAAAAwyLIAABylTx+MS3ukxljTZABAOQKqZfYpj5rCHlf6jOcUh+58Cg42RcAkCs4ODjI1dVV169fl6Ojo+zt+V07r0pJSVFsbKyuXbumQoUKPdZ93ggyAIBcwc7OTiVLltTZs2d1/vz5nC4H2aBQoUJWPU37QQgyAIBcw8nJSZUqVeLw0r+Ao6NjptxxnyADAMhV7O3t09yuHsgIByABAIBhEWQAAIBhEWQAAIBhEWQAAIBhEWQAAIBhEWQAAIBhEWQAAIBhEWQAAIBhEWQAAIBhEWQAAIBhEWQAAIBhEWQAAIBhEWQAAIBhEWQAAIBhEWQAAIBhEWQAAIBhEWQAAIBhEWQAAIBhEWQAAIBhEWQAAIBhEWQAAIBhEWQAAIBhEWQAAIBhEWQAAIBhEWQAAIBhEWQAAIBhEWQAAIBhEWQAAIBhEWQAAIBhEWQAIDkppyvIO/gskc0ccroAAMhx9ibp6z7SjVM5XYmxuVeWOi3M6SrwL0OQAQDpXoj5/eecrgKAjTi0BAAADCtHgsyJEyfUs2dP1atXT76+vnrzzTcVFRWVbt9du3bJ399ftWrVUps2bbRjx45srhYAAORW2R5k4uPj1adPH3l7e+u7777T+vXr9eeff2rs2LFp+p47d05DhgzRsGHDdPDgQQ0ZMkTDhw/X1atXs7tsAACQC2V7kLly5YqqVKmiQYMGycnJSYULF1aXLl0UERGRpu+aNWtUp04dPffcc3JwcFDbtm1Vt25dBQcHZ3fZAAAgF8r2k33Lly+vhQstz2rfvHmzqlWrlqZvZGSkKleubNFWsWJFnThxwubtJiVl7yWBJpMpW7eX12X3+OHfhZ/XzMXPKzKDtf8f5ehVSykpKZo1a5Z27NihFStWpFkeExMjFxcXizZnZ2fFxsbavK2jR48+cp22cnFxUdWqVbNte/8GJ0+eVFxcXE6XgTyIn9fMx88rslOOBZno6GiNGTNGx48f14oVK+Tl5ZWmj4uLi+Lj4y3a4uPj5ebmZvP2atSowW9dBpbe/x8Acid+XpEZkpKSrJqEyJEgc+HCBfXt21elSpVSSEiIihQpkm6/ypUr6/jx4xZtkZGRql69us3bNJlMBBkDY+wA4+DnFdkp20/2vX37toKCglS7dm0tWrQowxAjSe3bt9eBAwe0ceNG3b17Vxs3btSBAwfUoUOHbKwYAADkVtkeZEJDQ3XlyhWFh4fLx8dH3t7e5j+S5O3trbCwMElShQoVNG/ePH366aeqW7euPv74Y82ZM0flypXL7rIBAEAulO2Hlnr27KmePXtmuPzw4cMWrxs3bqzGjRtndVkAAMCAeEQBAAAwLIIMAAAwLIIMAAAwLIIMAAAwLIIMAAAwLIIMAAAwLIIMAAAwLIIMAAAwLIIMAAAwLIIMAAAwLIIMAAAwLIIMAAAwLIIMAAAwLIIMAAAwLIIMAAAwLIIMAAAwLIIMAAAwLIIMAAAwLIIMAAAwLIIMAAAwLIIMAAAwLIIMAAAwLIIMAAAwLIIMAAAwLIIMAAAwLIIMYIvkpJyuIO/gswSQCRxyugDAUOxN0td9pBuncroSY3OvLHVamNNVAMgDCDKArW6ckn7/OaerAACIQ0sAAMDACDIAAMCwCDIAAMCwCDIAAMCwCDIAAMCwCDIAAMCwCDIAAMCwCDIAAMCwCDIAAMCwCDIAAMCwCDIAAMCwCDIAAMCwbH5oZFxcnG7fvq3k5GRJUmJiok6dOqWWLVtmenEAAAAPYlOQ+frrrzVp0iT9/fffFu1FixYlyAAAgGxnU5D55JNPNHz4cLm5uSkiIkJBQUGaOXOmfH19s6o+AACADNl0jsz169cVFBSkhg0b6sKFC6pWrZqmTp2q1atXZ1V9AAAAGbIpyBQtWlSJiYkqWbKkzp49K0kqVaqUbt68mSXFAQAAPIhNQaZmzZoaN26c4uPj9dRTT2nVqlVas2aNChUqlEXlAQAAZMymc2TGjBmj//73v4qJidGoUaM0YMAAxcfHa9q0aVlVHwAAQIZsCjLFixfXggULzH//4YcflJiYKBcXlywpDgAA4EFsvo/M1q1bFRwcrMuXL6tYsWIKDAyUv79/VtQGAADwQDadI7Nu3TqNHj1alStXVvfu3VW1alWNHz+eq5YAAECOsGlG5rPPPtPcuXPVoEEDc1vTpk01ceJEde7cOdOLAwAAeBCbZmSuXLmi+vXrW7TVq1dPf/zxR6YWBQAAYA2bgoyHh4ciIiIs2iIiIlSqVKlMLQoAAMAaNh1aCgoK0qBBg9SlSxd5enrqwoULCg4O1pgxY7KqPgAAgAzZFGQ6d+4sk8mk0NBQbd26VaVLl9bkyZPVunXrrKoPAAAgQzYFmUmTJmnEiBHq2LFjVtUDAABgNZsvv+bmdwAAILewaUamU6dOmjBhgl588UUVL15cdnZ25mWc8AsAALKbTUFmyZIlkqSvvvrKHGJSUlJkZ2enX3/9NfOrAwAAeACbgsy2bdsydeNRUVHq0qWLJk+enOb+NKn69Omj/fv3y8Hh/0r96KOP1KRJk0ytBQAAGI9NQaZ06dKZtuFDhw5p9OjRunDhwgP7HTt2TIsWLVK9evUybdsAACBvsCnIVKlSxeK8mPvZcmhpzZo1mj17tkaNGqURI0Zk2O/ixYu6ffu2qlatakuZAADgX8KmILNs2TKL11FRUVq+fLk6dOhg00YbNWokf39/OTg4PDDIHD16VG5ubhoxYoSOHj0qd3d39ejRQ4GBgTZtDwAA5E02BZn0Du/4+PioR48eeumll6xeT7Fixazql5CQoFq1amnEiBGqVKmS9u/fryFDhsjNzU1t2rSxenuSlJSUZFP/x2UymbJ1e3lddo9fRhjXzMW45k25ZVxhbNb+f2RTkElPwYIFdfXq1cddTboCAgIUEBBgft2oUSMFBAQoPDzc5iBz9OjRTK4uYy4uLhwOy2QnT55UXFxcjtbAuGY+xjVvyg3jin8Pm4LMN998Y/E6MTFR27Zt09NPP52ZNZmFhISkmX1JSEhQvnz5bF5XjRo1+K3LwLy8vHK6BGQBxjVvYlyRGZKSkqyahLApyMyePdvitclkUoUKFfTOO+/YVp2VoqOj9cEHH6hs2bKqUqWKdu/erfXr12vRokU2r8tkMhFkDIyxy5sY17yJcUV2sinIbN++PavqMPP29taECRPUvn17BQUFKTY2VoMHD9bNmzfl6empGTNmqE6dOlleBwAAyP1sPkcmKipKYWFhunLlioYOHaqIiAg1b978kQs4efKkxevDhw+b/25nZ6eBAwdq4MCBj7x+AACQd9n00Mjjx4+rdevW2rRpk1avXq1bt25p2LBh+vrrr7OqPgAAgAzZFGSmTZum0aNH68svv5SDg4M8PT01b968RzpnBQAA4HHZFGROnTplvvld6h1+GzdunGWXXwMAADyITUGmSJEi+u233yzafvvtN7m7u2dqUQAAANawKci88sor6t+/v7766ivdvXtXGzdu1LBhw9SlS5esqg8AACBDNl219Oqrr8pkMunzzz9XcnKyZs+erZdeekk9evTIovIAAAAyZvPl1127dlXXrl2zohYAAACb2HRoCQAAIDchyAAAAMMiyAAAAMMiyAAAAMOy6WTfW7duafny5bp69aqSk5MlSYmJiTp16pTCwsKypEAAAICM2BRkxowZo3PnzqlIkSKKiYlRyZIl9d1333EVEwAAyBE2BZmIiAht3LhRV69e1YIFCzR37lytXbtW69evz6r6AAAAMmTTOTIODg4qUaKEnnrqKZ08eVKS9MILL+iXX37JkuIAAAAexKYgU7p0aR07dkwFCxZUTEyMoqKiFBsbq/j4+KyqDwAAIEM2HVp65ZVX1L17d23YsEHt2rVTUFCQHBwcVLdu3ayqDwAAIEM2BZnAwEBVrlxZ7u7uGjVqlJYsWaKYmBj16tUrq+oDAADIkM3PWqpZs6b57/369ZMkRUVFZV5FeYl75ZyuwPj4DAEAD2BTkPn55581c+bMNPeRiYqK0rFjx7KkQKNKSU6SXaeFOV1GnpCSnCQ7e1NOlwEAyIVsCjKTJk2Sp6enKlWqpIsXL8rX11fLli3TG2+8kVX1GZadvUkzN5/QxajYnC7F0DyLuGpUqyo5XQYAIJeyKcicPn1aK1as0KVLlzRlyhT17NlT3t7emjhxonr27JlVNRrWzpPXdfzKnZwuw9CqlSpIkAEAZMimy68LFiwoZ2dneXp66vTp05KkWrVq6fLly1lSHAAAwIPYFGTKly+vVatWKV++fHJ1ddWvv/6qM2fOyM7OLqvqAwAAyJBNh5aGDRum1157Tb6+vurdu7deeuklmUwm/ec//8mq+gAAADJkU5CpXbu2du/eLUdHR3Xp0kVPP/20/vrrL/n6+mZVfQAAABmy+T4ydnZ2unbtmpKTk+Xu7i53d3dduXJFpUqVyor6AAAAMmRTkAkPD9e4ceMUHR1tbktJSZGdnZ1+/fXXTC8OAADgQWwKMnPmzFHXrl314osvysHB5skcAACATGVTGvn99981ePBgQgwAAMgVbLr8ulq1aoqMjMyqWgAAAGxi81VLPXr0UOvWreXu7m6xbPDgwZlaGAAAwMPYFGQOHz6sSpUq6cyZMzpz5oy5nRviAQCAnGBTkFm+fHlW1QEAAGAzm8/a3bp1q4KDg3X58mUVK1ZMgYGB8vf3z4raAAAAHsimk33XrVun0aNHq3LlyurevbuqVq2q8ePHa/Xq1VlVHwAAQIZsmpH57LPPNHfuXDVo0MDc1rRpU02cOFGdO3fO9OIAAAAexKYZmStXrqh+/foWbfXq1dMff/yRqUUBAABYw6Yg4+HhoYiICIu2iIgInrMEAAByhE2HloKCgjRo0CB16dJFnp6eunDhgoKDgzVmzJisqg8AACBDNgWZzp07y2QyKTQ0VFu3blXp0qU1efJktW7dOqvqAwAAyJDNl1937NhRHTt21M2bN/XEE0/w3CUAAJBjbDpHJiEhQVOnTpW3t7caNWokHx8f/e9//1NCQkJW1QcAAJAhm4LM/PnztX//fs2aNUvr16/XrFmz9PPPP2vWrFlZVB4AAEDGbDoutG7dOi1ZskSenp6SpAoVKqhChQrq2rWr3nzzzSwpEAAAICM2zcjcvn1bJUuWtGgrWbKk4uPjM7UoAAAAa9gUZLy8vPTll19atH355ZeqXLlyphYFAABgDZsOLQ0fPly9evVSWFiY+T4ykZGRWrRoUVbVBwAAkCGbZmTq1Kmjb775Rr6+vnJzc1PLli21fv161a5dO6vqAwAAyJDNN4EpX768hg0blhW1AACQeZKTJHtTTleRN+Tiz9KqIOPv769169bJz89PdnZ26fYxmUwqWrSo+vbtKz8/v0wtEgAAm9mbpK/7SDdO5XQlxuZeWeq0MKeryJBVQaZfv36SpMGDB2cYZJKTk3X69GmNGzeOIAMAyB1unJJ+/zmnq0AWsnpGRrr3eIIHiY+P188/8z8MAADIHlYFme7du2c4E5Nq2bJlcnZ21qpVqzKlMAAAgIexKsjUr18/q+sAAACwmVVBZvDgwVldBwAAgM2sCjLjx4/X+PHjNWbMmAz7TJs2LdOKAgAAsIZVN8RLSUmx+C8AAEBuYNWMzIQJEyRJ06dPz9JiAAAAbGFVkJk7d+5D+3AeDQBDc+fht4+NzxA5wOogU6BAAT399NPpHl562KXZGYmKilKXLl00efLkDK+M2rVrl9577z1dvHhRJUuW1JtvvqnmzZs/0vYAID0pyUmyy8V3LjWSlOQk2eXSW9kjb7IqyLz11lsKDQ3VtWvX1LlzZwUEBKho0aKPteFDhw5p9OjRunDhQoZ9zp07pyFDhuiDDz5Qs2bNtGXLFg0fPlxbtmxRiRIlHmv7AJDKzt6kmZtP6GJUbE6XYmieRVw1qlWVnC4D/zJWBZmePXuqZ8+eOnLkiL7++mu1a9dOtWvXVufOndWkSRPZ29v0EG2tWbNGs2fP1qhRozRixIgH9qtTp46ee+45SVLbtm0VGhqq4OBgDR061KZtAsCD7Dx5Xcev3MnpMgytWqmCBBlkO5uefl2zZk3VrFlTY8aM0aZNm7RkyRK988476tChg15//XWr19OoUSP5+/vLwcHhgUEmMjJSlStbHnOtWLGiTpw4YUvZkqSkpCSb3/M4TCamVjNTdo9fRhjXzMW45k2Ma96U3eNq7fZsCjKpnJ2d1bJlSyUmJurzzz/X0qVLbQoyxYoVs6pfTEyMXFxc0mw7Ntb26d+jR4/a/J5H5eLioqpVq2bb9v4NTp48qbi4uBytgXHNfIxr3sS45k25YVzTY3OQ2bt3r77++mtt375d5cqV08svv6x27dplRW1ycXFRfHy8RVt8fLzc3NxsXleNGjVI5wbm5eWV0yUgCzCueRPjmjdl97gmJSVZNQlhVZA5d+6c1qxZo7Vr1yoxMVHt2rXTl19+meU7VblyZR0/ftyiLTIyUtWrV7d5XSaTiSBjYIxd3sS45k2Ma96UW8fVqiDTpk0bFS5cWP7+/mrWrJkcHBx0584dRUREmPvUrVs304tr3769lixZoo0bN+r555/Xli1bdODAAb399tuZvi0AAGA8VgWZlJQURUVF6fPPP9fnn3+eZrmdnZ1+/fXXTCnI29tbEyZMUPv27VWhQgXNmzdP7733nt5++22VLl1ac+bMUbly5TJlWwAAwNisCjKPcpWQtU6ePGnx+vDhwxavGzdurMaNG2fZ9gEAgHHZdgMYAACAXIQgAwAADIsgAwAADIsgAwAADIsgAwAADIsgAwAADIsgAwAADIsgAwAADIsgAwAADIsgAwAADIsgAwAADIsgAwAADIsgAwAADIsgAwAADMshpwsADMe9ck5XYHx8hgAyCUEGsEFKcpLsOi3M6TLyhJTkJNnZm3K6DAAGR5ABbGBnb9LMzSd0MSo2p0sxNM8irhrVqkpOlwEgDyDIADbaefK6jl+5k9NlGFq1UgUJMgAyBSf7AgAAwyLIAAAAwyLIAAAAwyLIAAAAwyLIAAAAwyLIAAAAwyLIAAAAwyLIAAAAwyLIAAAAwyLIAAAAwyLIAAAAwyLIAAAAwyLIAAAAwyLIAAAAwyLIAAAAwyLIAAAAwyLIAAAAwyLIAAAAwyLIAAAAwyLIAAAAwyLIAAAAwyLIAAAAwyLIAAAAwyLIAAAAwyLIAAAAwyLIAAAAwyLIAAAAwyLIAAAAwyLIAAAAwyLIAAAAwyLIAAAAwyLIAAAAwyLIAAAAwyLIAAAAwyLIAAAAwyLIAAAAw3LI6QIAAMgy7pVzugLjy+WfIUEGAJAnpSQnya7TwpwuI09ISU6Snb0pp8tIF0EGAJAn2dmbNHPzCV2Mis3pUgzNs4irRrWqktNlZIggAwDIs3aevK7jV+7kdBmGVq1UwVwdZDjZFwAAGBZBBgAAGFaOBJmbN29q4MCBqlOnjurXr68pU6bo7t276fbt06ePatSoIW9vb/Of3bt3Z3PFAAAgN8qRc2SGDx+uEiVKaM+ePbpx44Zee+01LV26VH369EnT99ixY1q0aJHq1auXA5UCAIDcLNtnZM6fP68DBw5o1KhRcnFxkaenpwYOHKiVK1em6Xvx4kXdvn1bVatWze4yAQCAAWT7jMzp06dVqFAhlShRwtxWoUIFXblyRXfu3FHBggXN7UePHpWbm5tGjBiho0ePyt3dXT169FBgYKDN201KSsqU+q1lMuXO6+2NKrvHLyOMa+ZiXPMmxjVvyu5xtXZ72R5kYmJi5OLiYtGW+jo2NtYiyCQkJKhWrVoaMWKEKlWqpP3792vIkCFyc3NTmzZtbNru0aNHH794K7m4uDCLlMlOnjypuLi4HK2Bcc18jGvexLjmTblhXNOT7UHG1dU1zQeR+trNzc2iPSAgQAEBAebXjRo1UkBAgMLDw20OMjVq1CCdG5iXl1dOl4AswLjmTYxr3pTd45qUlGTVJES2B5lKlSrpzz//1I0bN+Tu7i5JOnPmjDw8PFSgQAGLviEhIWlmXxISEpQvXz6bt2symQgyBsbY5U2Ma97EuOZNuXVcs/1k36eeeko+Pj6aOnWqoqOjdfHiRX388cfpnvcSHR2tSZMm6ZdfflFycrJ27typ9evXq0uXLtldNgAAyIVy5PLr2bNna+LEiWrRooXs7e0VEBCggQMHSpK8vb01YcIEtW/fXkFBQYqNjdXgwYN18+ZNeXp6asaMGapTp05OlA0AAHKZHAky7u7umj17drrLDh8+bP67nZ2dBg4caA45AAAA9+MRBQAAwLAIMgAAwLAIMgAAwLAIMgAAwLAIMgAAwLAIMgAAwLAIMgAAwLAIMgAAwLAIMgAAwLAIMgAAwLAIMgAAwLAIMgAAwLAIMgAAwLAIMgAAwLAIMgAAwLAIMgAAwLAIMgAAwLAIMgAAwLAIMgAAwLAIMgAAwLAIMgAAwLAIMgAAwLAIMgAAwLAIMgAAwLAIMgAAwLAIMgAAwLAIMgAAwLAIMgAAwLAIMgAAwLAIMgAAwLAIMgAAwLAIMgAAwLAIMgAAwLAIMgAAwLAIMgAAwLAIMgAAwLAIMgAAwLAIMgAAwLAIMgAAwLAIMgAAwLAIMgAAwLAIMgAAwLAIMgAAwLAIMgAAwLAIMgAAwLAIMgAAwLAIMgAAwLAIMgAAwLAIMgAAwLAIMgAAwLAIMgAAwLAIMgAAwLAIMgAAwLAIMgAAwLAIMgAAwLAIMgAAwLAIMgAAwLAIMgAAwLAIMgAAwLAIMgAAwLByJMjcvHlTAwcOVJ06dVS/fn1NmTJFd+/eTbfvrl275O/vr1q1aqlNmzbasWNHNlcLAAByqxwJMsOHD5erq6v27NmjkJAQ7du3T0uXLk3T79y5cxoyZIiGDRumgwcPasiQIRo+fLiuXr2a/UUDAIBcJ9uDzPnz53XgwAGNGjVKLi4u8vT01MCBA7Vy5co0fdesWaM6deroueeek4ODg9q2bau6desqODg4u8sGAAC5kEN2b/D06dMqVKiQSpQoYW6rUKGCrly5ojt37qhgwYLm9sjISFWuXNni/RUrVtSJEyes3l5KSookKSEhQSaT6TGrt57JZNLTHm7Kl32bzJPKF3NTUlKSkpKScroUSYxrZmFc8ybGNW/KqXFN3V7q93hGsj3IxMTEyMXFxaIt9XVsbKxFkEmvr7Ozs2JjY63eXnJysiTpl19+edSSH9l/Kkiq4Jrt281bUvTTTz/ldBEWGNfMwLjmTYxr3pSz45r6PZ6RbA8yrq6uiouLs2hLfe3m5mbR7uLiovj4eIu2+Pj4NP0exMHBQTVq1JC9vb3s7OwesWoAAJCdUlJSlJycLAeHB0eVbA8ylSpV0p9//qkbN27I3d1dknTmzBl5eHioQIECFn0rV66s48ePW7RFRkaqevXqVm/P3t5eTk5Oj184AADIdbL9ZN+nnnpKPj4+mjp1qqKjo3Xx4kV9/PHHCgwMTNO3ffv2OnDggDZu3Ki7d+9q48aNOnDggDp06JDdZQMAgFzILuVhZ9FkgRs3bmjixInav3+/7O3tFRAQoJEjR8pkMsnb21sTJkxQ+/btJUl79uzRe++9pwsXLqh06dIaNWqUmjZtmt0lAwCAXChHggwAAEBm4BEFAADAsAgyAADAsAgyAADAsAgyAADAsAgyuZyfn59CQ0PTtIeGhsrPz++h77e2X1hYmF544QWrapozZ466d++e7rJx48Zp3LhxVq0HaY0bN07e3t7y9vZWjRo1VKVKFfNrb29vHTx40Kb1de/eXXPmzMmiaiFl/pjB+I4fP66hQ4eqQYMG8vb2VsuWLTVjxgz9+eefVr1/9OjRGj16dNYWmYdk+w3xkDu1b9/efMn745g4cWImVPPvNXHiRPNnGBoaqrlz52r79u05XBUehDHD/Xbs2KHhw4erR48eevvtt1W8eHH99ttv+vDDDxUQEKDg4GCLZw3i8TEjkwdcuHBBAwYMUP369dW8eXN9+OGHSkhISNPv7t27Gj9+vHx9fVW/fn298sorOnTokCTLmZv9+/fLz89P8+fPV+PGjVWvXj0NGTJE0dHRadZ5+/ZtdezYUcOGDVNiYiK/SWShS5cuycvLS5cuXTK33T87Fhoaqo4dO6pXr16qU6eO1q1bZ/H+X375RQ0aNNDSpUslpZ3t279/v7y8vLJ+R/5Ftm/frpdfflkNGzbUM888o27duuncuXOS7o3XK6+8ohkzZqhevXpq0KCBli9frq+++krNmzeXj4+Pxeymn5+f5s6dq1atWsnb21tdu3ZVZGSkefnx48fVvXt31a1bV88//7yWLl1qftjenDlz1KtXL3Xq1En16tVTRESEoqOjNXHiRDVt2lQNGzbUiBEjdOPGjWz9fPKahIQE/fe//1X//v01YsQIlShRQnZ2dqpQoYJmz54tDw8PTZs2Ld2Z8oxmT9ObAc9opv7fiiBjABMmTFCdOnUs/kyYMEHSvQdt9ujRQ5UqVdLu3bv1xRdfaO/even+QKxdu1aHDx9WeHi49u7dq7p165rX80+XL1/W1atX9e2332r16tU6fPiwvvjiC4s+t27dUo8ePeTl5aUPPvhAjo6Omb/zsMnx48fl7++vvXv3qmXLlub2Y8eOqVevXnrjjTfUo0ePnCvwX+SPP/7QsGHD1K9fP+3bt087d+5USkqK5s2bZ+5z6NAhlShRQj/88IOGDh2qadOmaf/+/dq4caOWLl2qkJAQRUREmPsHBwdr1qxZ2rdvnypUqKABAwYoMTFRV69eVVBQkFq3bq29e/fq448/1hdffKHg4GDze/ft26eRI0dqx44d8vb21tixY3X+/HmFhoZq69atyp8/vwYPHvzQJw0jY4cPH9aNGzcUEBCQZpm9vb0CAwO1devWXPN08LyCIGMA77zzjg4ePGjx55133pEk7dy5UwkJCXr99deVL18+lSxZUsOGDdPKlSvTrMfZ2VmXLl1SSEiIzp49q2HDhiksLCzD7Q4aNEjOzs4qW7as6tevr7Nnz5qX3b59W0FBQSpWrJimTp0qk8mU+TsOmzk6OqpDhw5ycnKSs7OzpHvhpmfPnurdu7c6d+6cwxX+exQpUkQbNmyQn5+foqOj9ccff6hw4cK6evWquY+rq6uCgoJkb2+vRo0aKSkpSb1795aLi4tq1Kih4sWL6/Lly+b+vXv31tNPPy1nZ2eNGTNGv//+u3788UeFhYWpQoUK6tq1qxwdHVWxYkX17t3b4t8BT09PNWzYUG5ubrp9+7Y2b96st99+W0WLFpWbm5vGjh2ro0ePpnm+Hax37do1STI/R/CfihcvrsTERN26dSs7y8rzOEfG4C5fvqyoqCjVrVvX3JaSkqLExETdvHnTou8LL7ygxMRErV69Wh988IGKFi2qAQMG6D//+U+66y5WrJj5746Ojha/qZ08eVJNmzZVRESELl68qDJlymTynuFRFCtWTPb2lr+f7N27V97e3lq/fr2CgoJ4iGo2cXR01Pr16/Xll1/Kzs5OlStXVnR0tMWTfAsVKiQ7OztJMo9bwYIFzcvt7e2VnJxsfl22bFnz311cXFSoUCFdv35dly9f1vHjx1WnTh3z8uTkZItfMIoXL27+e2o4eumllyxqNplMunTpkk0P5sX/Sf0388qVK3rqqafSLL906ZIcHR1VuHDhbK4sbyPIGJyHh4fKlCmjTZs2mduio6N18+ZNFSlSxKLv2bNnVa1aNQUEBCg+Pl6bNm3SW2+9ZfGPn7W8vb21YMECDR06VG+99ZZWrlyZ5gsUmSv1SykxMdHc9s/f7FK/FO/Xo0cP9e/fX/7+/pozZ47eeOMNSfe+JB+0Ljye8PBwrVixQqtWrTIHkEmTJunUqVPmPumN14PcP5sTExOjW7duqWTJkvLw8FD9+vW1aNEi8/Jbt24pJiYm3W2lnmwaHh5u8QtLZGSkPD09baoJ/8fHx0fFihVTSEiIRo4cabEsKSnJfG6Mo6NjmvMYM/r5++fPaXJystVXP/1b8M1jcM2bN1dMTIwWLlyohIQE3blzR2+99ZZGjBiR5h/JHTt2aPDgwbp06ZKcnZ1VqFAhOTg4qECBAjZvN/V8mPHjx+vs2bNauHBhpuwPMla0aFE98cQT2rBhg1JSUnT8+HGLAJsRR0dHubm5acqUKVq8eLF+/PFHSVKFChW0bds2xcfH6/r161q2bFlW78K/yl9//SV7e3s5OzsrJSVFu3fv1jfffGPxpWSrJUuW6Pz584qLi9O0adNUvnx5eXt7y9/fXz/99JPCwsJ09+5dXbt2TQMGDND06dPTXU+JEiXUrFkzTZkyRbdu3VJiYqLmz5+vwMBA3blz55Hr+7dzdHTUtGnTtGLFCn344Ye6evWqkpOTFRkZqcGDB+uPP/7QmDFjVKFCBd24cUM//PCDUlJStHbtWp05cybddVaoUEEnT57U6dOndffuXS1cuFCxsbHZvGe5G0HG4PLnz6+lS5dq//79atKkiZ577jnZ29tr/vz5afq++uqratasmV5++WXVqlVLM2fO1IcffigPD49H3n6RIkU0btw4zZ49WydOnHicXcFDODk5adKkSQoPD1ft2rU1ffr0NIcGHqRhw4bq3Lmz3nrrLcXGxmrkyJGKiYmRr6+vXn311Uy5/B7/58UXX9Szzz6rF154QQ0aNND8+fMVFBSks2fPpntVoTV8fHw0aNAg+fr66vr161qwYIHs7e1VunRpLVy4UMHBwXr22WfVoUMHlS9fPsMgI0nvvvuuChYsqICAADVo0EC7du3SwoULLWZoYLvGjRvryy+/1IULF9SpUyfVrl1bAwYMUJkyZRQWFqaSJUuqRo0aeu211zR69GjVq1dPP/zwg1q1apXu+p577jn5+/urR48eaty4sW7duiUfH59s3qvcjadfA4AB+Pn5afDgwerYsWNOlwLkKszIAAAAwyLIAAAAw+LQEgAAMCxmZAAAgGERZAAAgGERZAAAgGERZAAAgGERZADkSitXrpSXl5eWLl1q0e7n56fQ0NCcKQpArkOQAZArrVy5Uv/5z3+0bNky3b17N6fLAZBLEWQA5Dr79u3TzZs3NXr0aCUnJ2vz5s3p9uvevbvmzJljfn3p0iV5eXnp0qVLkqQbN25o5MiR8vX1VaNGjTRu3DhFR0dnyz4AyB4EGQC5zvLly/XSSy/J2dlZr7zyihYvXmzzOpKTkzVw4EDZ29tr8+bNWrduna5du6Zx48ZlQcUAcgpBBkCucvnyZe3Zs0ddu3aVJL300kuKjIzUgQMHbFrPsWPHdPz4cb3zzjvKnz+/ChcurLfeeksbNmzQrVu3sqJ0ADnAIacLAID7ffHFF7p79646dOhgbrt7964WL16sevXqWb2eS5cuKSkpSU2bNrVod3Jy0sWLF1W4cOFMqxlAziHIAMg1/v77b4WEhGjKlCl69tlnze2nTp1Sv379dObMGYv+9vb2SkxMNL++f6bFw8NDzs7O2r9/v0wmkyQpISFBFy9eVNmyZbN4TwBkFw4tAcg11q1bJzs7O/n7+8vDw8P8p0mTJqpcuXKaS7ErVKigPXv26M6dO/rrr7/02WefmZfVrFlTZcuW1fTp0xUTE6P4+HhNnTpVPXr0UFJSUjbvGYCsQpABkGt88cUX8vf3l6OjY5plXbp00dq1a3Xz5k1zW//+/VW0aFG1aNFCHTp0kJ+fn3mZg4ODPv30U924cUPPP/+8GjVqpAsXLmjJkiXKly9ftuwPgKzH068BAIBhMSMDAAAMiyADAAAMiyADAAAMiyADAAAMiyADAAAMiyADAAAMiyADAAAMiyADAAAMiyADAAAMiyADAAAMiyADAAAMiyADAAAM6/8BOTnnvq79joEAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# legend='reverse' kääntää selitteen järjestyksen.\n", "# rot=0 määrittää luokka-akselin nimiöiden asennon.\n", "# stacked=True pinoaa pylväät päällekkäin.\n", "# width=0.7 määrittää pylväiden leveyden (voi olla enintään 1).\n", "(df2/1000000).plot(kind='bar', legend='reverse', rot=0, stacked=True, width=0.7)\n", "\n", "plt.title('Myynti vuosina 2016 ja 2017')\n", "plt.xlabel('Alue')\n", "plt.ylabel('Miljoonaa euroa')\n", "plt.grid(axis='x')" ] }, { "cell_type": "code", "execution_count": 9, "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", "
MiesNainen
Tyytymätön178
Ei tyytymätön eikä tyytyväinen1515
Tyytyväinen621
\n", "
" ], "text/plain": [ " Mies Nainen\n", "Tyytymätön 17 8\n", "Ei tyytymätön eikä tyytyväinen 15 15\n", "Tyytyväinen 6 21" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df3 = pd.DataFrame({'Mies':[17, 15, 6],'Nainen':[8, 15, 21]},\n", " index=['Tyytymätön', 'Ei tyytymätön eikä tyytyväinen', 'Tyytyväinen'])\n", "df3" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "image/png": "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t25d9e3bN8X3Iy3vQ5IHrztxc3NL07a6/3UWLVpUkiwhSZLs7Oz0zDPPKCoqKsUaK1SooOLFi1tqtLe318svv6ydO3c+cv1JSpYsaQkt0r0vYR8fHx04cCBNy+/evVuGYSggIOChfevOnTvJtrN//35JsnSpSPcubG/cuLHlcWxsrI4cOSI/Pz8ZhmFp99lnn1XZsmW1Y8cOqzZT22+S07JlS8XExOj777+XdC9wnjlzRi1btpSUvs9M2bJlLaElJcHBwRo8eLCioqIUGRmpdevWafHixZKU4r6LpwtnXGBTr7zyivr06aNz584pX7582rVrl+Wv69TcvHlTV65ckZeXV7LTr1y5onLlymnRokWaPXu2li9frgULFqhgwYLq0KGD+vfvn+wB9ObNmzIMQ1WrVk223cuXL6tChQqSZPnrM0lSe4mJiY+sP2m+zz77TIsXL1ZMTIxKlCihSpUqWc52PEqePHkeWv/998P44osvFBYWphs3bqhIkSLy8vKSs7Nzil/wPj4+mj17thYsWKB58+Zp1qxZKlq0qHr06KFOnTolu0xa3odnnnlGUvLbKy3370guZD7YVmpu3rypP//8M8Ua0xo0k/sFS+HChXX06NE01yFJr776arLTk+tySgp+D16ImhTgJOnvv/9WYmKi5syZk+z1Kg/uT4/abx707LPPqmrVqpY/KtatW6dSpUqpevXqlteV1s9MkSJFUlxPkjNnzigkJES7d++Wo6OjypQpY/npN/d7gURwgY29/PLLKlCggDZt2qQCBQqodOnSqlix4iOXK1CggF544QV98sknyU4vXbq0pHun86dPn664uDgdOHBAy5Yt06xZs+Th4WE5rf1gu3nz5tXChQuTbff5559Px6tLXVJIGDVqlBo3bmz5FVXStRFPYt26dRo/frzee+89tW3b1vLF179/f0VGRqa4XL169Syn+Xfv3q2FCxdq3LhxqlKlitVZjiRpfR9sqUCBAvL19dWQIUOSnZ4rV640tZMUPO539epVFS5cOE3LFyxYUNK9rqt8+fI9ND25LpCkrqOrV69aTb+/lnz58snOzk6dO3dONhSlJ+SlpGXLlho7dqyioqIUERGhNm3aWM7CZeRnJjExUT179pSTk5OWL18uT09POTo66tSpU/r222/TVXNCQoLV49TOKsFc6CqCTeXKlUsNGjTQf//7X0VERKT41+iDfH199ddff6lw4cLy9va2/Nu1a5fmzp0rBwcHLViwQAEBAYqLi1OuXLlUq1Ytffzxx5Kkv/76S5IeOuvi6+urmJgYGYZh1e7Jkyf1+eef6+7duxn22g8cOKBy5cqpbdu2ltBy6dIlnThxIs1nbVJru0CBAurZs6cltPzzzz86cOBAim1PmDBBbdu2lWEYcnZ2lr+/v+XajdS216PeB1vz9fXV6dOn9a9//cuqxm+//VYrVqxIc41nzpyxuq7k0qVLOnz4sGrVqpXs/A9uq6Ruphs3bljVcfPmTU2ePDnZYFSzZk1JeuhaoKRuG+neGSlPT0/9/vvvVu2++OKLmj59uuXXX08i6dqhKVOm6MqVK2rRooVl2pN8Zh7c9jdu3NDp06fVtm1bVapUyXJtzI8//igp7Wcz8+fPr4sXL1o9d/DgwTQti+yPMy6wuaZNm+rtt9+Wvb29RowYkaZlAgMDtWjRInXp0kW9evVSiRIltHPnTs2ZM0dvvvmmnJycVLNmTX3yySfq06eP3nzzTTk4OGjp0qXKlSuX/P39Jd37K/jq1av64YcfVKFCBfn5+Vl+Nt27d2+VLVtWP//8s6ZNm6a6detm6L0jKlWqpBkzZmj27NmqUqWK/vzzT4WFhSkuLi7N3Reptb1kyRKNHz9e/v7+unz5subNm6erV69aum4eVKtWLX3xxRcKDg5WixYtFB8fr7lz58rFxcXyBVqwYEEdOnRIu3btkqenZ5reB1vr3Lmz1q5dq86dO6tr164qVKiQNmzYoOXLl2vYsGFpbifpwtYBAwbIwcFB06dPV8GCBVO8y23SGZb169ercuXKcnd3V4sWLfThhx/q/Pnzqlixok6fPq1JkyapdOnSeuGFFx5q4/nnn1f79u01adIk3b17VxUqVNDatWt1/Phxq/mSLvh977331KJFCyUkJGj+/Pk6cuSI3nnnnbRvrBQ888wz8vf319dffy1vb2+VLVvWMu1JPjNJgX3Xrl0qW7asKleurFKlSmnx4sVyc3NTwYIFtX37dn355ZeS0t6t5+/vr7CwMM2aNUtVqlTRtm3bHvqVG8yL4AKbq127tgoWLKgSJUpYHRBTkzdvXi1evFiffvqpJk6cqKioKJUqVUrvvfee5RdK5cuX16xZs/T5559r0KBBSkhIUMWKFTV//nyVKVNG0r0A9MMPP6hPnz5699131bNnT82ePVtTpkxRWFiYrl27puLFi6tz585Wv3LICG+//bZu3LihhQsX6vPPP1eJEiXUsmVLy69Mbt26lWLIeJTWrVvr3LlzWrlypb7++msVL15cfn5+6tChgz788EOdOnXqoRudvfzyy/rkk080f/58ywW51apV08KFC+Xi4iJJ6tixo3755Rf16NFDoaGhat68+SPfB1srXry4li5dqk8//VSjRo3SnTt39MILL2js2LHp6pYrWbKkunTponHjxik2Nla1a9fWzJkzLdvmQY0aNdLatWsVHBystm3batSoUQoNDVVYWJiWLl2qixcvqnDhwmratKklDCVn5MiRKlKkiBYtWqRbt26pXr166tWrlyZPnmyZp27dupo3b56mT5+ud999V05OTvLy8tIXX3yRYTc9bNGihTZt2mR1tkW6d2bpcT8z+fPnV5cuXbRs2TJt27ZNO3bs0IwZMzR27FgFBwcrV65cKleunGbOnKlx48Zp//79jxwOQbr32bp+/brmz5+v+Ph41a9fX2PHjs2QEAfbszO42gnIEnfu3FGlSpU0ePBgde/e3dblIB2Cg4O1d+9ebd261dalAE89zrgAWWD//v2Wn94+yRg6APC0I7gAWWD+/PnavXu3mjVrpvr169u6HAAwLbqKAACAafBzaAAAYBoEFwAAYBoEFwAAYBo57uLcxMREyyBqjxqoDwAAZA+GYSgxMVGOjo6pDsaZ44LL3bt3Ux2LBQAAZF/e3t6pjiGW44JLUkrz9vbOFuOkAACAR0tISFBkZGSqZ1ukHBhckrqHHBwcCC4AAJjMoy7z4OJcAABgGgQXAABgGgQXAABgGjnuGpe0SkhIUHx8vK3LADKVk5MT13oByFGeuuBiGIYuXryomzdv2roUIEu4uLjIzc2N+xoByBGeuuCSFFqKFSumvHnzcjBHjmUYhmJiYnT58mVJUokSJWxcEQA8uacquCQkJFhCS+HChW1dDpDpnJ2dJUmXL19WsWLF6DYCYHpP1cW5Sde05M2b18aVAFknaX/nmi4AOcFTFVyS0D2Epwn7O4Cc5KkMLg9KSDRy9PqyvcSEnL0+AECGeaqucUmJg72d+i89pFOXozN9XeWK5deU130yfT2mYu8grewuXT2R+esq4i61mZv56wEAZAqCy/936nK0jl7429ZlJMvDw0OSFBER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TIPgAgAATIPgAgAATIPgAgAATIPgAgAATIPgAgAATIPgAgAATIPgAgAATIPgAgAATIPgAgAATIPgAgAATIPgAgAATIPgAgAATIPgAgAATIPgAgAATIPgAgAATIPgAgAATIPgAgAATIPgAgAATIPgAgAATIPgAgAATIPgAgAATIPgAgAATIPgAgAATIPgAgAATIPgAgAATIPgAgAATIPgAgAATIPgAgAATIPgAgAATIPgAgAATIPgAgAATMPR1gVkNMMwJEkJCQk2riRlFdzyKbeDravIOC8Udr63vYt6Sfa5bV1OxilcTsrG+1FasK+ZBPtatsO+lvWSvreTvsdTYmc8ag6TiYuLU2RkpK3LAAAAj8Hb21u5cuVKcXqOCy6JiYm6e/eu7O3tZWdnZ+tyAABAGhiGocTERDk6OsrePuUrWXJccAEAADkXF+cCAADTILgAAADTILgAAADTILgAAADTILgAAADTILgAAADTILjgIZcvX1ZMTEyWrzcqKkrXr1/P8vUiY/35559P3EZCQoLOnj2bAdWkX0bUj+zDVsczZB6Ci4mFhITIx8dHPj4+8vb2Vvny5S2PfXx8tH///nS3efXqVTVu3DjTAkRSXd9++61effVVq2kNGzbUyZMnLY/3798vHx8fSVL37t01a9asTKkJ/ycgIEDe3t5W+9GD+9Orr76qb7/9NtnlJ0yYoJkzZz5xHQMHDtSaNWueuJ3khISEKCQkRJIe+pwkV3/S601un0XGye7Hs1mzZql79+6SHv4McHzKWtyALodYtWqVpk+frq1btz5RO+fOnVODBg20ZcsWlS5dOoOqSxsPDw8tXLhQNWrUyNL14v8EBASob9++CgwMfKzlg4ODJUnjx49/ojqCgoLk6+urfv36PVE76ZVR9ePJ5ITjGTIPZ1xyqFdeeeWhvwCaN2+ub775JsVpK1asULNmzSRJzZo10+rVq/XSSy9p3bp1lvni4uJUo0YN7dq1S9OmTVP//v01dOhQVa1aVS+//LIiIiL0+eefq3bt2vL19dWMGTMsyx48eFBvvfWW6tatK29vbwUGBurw4cOSpMaNG0uSevTooTlz5kiSNm/erMDAQFWtWlWNGzfWggULlJiYKOneF0xISIh69eolHx8fNWjQQAsXLszYjYhkBQQEaNWqVQ89//nnn2vdunVat26dWrRoodmzZ1ve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JUkRERFWfxisWrVK/v7+6W7vaUVwycHq16+vhIQETZ069aEDfUrTkk6d33+wbtGihY4dO6YVK1Y89q9NoqKiZG9vrzx58kiSDh8+rIULFyouLs4yT65cuRQVFSXp3sFl69atioiIUEJCgn799VfNmTMn1S832N7976F076/NFi1aaMqUKcqfP7+qV6+epmkPtlO4cGH5+flp9OjRql69ukqWLPlY9UVFRSlPnjxycHDQ9evXNWbMGElSfHz8Q+v19vZWuXLlNHLkSEVFRSkqKkqjRo3Sc889p6pVqz7W+vH4suJ41qpVKx0+fFhr1qxRu3btLM9HR0crd+7csre3V3R0tP7zn/8oOjrast+kVfHixVW/fn2NHTtWN27cUHx8vGbOnKm2bdvq77//TldbTzOCSw6W9MVw7NgxtW7dOk3TihQpooYNG6p9+/ZasmSJJMnV1VV+fn46d+6cGjVq9Fi11KlTRx06dFDHjh1VvXp1jRo1Sp07d9b169ctV9S3b99e7733niZNmqTKlStrypQpmjNnjqpXr66+ffvqjTfeUK9evR5zayCtRo4cmex9XJJ+7ZWapk2b6uDBg6pfv77lucDAQP3666/Jht6UprVq1UorV65Uhw4dHpr3ScJraGioNmzYoKpVq6p169YqUqSIKleurBMnTjxUv6Ojo8LCwnT37l01btxY/v7+io+P1xdffCFHR8fHrgGPJyuOZy4uLgoICJCjo6Nq1apleX7EiBE6duyYfH191aRJE926dUsBAQGW/SY9/vOf/6hgwYJq1aqVatasqR9++EFz587lLF46cB+XHG7hwoX68ccfNXfu3HRNe1BoaKhu376tjz76KDPKRA528+ZN1atXT5s3b7acKk/LtAcdO3ZMQUFB2r59u+UvaTxdOJ5BkvizIYe6cuWK/vrrL3355ZcaPnx4mqc96K+//tIff/yhNWvWaMGCBZlYMXKauLg4/fnnn1q4cKH8/Pysgklq0x4UHR2tCxcuaPLkyQoMDCS0PIU4nuF+dBXlUNu2bVNQUJDq1KmjBg0apHnag5YvX67evXvrrbfeUoUKFTKzZOQwcXFxev3113Xo0CHLHWnTMu1BFy9eVPv27XXr1i317t07M0tGNsXxDPejqwgAAJgGZ1wAZBmzjxwNwPYILgCs3D8K7qpVqyz3W3nUvKmNGi1lv5GjL1y4IB8fH124cMHqdUhiJGggG+PiXABW0vOT8/vnDQ8PT3XeGzduPHZNmdFOyZIldejQIUkPv+YWLVpYBloEkL0QXICn0NGjRzV+/HgdO3ZMhQoVUocOHdSpUyfZ2dlp2rRp2rt3r7766iurZeLi4tSnTx/FxMQoLCxMuXLl0qRJk7Rt2zZdvHhRefLkUdOmTTVixIiH7mSbNPKyJP36669q1qyZVq5cqU2bNlnmmTdvnrZu3So/P78Up73wwgvav3+/Dh06pKNHj6pYsWI6d+6c5s+fb5l39OjRlhuOJSQk6NNPP7VMGzBggAoVKqSRI0dq69atmj17tv7880/FxMTI29tbY8aM0QsvvKBVq1Zp+vTp2rp1q/bs2aNhw4apXbt2+vrrr3Xnzh3VqFFDoaGhluEAwsPDNWvWLF24cEHPP/+8Bg0apLp160q6N3JwlSpVdPDgQf36669yc3NTv3791LRp04x4K4Gnj82GdwRgExcvXjSqVatmLFq0yIiLizNOnjxpNGzY0FiyZIlhGIYxdepU48033zQM4/9G6Y2NjTW6du1qdOvWzYiNjTUM49Ej5j4oq0eO3rdvn1GpUiUjKirKMAzDuHXrluHt7W388ssvxl9//WVUrFjR2LJli2EYhnH9+nWjQ4cOxvvvv2/1ug3DeOQo0Nu2bTOqVatm7N2717h7966xdetWo0qVKsaJEycs9fr6+hpHjx417ty5Y3z22WdGtWrVjNu3bz/mOwg83bjGBXjKfPvttypbtqw6duwoJycnlStXTt26ddPixYuTnT8uLk69evXS1atXNWPGDMuwDekdMfd+WTFydPXq1VWiRAlFRERIktavX68yZcrIy8tLrq6uCg8PV0BAgKKjo3Xx4kUVKlQo1dpTGgV60aJFeuONN/TSSy/JwcFB/v7+CggIsBrJvHHjxvL09FSuXLnUunVrRUVF6dq1a4/cTgAeRlcR8JQ5f/68jh49ajU2UNII3sm5cuWKypcvr99++02//PKLZZye2NhYjR49Wvv27ZObm5s8PT1THTH3QYGBgRo5cqSGDRuW7MjRKU1Lrp01a9aoW7duD40c3a5dO61du1bt2rXT6tWrLePPODk5af369Vq6dKns7Ozk7u6u6OjoVG/ln9Io0OfPn9fevXstt5SX7nVR1axZM9llk9bBSObA4+GMC/CUcXNzU40aNaxGp92yZYtWr16d7PzFihXTnDlzFBQUpODgYMXExEh68hFzs2Lk6NatW+vIkSPauXOnjh8/rmbNmkm6NzrvokWL9NVXX+mHH37QnDlz5Onpmeba7+fm5qY+ffpYbc/w8HCNHTv2sdoDkDqCC/CUad68uQ4fPqxvv/1Wd+/e1eXLl9WrVy+NHz8+2fmdnJxkZ2enAQMGyN7eXhMmTJCU/hFzbTFytKurq/z9/TVixAg1atRIzzzzjCTr0coNw9CPP/6oNWvWpHu0X+lel9nChQv1888/S5IiIyMVGBho6b4CkLEILsBTplSpUpo7d66WLVum2rVrq2XLlipTpkyKwSVJ7ty5FRoaqhUrVujHH39M94i5tho5+rXXXtP58+fVtm1by3OtW7dW7dq11axZM9WsWVMzZsxQ165ddfr0acXFxaW6HR7UpEkTDRo0SMOHD1fVqlXVv39/de7cWUFBQelqB0DacMt/ADbDyNEA0ouLcwFkOUaOBvC4CC4AslzS6NAlSpTQrFmz0jztQUkjR5cvX56Ro4GnBF1FAADANLg4FwAAmAbBBQAAmAbBBQAAmAbBBQAAmAbBBQAAmAbBBQAAmAbBBQAAmAbBBQAAmAbBBQAAmMb/Ay43j1yNealBAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "df3.plot(kind='bar', rot=0, width=0.7)\n", "\n", "plt.title('Miesten ja naisten mielipiteiden vertailu')\n", "plt.ylabel('Henkilöä')\n", "plt.yticks([5, 10, 15, 20]) # y-akselin jakoviivat.\n", "plt.grid(axis='x')\n", "plt.legend(ncol=2)\n", "\n", "# Luokka-akselin nimiöt, joista keskimmäinen sisältää rivinvaihdon (\\n).\n", "plt.xticks([0, 1, 2], ['Tyytymätön', 'Ei tyytymätön\\n eikä tyytyväinen', 'Tyytyväinen'])\n", "\n", "# Kaavion tai tarkkaan ottaen kaavion sisältävän kuvion (figure) tallennus.\n", "# Kuvioon (figure) pääset käsiksi plt.gcf-funktiolla (get current figure).\n", "# Ilman parametria bbox_inches='tight' kuvion reunoilta voi jäädä osia tallentumatta.\n", "plt.gcf().savefig('testi.png', bbox_inches='tight')" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'eps': 'Encapsulated Postscript',\n", " 'jpg': 'Joint Photographic Experts Group',\n", " 'jpeg': 'Joint Photographic Experts Group',\n", " 'pdf': 'Portable Document Format',\n", " 'pgf': 'PGF code for LaTeX',\n", " 'png': 'Portable Network Graphics',\n", " 'ps': 'Postscript',\n", " 'raw': 'Raw RGBA bitmap',\n", " 'rgba': 'Raw RGBA bitmap',\n", " 'svg': 'Scalable Vector Graphics',\n", " 'svgz': 'Scalable Vector Graphics',\n", " 'tif': 'Tagged Image File Format',\n", " 'tiff': 'Tagged Image File Format',\n", " 'webp': 'WebP Image Format'}" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Tarjolla olevat kuvion tallennusmuodot.\n", "plt.figure().canvas.get_supported_filetypes()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Usean kaavion kuviot\n", "\n", "* Kaavio (**Axes**-luokan olio) on aina kuvion (**Figure**-luokan olio) sisällä.\n", "* Kuvion (**Figure**) sisään voit sijoittaa useita kaavioita **plt.subplots**-funktiolla.\n", "* **plt.subplots** palauttaa sekä kuvion (**fig**) että listan kaavioista (**axs**)." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAsgAAAHcCAYAAADLBFxmAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjYsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvq6yFwwAAAAlwSFlzAAAPYQAAD2EBqD+naQAAYixJREFUeJzt3Xtc1NW+//E3DAgEGqkI7Wh7fmliKup4QzYZChmiYgiSlpna9na85nZX5nZjYpZ6bKeJqWEXaWelBqiQ2VXLMosyRT146aZ4A5VSFASH+f3hYfZwFRAY0Nfz8eDxgFnfWd/PrGEWb9asmbEzm81mAQAAAJAk2du6AAAAAKA+ISADAAAAVgjIAAAAgBUCMgAAAGCFgAwAAABYISADAAAAVgjIAAAAgBUCMgAAAGCFgAwANxk+H6pqbqTxupFuC1CbCMgAUMtGjBghHx8fDRs2rNxjpk+fLh8fH82cOdNymY+Pj5YtW1ajtXz//fcaP358jfZZkdq4DdcjKCio2Bhfy6effqqnn366FiuqO9W9Ldb34a5du+Tj46Ndu3bVdHlAveJg6wIA4GZgb2+vH3/8USdPntTtt99erC03N1fbtm0rdZ333ntPXl5eNVrH+vXrdeTIkRrtsyK1cRuuR2xsrNzc3Cp9/Jtvvll7xdSx6t6W+nYfAnWBFWQAqAPt2rWTk5OTPvzww1Jtn332mZycnOTp6Vns8s6dOzf4YFLfbkO7du305z//2dZlNCj17T4E6gIBGQDqwC233KLAwEBt2bKlVNsHH3ygfv36ycGh+JN6Jbcn/P7774qOjtZf/vIX+fr66qGHHtLOnTuLXefrr7/W0KFDZTQa1b17d02cOFE///yzJGnmzJlKTEzU8ePH5ePjo4SEBEnS5cuXtWjRIgUGBqpDhw4KCwvTBx98UKzfoKAgvfzyy1q4cKH+8pe/qGPHjvrrX/+qX375pcLbXfI2pKena/LkyerZs6fat2+vXr166bnnnlNeXl65fSQkJKhdu3bas2ePhg4dKl9fX/Xu3VtxcXHFjsvIyNBTTz2le++9V+3bt5e/v7+eeuopZWdnF7sd1lssPvjgAw0aNEgdO3ZUz5499fe//12ZmZmSrm6N+fbbb/Xtt98W21ZQmfvBx8dHb7/9tv7xj3+oR48eMhqNmjp1qs6cOVPu7QwJCdGkSZNKXR4VFaVx48ZZfv7kk08UEREhX19fBQQE6LnnntOlS5cs7cuWLVPfvn0VGxsrPz8/3X///QoLCyvztlTm/qhom8yyZcvk4+NT6vKS16nMfQPUJwRkAKgj/fv31549e3TixAnLZTk5Ofriiy80cODACq97+fJljRw5Up9++qmmT5+u2NhYeXl5acyYMZZwduzYMf33f/+32rdvrxUrVui5557Tzz//rHHjxqmwsFATJ05UYGCgPDw89N5776l3794ym82aNGmS3n33XY0ePVorVqyQ0WjU9OnTlZSUVKyG+Ph4/fzzz3rhhRf03HPPad++fVXaz5uZmanhw4crNzdXCxYsUFxcnEJDQ/XWW29d8+n/wsJCPfHEE+rfv79effVVde3aVYsXL9aXX34p6eo2lccee0w//fST5syZo9dee02PPvqokpOT9a9//avMPr///nv9/e9/1wMPPKC4uDg988wz+uabbzRjxgxJ0pw5c9SuXTu1a9dO7733ntq3b1+p+6HISy+9pMLCQv3rX//SU089pW3btun5558v9zY++OCD+uKLL5STk2O57OjRo9q7d68efPBBSdLmzZs1adIk3XXXXVq+fLkmT56sTZs2aeLEicVegHfixAl9/PHH+te//qUnnnhCL730Uqnbcj33R1VU574BbI09yABQR3r37q1bbrlFH374oR5//HFJ0scff6ymTZuqa9euFV5348aNSk9P17p169SpUydJ0n333acRI0Zo8eLFev/997V3717l5eVp/Pjxlu0at99+uz799FNdunRJf/7zn9W0aVM1atRInTt3liR99dVX+vLLL/XSSy+pf//+kqRevXopNzdXixcv1sCBAy0r202aNNErr7wig8Eg6Wp4W7ZsmbKzs3Xbbbdd8/YfOnRI99xzj5YuXWrZB/yXv/xFO3fu1HfffacJEyaUe12z2ayJEycqKipKktS1a1d9/PHH2rZtm3r16qVff/1VXl5eWrBggWULRc+ePZWWlqZvv/22zD6///57OTk5aezYsXJycpIkubu7Ky0tTWazWa1bt7bUWTRe69atu+b9UKRNmzZ64YUXLD/v3bu3zC02RQYNGqSXX35ZH3/8sQYPHizpaiB2dXVVcHCwzGazFi9erF69emnx4sWW6/3Xf/2XRo0ape3bt6t3796SpCtXrujpp5/WX/7yF8txJW/Ljz/+WO37oyqqc98AtkZABoA64uzsrKCgIG3ZssUSkFNSUtS/f3/Z2dlVeN2dO3fKw8ND7du315UrVyyX9+nTR4sWLdIff/yhTp06ycnJSUOGDFH//v0VGBiobt26qWPHjhX2a2dnp8DAwGL9BgUFadOmTTp8+LDuueceSZKvr68lHEuy7EvNzc2tVEC+9957de+996qgoEC//PKLfv31Vx08eFDnzp2Tu7v7Na9vNBot3zdq1EhNmza1bC245557tHbtWhUWFurYsWP69ddfdfjwYf3888/Fbpe17t2766WXXlJYWJhCQ0N133336d5771VgYGC5NVTmfrj11lsl/SeIFvHy8lJubm65fXt7e6tr165KSUmxBOSUlBSFhITI2dlZP/30k06dOqXx48cXO3f37t3l5uamr776yhKQpasBvSLXe39UVnXuG8DWCMgAUIdCQ0M1adIkZWRkyNXVVTt37tQTTzxxzev9/vvvysrKUvv27ctsz8rKUuvWrfXvf/9br776qtatW6c333xTTZo00SOPPKJp06bJ3r70rrrff/9dZrNZXbp0KbPfzMxMS0B2cXEp1lbUX2Fh4TXrLzruX//6l95++21dunRJt99+uzp27GhZvb0WZ2fnUue33lbwxhtvaNWqVcrOzlbz5s3Vvn17ubi46MKFC2X2ZzQa9eqrr+rNN9/Ua6+9ppUrV8rDw0Njx47VyJEjy7xOZe6HooBc1nhd632Iw8PD9eyzzyo7O1unTp3STz/9pOjoaMu5JWnu3LmaO3duqesW7Z0u0rx58wrPdb33R1VU9b4BbI2ADAB16L777lPjxo21detWNW7cWN7e3urQocM1r9e4cWP913/9V7Gn1q15e3tLkjp27KjY2Fjl5+fr+++/13vvvaeVK1fKx8fHsoWiZL+33HKL4uPjy+y3ZcuWVbh1FSsKo88++6xCQkLUuHFjSdKQIUOuu+/NmzdrwYIFmjFjhoYMGaKmTZtKkqZNm6a0tLRyr9erVy/LlpJvvvlG8fHxev7559W5c2fLFgprlb0fqqtfv36aN2+ePv74Y/3222+6/fbb1aNHD0lXt7hI0lNPPWW5zFpRMK+smrg/ip75MJlMlmcXLl68WOyY6t43gC3xIj0AqEONGjVScHCwPvroI23ZskUDBgyo1PV69OihkydPqlmzZvL19bV87dy5U6tXr5bBYNCbb76poKAg5efnq1GjRvL399e8efMkSSdPnpSkUqvIPXr00KVLl2Q2m4v1e/jwYS1fvrxGnwL//vvv1bp1aw0ZMsQSxk6fPq1Dhw5VehW6or4bN26scePGWQLYxYsX9f3335fb98KFCzVkyBCZzWa5uLioT58+lg/SqGi8rnU/XI/GjRurT58++vTTT/Xhhx8qLCzMUsNdd92lZs2aKSMjo9i5vby89OKLL+rAgQMV9l3yttTE/VG0d7lovCTphx9+KHWeqt43gK0RkAGgjhW9m8WuXbsqHZAjIiL0pz/9SaNHj1ZiYqK++eYb/etf/9JLL72kFi1ayNHRUT179lRmZqYmTZqk7du3a8eOHXrmmWfUqFEj9enTR9LVVcgzZ85o+/btyszMVGBgoOXt4NauXatdu3YpLi5Ozz77rOzt7S2BpiZ07NhRBw8e1Kuvvqpvv/1W69ev1/Dhw5Wfn1/h3tzK9n3hwgUtWLBAu3bt0ubNmzV8+HCdOXOm3L79/f0t78Tx1Vdfadu2bXruuefk7u6unj17Sro6Xr/88ot27typP/74o1L3w/UKDw/Xl19+qYyMDA0aNMhyucFg0PTp0/Xuu+/queee01dffWXZz37gwIFyt30UKXlbauL+KNqv/c9//lNff/21EhISNGfOHLm6ulqOqc59A9gaWywAoI795S9/UZMmTXT77berVatWlbrOLbfcorffflsvvvii/ud//kcXLlzQHXfcoRkzZlhe8Ne2bVutXLlSy5cv19/+9jeZTCZ16NBBr7/+uu666y5JV4P29u3bNWnSJE2dOlXjxo3Tq6++qqVLl2rVqlU6e/asPD09NWrUqDLfk/d6jB8/XtnZ2YqPj9fy5ct1++2368EHH5SdnZ1WrVpV7AVuVTV48GBlZGTo/fff19q1a+Xp6anAwEA98sgj+uc//6kjR46odevWxa5z3333afHixXr99dc1efJk2dnZqWvXroqPj7e8SG348OHat2+fxo4dqxdeeEFhYWHXvB+uV69evXTrrbfKy8tLd999d7G2qKgoubq6avXq1Xrvvfd0yy23qEuXLlq8eLHuvPPOCvsteVtq4v74f//v/2nhwoVasWKFxo0bp1atWmnevHmWZy6k6t03gK3Zma/1igEAAKrh8uXL6tixo5588kmNGTPG1uUAQKWxggwAqHGpqan6+uuvJYmP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l4KCgrRixQr16tVLPXr00JQpU5STk2PpKyUlRWFhYeratasiIiK0Y8eOYrW8+OKLGj58uIxGo0JDQ/XBBx/Uzg2vx26KuaMaDAaD2rVrd0OMj7mG5856OTY3+N8HVpCB6to4Wcrab+sqak81ntJH/dO3b1+ZzWb97W9/U1JSktzd3Yu1nzp1StOmTdPSpUsVFBSk7OxsTZ48WcuXL9f//M//lOrv+PHjOn36tD7++GOdPn1aw4cP19q1azVu3Dht375dc+bM0YoVK9SlSxd98cUXmjJlitatW6e7775bkrRu3Tq98cYbat26tZYvX67o6GgFBwfLycmpLoajXnj6/T3631MXbV0GaklvHw89GdK27rZf2cJN8PeBgAxU19kj9fqpdaDI008/rd27d2vmzJlasWJFsbamTZsqJSVFf/7zn5WTk6NTp07ptttu0+nTp8vtb9KkSXJ2dlbLli3l5+enX375RZL073//Ww8//LC6d+8uSerTp4+CgoL07rvv6p///KckKSQkRO3atZMkDR48WCtXrtTZs2f1pz/9qTZuer30c9ZF7T9x3tZloJa08nC9+k09336FihGQAeAG16hRIy1ZskSDBw/W66+/rttuu83S5ujoqOTkZL377ruys7NTmzZtlJOTIweH8v88eHh4FLu+2WyWdHV1+dtvv9U777xjaTeZTOrZs2eZ1y06R2Fh4fXfSACoQQRkALgJ/PnPf9a8efP01FNPKSIiwnL5li1b9O9//1vvvPOOWrZsKUmaN2+eDh2q+lPDXl5eCg8P17hx4yyXnThxQs7Oztd/AwCgDvEiPQC4SfTv31+RkZF67733LJdduHBB9vb2cnZ2ltls1hdffKGkpKRqfbzzQw89pPj4eO3du1eSlJaWpoiICCUnJ9fYbQCAusAKMgBcj+ZtGtR5Zs2apT179uj8+at7YAcPHqzvv/9eAwYMkMFg0F133aWRI0fq7bffVn5+fpX67tevny5duqRZs2bpxIkTcnd316hRozRixIgaqR0A6goBGQCqq9BUt6/kLjRd/XCSSjp48GCpy5ycnJSUlGT5uVGjRlq0aFGp46ZOnSpJioiIsGzJ8PPzK9XnggULiv1sfXxJb731VrGfvb29y6wRAGyNLRYAUF1VCKtFzGazcnNzLS9sq+3zAQCqjoCMGpWZmalLly7V+XkvXLigc+fO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gRwdHQnIJZQcG3d3d8u4A0BdIiADQCXY2dnp9ttvV4sWLVRQUFDtfkwmk9LT09W6dWtWRkuwHhtnZ2fGB4DNEJABoAoMBsN1Bbei9zElAJbG2ACoL3iRHgAAAGCFgAwAAABYISADAAAAVtiDDFRR0YcXmEwmy55J/EfRmDA2ZWN8yleVsSk6piF9mAhzR8V4bJSPsalYZcenKvOGnbkhzS5APZCfn6+0tDRblwFAkq+vrxo1amTrMiqFuQOoHyozbxCQgSoqLCzUlStX+KAHwIbMZrMKCwvl4OAge/uGsVuQuQOwrarMGwRkAAAAwErD+LcbAAAAqCMEZAAAAMAKARkAAACwQkAGAAAArBCQAQAAACsEZAAAAMAKARkAAACwQkAGquDs2bOaOHGiunXrJj8/P82fP19XrlyxdVk2d+7cOfXt21e7du2yXLZnzx5FRUXJaDQqKChI69evt2GFdS89PV2jR49Wjx49FBAQoKeeekrnzp2TxNhI0s6dOxUVFaUuXbooICBA8+bNU15enqQbc3yYO0pj3igbc0fF6mzuMAOotEcffdQ8Y8YM86VLl8xHjx41DxgwwBwXF2frsmwqNTXVfP/995vbtGlj/uabb8xms9n8+++/m3v06GH+97//bS4oKDB//fXXZqPRaN6zZ4+Nq60bubm55oCAAPPSpUvNly9fNp87d848duxY8/jx42/6sTGbzeazZ8+afX19ze+//77ZZDKZT58+bR44cKB56dKlN+z4MHcUx7xRNuaOitXl3MEKMlBJv/32m7799ls9+eSTcnFx0Z133qmJEyfq7bfftnVpNpOYmKi///3vmj59erHLP/roI7m7u2v48OFycHCQv7+/wsLCbpqxOnHihNq2batJkyapUaNGuu222zR06FB99913N/3YSFLTpk319ddfKyIiQnZ2dvr99991+fJlNW3a9IYcH+aO4pg3ysfcUbG6nDsIyEAlHT58WO7u7vL09LRc1qpVK504cULnz5+3YWW2c++99+rjjz9W//79i11++PBhtWnTpthlrVu3Vnp6el2WZzN33XWXVq9eLYPBYLls69atat++/U0/NkXc3NwkSYGBgQoLC5OHh4ciIiJuyPFh7iiOeaN8zB3XVldzBwEZqKSLFy/KxcWl2GVFP1+6dMkWJdmch4eHHBwcSl1e1lg5OzvflONkNpv10ksv6fPPP9c//vEPxqaEjz76SF988YXs7e01derUG3J8mDuKY96oHOaOitX23EFABirplltuUW5ubrHLin52dXW1RUn1louLi+VFE0Xy8vJuunHKycnR1KlTtXnzZv373/+Wj48PY1OCs7OzPD099eSTT+rLL7+8IceHuaNybsT7vrqYO66ttucOAjJQSXfffbd+//13nTlzxnLZTz/9JC8vLzVu3NiGldU/bdq00eHDh4tdduTIEd199902qqjuHT16VJGRkcrJydGGDRvk4+MjibGRpB9++EH9+vVTfn6+5bL8/Hw5OjqqdevWN9z4MHdUDo+Nq5g7yleXcwcBGaik//qv/1LXrl31/PPPKycnR8eOHdMrr7yiIUOG2Lq0eqdv3746c+aM3nzzTRUUFOibb77R5s2bFRkZaevS6sQff/yhkSNHqkuXLnrttdfUtGlTS9vNPjaS5OPjo7y8PL344ovKz8/X8ePHtXDhQg0ZMkQhISE33Pgwd1QOjw3mjmupy7nDzmw2m2u4fuCGdebMGcXExGjXrl2yt7dXeHi4/v73vxd7QcXNysfHR/Hx8fLz85MkpaWlaf78+Tp06JCaNm2qiRMnKiIiwsZV1o033nhDCxYskIuLi+zs7Iq17d69+6YemyJHjhzR888/r7S0NDVu3FhhYWGWV+7fiOPD3FE25o3imDuura7mDgIyAAAAYIUtFgAAAIAVAjIAAABghYAMAAAAWCEgAwAAAFYIyAAAAIAVAjIAAABghYAMAAAAWCEgAwAAAFYIyADqnI+Pj3bt2lWt644YMULLli2r4YrKFh0drejoaEmS0WhUampqsfYBAwZo06ZNSk1NldFovGZ/K1eu1JgxY4pdF0DlMG8wb9QlPkkPQJ0r+fGyVTFixAj16NFDU6ZMqYXKANRXzBuoS6wgA6hXli1bphEjRhS7LCgoSAkJCaWOPXDggHr27Kk333yzzON27dolHx8fSVJGRoZ8fHyUlJSkPn36qHPnznrmmWeUmpqqQYMGyWg0auTIkTp37pwkKScnR7Nnz9YDDzygzp07q1evXlq5cqWl759++knjx49X79691bFjR/Xv31+ff/55sXMtWLBA3bt319y5c5Wfn6+FCxcqNDRURqNR/v7+mjdvnlijAK4f8wZqmoOtCwCA6ti3b5/GjBmjGTNmKCoqqtLX2759uz744AMdO3ZM4eHhOnDggOLi4uTo6Khhw4Zp7dq1mjx5shYvXqyMjAxt2LBBjRs31kcffaSpU6cqNDRULVu21JQpUxQcHKzY2FiZzWYtXrxYzz77rPr06WM518WLF/XVV18pLy9Pa9as0Zdffqk1a9aoRYsW2r17tx599FHdf//98vf3r40hAlAC8wYqi4AMoMHZv3+/4uPjNW7cuCr9kZOkxx9/XC4uLmrTpo08PDw0ePBgeXp6SpI6d+6s48ePS5KmTJkig8EgNzc3nTp1Sk5OTpKkzMxMtWzZUqtWrZKnp6fMZrOOHz+uJk2a6PTp08XOFR4erkaNGqlRo0Z66KGHNHjwYDVr1kyZmZnKy8uTq6trqesAqB3MG6gKAjKABufrr7+W0WhUcnKyRo4cqUaNGlX6uu7u7pbvDQaDmjRpYvnZ3t7e8tTl2bNnNX/+fB04cEDe3t7q0KGDJKmwsFCSlJ6erokTJyorK0utWrVS06ZNSz3t2aJFC8v3ubm5iomJ0XfffScvLy+1a9dOZrPZ0h+A2sW8gaogIAOoV+zt7VVQUGD5ubCwUL///nuxY0aNGqXx48crLCxMy5Yt04wZM8q8bnZ2dqn+7ezsKlXHtGnTFBQUpNdee00ODg7Kzs7WunXrJEmnT5/WtGnTFBsbq6CgIEnS1q1b9dFHH5V7rtmzZ+vWW2/Vjh075OTkpMLCQnXv3r1StQCoGPMGahov0gNgE+fOndOpU6eKfV25ckWtWrXSwYMHdfjwYV25ckWrV6/WpUuXil3X0dFRrq6umj9/vl5//XX98MMPkqRWrVrp008/VV5enrKyshQfH1/t+i5cuCBnZ2cZDAadO3dOzz33nCSpoKBAFy9elMlkkouLiyTpyJEjWr58uSQpPz+/zP5ycnLk5OQke3t75eTkaNGiRcrJySn2hxlAxZg3mDfqCgEZgE088cQTCgwMLPb122+/6f7771dYWJhGjRqlXr16KTs7W127di2zD39/f0VFRenpp5/WpUuX9Pe//10XL15UQECAHnvsMQ0aNKja9b3wwgv64IMP1KVLFw0ePFjNmzdXp06ddOjQId1111166qmn9OSTT6pLly6aMmWKIiMj5eTkpEOHDpXZ3+zZs5Wenq4ePXqoX79++uOPPxQUFFTu8QBKY95g3qgrvA8yAAAAYIUVZAAAAMAKARkAAACwQkAGAAAArBCQAQAAACsEZAAAAMAKARkAAACwQkAGAAAArBCQAQAAACsEZAAAAMAKARkAAACwQkAGAAAArPx/w+YOxLTMGaEAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# 2x2 kaaviomatriisi.\n", "# sharex- ja sharey-lisäparametreilla asetetaan kaavioille yhteiset akselit.\n", "fig, axs = plt.subplots(nrows=2, ncols=2, sharex=True, sharey=True)\n", "\n", "fig.suptitle('Miesten ja naisten vertailua', fontsize=12) # Kuvion (figure) otsikko.\n", "\n", "df3['Mies'].plot(kind='barh', ax=axs[0, 0]) # Vasemman yläkulman kaavio.\n", "\n", "df3['Nainen'].plot(kind='barh', ax=axs[0, 1], color='C1') # Oikean yläkulman kaavio; värinä väripaletin toinen väri (C1).\n", "\n", "df3.plot(kind='barh', ax=axs[1, 0], legend='reverse', xlabel='Lukumäärä') # Vasemman alakulman kaavio.\n", "\n", "df3.plot(kind='barh', ax=axs[1, 1], legend=False, xlabel='Lukumäärä', stacked=True) # Oikean alakulman kaavio." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Lisätietoa\n", "\n", "Tämän johdannon jälkeen voit syventää osaamistasi käymällä läpi seitsemänosaisen muistio-sarjan grafiikan perusteista. Aloita muistiosta:\n", "\n", "- [Yksinkertainen pylväskaavio](https://github.com/taanila/kaaviot/blob/master/matplotlib1.ipynb)\n", "\n", "Löydät kaikki muistiot osoitteesta 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": 4 }