{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Päivitetty 2023-12-08 / Aki Taanila\n" ] } ], "source": [ "from datetime import datetime\n", "print(f'Päivitetty {datetime.now().date()} / Aki Taanila')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Matplotlib - osa 2\n", "## Usean arvosarjan pylväskaavio" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Tämä on jatkoa sarjan ensimmäiselle osalle https://nbviewer.jupyter.org/github/taanila/kaaviot/blob/master/matplotlib1.ipynb. Oletan ensimmäisen osan asioiden olevan lukijalle tuttuja.\n", "\n", "**Seaborn** on matplotlibin päälle rakennettu paketti, joka tekee monista vaikeista asioista helppoja. Tässä muistiossa en käytä sitä muuuhun kuin grafiikan tyylimäärittelyyn." ] }, { "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", "sns.set_style('whitegrid')" ] }, { "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
nrosukupikäperhekoulutuspalveluvpalkkajohtotyötovtyöymppalkkattyötehttyötervlomaosakuntosahieroja
0113811.022.0358733.0333NaNNaNNaNNaN
1212922.010.0296315.0213NaNNaNNaNNaN
2313011.07.0198934.01131.0NaNNaNNaN
3413621.014.0214433.03331.0NaNNaNNaN
4512412.04.0218323.02121.0NaNNaNNaN
\n", "
" ], "text/plain": [ " nro sukup ikä perhe koulutus palveluv palkka johto työtov työymp \\\n", "0 1 1 38 1 1.0 22.0 3587 3 3.0 3 \n", "1 2 1 29 2 2.0 10.0 2963 1 5.0 2 \n", "2 3 1 30 1 1.0 7.0 1989 3 4.0 1 \n", "3 4 1 36 2 1.0 14.0 2144 3 3.0 3 \n", "4 5 1 24 1 2.0 4.0 2183 2 3.0 2 \n", "\n", " palkkat työteht työterv lomaosa kuntosa hieroja \n", "0 3 3 NaN NaN NaN NaN \n", "1 1 3 NaN NaN NaN NaN \n", "2 1 3 1.0 NaN NaN NaN \n", "3 3 3 1.0 NaN NaN NaN \n", "4 1 2 1.0 NaN NaN NaN " ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = pd.read_excel('https://taanila.fi/data1.xlsx')\n", "df.head()" ] }, { "cell_type": "code", "execution_count": 4, "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", "
Mies, n = 62Nainen, n = 19
Peruskoulu225
2. aste237
Korkeakoulu157
Ylempi korkeakoulu20
\n", "
" ], "text/plain": [ " Mies, n = 62 Nainen, n = 19\n", "Peruskoulu 22 5\n", "2. aste 23 7\n", "Korkeakoulu 15 7\n", "Ylempi korkeakoulu 2 0" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Lasken eri koulutuksen suorittaneiden lukumäärät sukupuolen mukaan\n", "df1 = pd.crosstab(df['koulutus'], df['sukup'])\n", "\n", "koulutus = ['Peruskoulu', '2. aste', 'Korkeakoulu', 'Ylempi korkeakoulu']\n", "df1.index = koulutus\n", "\n", "# Kikkailen n-arvot otsikoihin\n", "miehet = f'Mies, n = {str(df1[1].sum())}'\n", "naiset = f'Nainen, n = {str(df1[2].sum())}'\n", "sukup = [miehet, naiset]\n", "df1.columns = sukup\n", "\n", "df1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Vaakapylväskaavio\n", "\n", "Dataframen riveistä tulee luokka-akselin luokat/kategoriat (koulutus) ja sarakkeista arvosarjat (sukupuoli). Jos haluat vaihtaa luokka-akselin luokat ja arvosarjat, niin transponoi dataframe **T**-toiminnolla: `df1.T.plot(kind='barh')`" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "df1.plot(kind='barh')\n", "\n", "plt.title('Koulutusjakauma')\n", "plt.xlabel('Lukumäärä')\n", "plt.grid(axis='y')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Hienosäätöä\n", "\n", "Parametri **width** muuttaa pylvään paksuutta ja samalla pylväiden välissä olevaa tyhjää tilaa. Arvo 0 häivyttää pylväät ja arvo 1 laittaa pylväät kiinni toisiinsa.\n", "\n", "Parametri **legend='reverse'** kääntää selitteen järjestyksen. Käännetty järjestys on tässä tapauksessa havainnollisempi." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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FnHkyBF8fHxwdXVly5YtNutFRUURGxuLn58f8H+/ef/vf/+zrnPkyJH7Hiu9bc6cOcP169dt1vv70ERGt1u5ciWBgYEkJyfj6upKgwYNmDRpUprt7jp69Chms5lhw4ZRoUIF4E4Q2L9/P2AbakqVKoWzszODBw/m0UcfZdy4cdYhie+//5569erRvHlzihUrBtwZnoqLi7Pu4279Fy5csO4zJSXFJrBk1d12eOmll3jqqaesbfftt9+mOQ+RjNAcDRHJUUajkVmzZtGhQwdee+01Nm3axIABA1i0aBEuLi40a9aM6Oho5s+fT5UqVejUqRMAjRs3Ztq0abz55pv079+fCxcusGjRIooXL37PY9WvXx83NzemT5/OiBEjuHnzJosWLcLd3d1mvYcffpiTJ09y6NAhatasmaHt6tevz+zZsxk6dCgvvvgiRqORiIgIXF1dadq0aZpa7s7deOuttwgKCuLGjRusWbOGU6dOAaQ7gbRo0aK8+eabDBgwgGXLljFkyBBq1qzJjh07+OSTT/Dw8ODUqVMsWbIEJycnbt26BdzpJfL19WXNmjVUqlSJUqVKsXr1apKSkqzhJKv+/e9/U6JECd59912cnZ1xdnZm586drF+/HsBag0hGqUdDRHJcpUqVCAsLIyYmhjfeeIOQkBAmTpzIoUOHGDRoEIsWLeLZZ5/l448/ts4X+Pe//82MGTOIjY1lwIABfPjhh0yaNOm+l6M+9NBDLFiwALPZzNChQ5k/fz6DBw/G29vbZr2+ffty5coVXn75ZX766acMbVetWjXeffddEhISGDlyJK+88grXr19nxYoVVK5cOU0t9erVY/z48Rw9epT+/fszbdo0Hn30URYtWgTc6alIT+PGjWnVqhVLlizh999/JywsjObNmzNv3jwGDhzIp59+yuDBg+nSpQtHjx61DpdMnz4db29v3nzzTcLCwnj66afp1atX5v6i7tGmixcvxmKxMHz4cMaMGUNsbCxr1qyhePHi1quLRDLKyaKZPSIiWdKlSxfc3d157733HF2KSJ6lHg0RkUz6448/2LBhA6dPn+bJJ590dDkieZrmaIiIZNLXX3/NwoULefrpp+nbt6+jyxHJ0zR0IiIiInajoRMRERGxGwUNERERsRsFDREREbEbTQaVTDGbzaSmpmIwGKy3QRYRkcLFYrFgNptxdnZOc+fd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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ax = df1.plot(kind='barh', figsize=(5, 3), legend='reverse', width=0.7)\n", "\n", "plt.title('Koulutusjakauma')\n", "plt.xlabel('Lukumäärä')\n", "plt.grid(axis='y')\n", "\n", "for container in ax.containers:\n", " ax.bar_label(container, padding=2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Pystypylväskaavio" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "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eTExMQJVVfEwPBARUbnh4uICFxcXocuo8HjagoiIiJTC8EBERERKYXggIiIipTA8EBERkVIYHoiIiEgpDA9ERFRmJDlSoUsokLrWpa54qSYREZUZsUgDU8JicP95qtClyDQx1sPqoZZCl1GuMDwQEVGZuv88FbcS3wpdBpUAT1sQERGRUhgeiIiIVODly5eYOHEi2rRpg3bt2iEgIADZ2dlCl1UqGB6IiIhUYOrUqahcuTLOnTuHffv24cKFC9i2bZvQZZUKhgciIqISevz4MaKiojBz5kzo6uqifv36mDhxInbt2iV0aaWC4YGIiKiE/vnnH+jr66NWrVqyaY0bN0ZiYiLevv38OocyPBAREZVQWloadHV15ablPU5PTxeipFLF8EBERFRClStXxrt37+Sm5T2uUqWKECWVKoYHIiKiEmratClev36NpKQk2bQHDx6gdu3aqFq1qoCVlQ6GByIiohL6v//7P1hbW2PRokVITU3FkydPsG7dOgwaNEjo0koFwwMREZEKBAUFITs7G926dYOjoyM6d+6MiRMnCl1WqeDw1ERERCpQs2ZNBAUFCV1GmVDLloeKNEoXERFReaOW4aEijdJFRERU3qhdeKhoo3QRERGVN2rX5+FTo3RVq1atyPWlUikAIDMzE2KxuFRrBQCxWIwWtaugUunvSin/V0MXEokEMGoJiCoJXY68Gk0AiSS3PgHx2BUDj12R1PbYqclxA9Tz2DUyqgKJmrw+Qst7DfK+SwujIf3UEmXs4MGDWLVqFc6cOSObFhcXh+7du+Ps2bOoXbt2ketnZmbixo0bpVwlERHR58vc3Bza2tqFzle7loeSjtKlqakJc3NziEQiaGholEqNREREnyOpVIqcnBxoahYdD9QuPHw4SlfNmjUBKDdKl0gkKjItERERUcmoXYfJijZKFxERUXmjdn0eACApKQkLFixAZGQkRCIRBgwYgB9++KFMOkASERFR0dQyPBAREZH6UrvTFkRERKTeGB6IiIhIKQwPREREpBSGB6JyTCKR4MmTJ0KXQUQVDMNDKbGzs4O5uTksLS1haWmJ1q1bo1OnTli6dClycnLKtBYnJyesWbNG5dsNDw+HnZ2dyrdbHsXGxsLFxQU2NjawtbXFrFmzkJycXOr7nTZtGn799ddS3486MjExQWRkpNy0/fv3w9zcHLt37y7WNr28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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ax = df1.plot(kind='bar', figsize=(6, 3), rot=0, width=0.7)\n", "\n", "plt.title('Koulutusjakauma')\n", "plt.ylabel('Lukumäärä')\n", "plt.grid(axis='x')\n", "plt.ylim(0, 25)\n", "\n", "for container in ax.containers:\n", " ax.bar_label(container, padding=2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Pinottu (stacked) pylväskaavio\n", "\n", "Pinottu pylväskaavio (**stacked=True**) näyttää arvosarjat samassa pylväässä, jolloin kokonaismäärä on helposti nähtävissä pylvään kokonaispituutena.\n", "\n", "Jos pinottujen pylväiden päälle halutaan lisätä lukuarvot, niin yksi tapa on käyttää **patches**-kokoelmaa, joka sisältää pylväitä kuvaavat suorakulmiot. Suorakulmion mitat saan **get_bbox**-funktiolla. Huomaa, että mahdolliset nollat täytyy blokata pois." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ax = df1.plot(kind='barh', figsize=(5, 3), legend='reverse', stacked=True, width=0.7)\n", "\n", "plt.title('Koulutusjakauma')\n", "plt.xlabel('Lukumäärä')\n", "plt.grid(axis='y')\n", "\n", "for bar in ax.patches:\n", " left, bottom, width, height = bar.get_bbox().bounds\n", " if width>0:\n", " label = '{:.0f}'.format(width)\n", " plt.text(x=left+width/2, y=bottom+height/2, s=label, ha='center', va='center')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Prosentit pinottuna (stacked) pylväskaaviona\n", "\n", "Lasketaan ensin prosentit sisältävä taulukko." ] }, { "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", " \n", "
Peruskoulu2. asteKorkeakouluYlempi korkeakoulu
Mies, n = 6235.48387137.09677424.1935483.225806
Nainen, n = 1926.31578936.84210536.8421050.000000
\n", "
" ], "text/plain": [ " Peruskoulu 2. aste Korkeakoulu Ylempi korkeakoulu\n", "Mies, n = 62 35.483871 37.096774 24.193548 3.225806\n", "Nainen, n = 19 26.315789 36.842105 36.842105 0.000000" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Lasken prosenttitaulukon\n", "df2 = pd.crosstab(df['sukup'], df['koulutus'], normalize='index')*100\n", "\n", "df2.index = sukup\n", "df2.columns = koulutus\n", "df2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Selite ei aina automaattisesti osu mieleiseen paikkaan. Seuraavassa tuunaan selitettä **legend**-funktiolla:\n", "* **ncol**-parametrilla lisään selitteen sarakkeiden määräksi 4, jolloin saan koulutukset vierekkäin.\n", "* Muutamien kokeilujen jälkeen päädyin sijoittamaan selitteen sijaintiin (-0.1, -0.3). Koordinaatiston (0, 0) on kaavion vasemmassa alakulmassa ja (1, 1) on kaavion oikeassa yläkulmassa.\n", "* Lue lisää selitteen muotoilusta: https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.legend.html" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnkAAAFUCAYAAABY0yrUAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABNBklEQVR4nO3deZiN9f/H8ed9zpljxjojYwmRbSiyDRKFUciWhjYSvoUkS9ZBJntUIhRKpahISJQkCv0sYyzZl0j2fR1jlnPO/ftjcmqawWBmDrfX47rmusx97vtzv+/PuZ37NZ97OYZpmiYiIiIiYik2XxcgIiIiIulPIU9ERETEghTyRERERCxIIU9ERETEghTyRERERCxIIU9ERETEghTyRERERCxIIU9ERETEghTyREQAPRdeRKxGIU9EMkzr1q1p3bp1iukXL16kZcuWlC1blh9//DHd1nfw4EFCQkKYM2fOdS03a9YsRo0alW51XHal7U/vZUREUuPwdQEicme5ePEiHTp0YNOmTbz33nvUrVvX1yUxceJEqlatmu7tvvHGG+nepohIWinkiUimiY2NpUOHDmzevJkPPviARx55xNclZagSJUr4ugQRuYPpdK2IZIrLAW/btm1Mnjw5RcD74YcfCA8Pp2LFitSoUYPIyEjOnTvnfX38+PGEhISkaDckJITx48enus45c+YQEhLCwYMHk00PCwsjIiLC++9Dhw4xd+5c77xpWQ5g5cqVPPPMM1SsWJEqVarwyiuvsHfvXu/r/z31evr0aQYPHkydOnUoW7YsVatWpXPnzinW828rVqygbNmy9OvXz3vd4Nq1a3nxxRepUqUKZcuWJSwsjPHjx+PxeIArn7aOiIggLCwsWX2RkZFMnDiRhx9+mPLly9O+fXtOnjzJ7Nmzeeyxx6hYsSJt27ZNVqPb7ebDDz+kcePGPPDAA1SoUIFnn32WVatWXXE7RCTzKeSJSIb79wjeRx99RPXq1ZO9/sEHH/Daa69Rvnx5xo0bR+fOnVm0aBGtW7cmLi4uQ2ubMGECwcHB1KpVi5kzZ5I3b940LXfgwAE6derE/fffz8SJExk2bBh79+6lQ4cO3rD1b6Zp0rFjR/7v//6Pnj178vHHH/PKK6+wcuVKIiMjU13H2rVrefXVV2nUqBHDhw/HMAx27NhB27ZtCQwMZMyYMUycOJFKlSoxYcIEvv/+++ve/u+//56VK1cyfPhw+vXrx8qVK3n++eeZNm0affv2ZcCAAfz+++8MGTLEu8w777zD+++/zzPPPMOUKVMYMmQIZ86coVu3bsTGxl53DSKSMXS6VkQy1OWAFx0dDSRdk/dv586dY+LEiTz11FPJrmErVaoUrVq1Ys6cObRs2TLD6rvvvvtwOp3kzp2bChUqpHm5TZs2ERcXR8eOHcmXLx8ABQoUYMmSJcTGxpI9e/Zk8x8/fpyAgAD69u1LaGgoANWqVePgwYPMmDEj1fY7duxIvXr1ePPNN7HZkv4m37FjBw899BBvv/22d1qNGjX49ddfWbt2LU2aNLmu7U9MTGTChAnkypULgMWLF/Pbb7/x888/U7hwYQC2b9/OvHnzkm3La6+9lmyU0t/fny5durBz504qVqx4XTWISMZQyBORDLVlyxYCAwOZPn06AwYMICIignnz5nlHzDZu3EhCQkKKcBIaGkrBggVZs2ZNhoa8G1W+fHmyZMlCixYtaNiwIbVq1SI0NJQHHngg1fnz5cvH559/DsDhw4f566+/2LNnD+vXrycxMTHZvIcPH6Z9+/aYpskbb7zhDXMAzZo1o1mzZsTHx7N//37++usvtm7ditvtTtFOWhQvXtwb8ACCg4PJnTu3N+ABBAYGcuHCBe/vo0ePBpJOP//111/8+eefLF26FOCGahCRjKHTtSKSoXLlysVnn31GaGgob7/9NufPn6dPnz7eU5qXr7vLkydPimXz5MmTLFzcSgoVKsT06dMpX748X3/9Ne3ataNGjRqMGTMm1dO1AN999x21a9emTp06dO/encWLF+Pv759ivoMHD1K2bFkSExNTXG8YFxfHgAEDqFy5Mk2aNGHkyJEcPHgQh8NxQ8/6+++II0BAQMBVl9m8eTMtWrSgevXqtG3bli+++MIbRPW8QZFbh0KeiGSokJAQSpcuDcADDzxAp06dWLVqFZMnTwbwjiKdPHkyxbInTpwgKCgIAMMwgKSL/i/776nf/7q8zH9DV3ot98ADDzBhwgTWrFnD1KlTqVGjBpMmTUr12X/R0dH07duXxx57jGXLlrFmzRo+++yzVE8RlyxZksmTJ/Piiy8ybdo0Nm3a5H1t+PDhLFq0iLFjx7J+/Xp+/vln3n77bRyOf07MpNZXQLpcLxcTE8NLL71E1qxZWbBgARs2bGD27Nk0b978ptsWkfSlkCcimapTp06UL1+eCRMmsH79esqXL4/T6WT+/PnJ5ouOjubw4cNUqlQJ+GfE6ciRI9551q9ff9V1pbbM3r17OXv2bLL5/n06NK3LTZ06lbCwMBISEnA6nVSvXp2hQ4emWO6yDRs24PF46Nq1K/nz5weSQtjKlSuB5IEyKCgIh8NBp06duPvuuxkwYID3NOi6deuoVq0ajz76KFmzZgWSTomfPn3a28bl+o8ePeptMzExMVlYvFGX++GFF16gZMmS3r5bvnx5iu0QEd/SNXkikqnsdjtvv/02zZo1o1evXsydO5cOHTowYcIE/Pz8qFu3LgcPHuS9996jRIkShIeHA1CrVi3efPNNBg4cSPv27Tl69CgTJkwgW7ZsV1zXgw8+SEBAACNHjqR79+5cvHiRCRMmEBgYmGy+nDlzsm3bNqKionjggQfStNyDDz7IO++8Q+fOnXn++eex2+3MmDEDp9NJnTp1UtRy+Vq9IUOG0Lx5c86fP8/06dPZsWMHQKo3a/j7+zNw4EA6dOjARx99xCuvvMIDDzzAwoUL+eqrryhevDg7duxg4sSJGIbBpUuXgKTR0YoVKzJ9+nSKFClCUFAQ06ZNIy4uzhsMb9S9995L9uzZmTRpEg6HA4fDwaJFi/jmm28AvDWIiO9pJE9EMl2RIkWIiIjg0KFDvP7663Tp0oVBgwYRFRXFyy+/zIQJE2jQoAFffvml9/qwe++9l1GjRnH48GE6dOjAZ599xtChQ6/6yJMcOXIwbtw4PB4PnTt35r333qNTp06ULVs22Xz/+9//OHnyJC+++CJbtmxJ03KlS5dm0qRJxMTE0KNHD1599VXOnj3LJ598QrFixVLUUq1aNSIjI9mwYQPt27fnzTff5O6772bChAlA0ghdamrVqkX9+vWZOHEie/bsISIigkcffZSxY8fSsWNHZs2aRadOnXj66afZsGGD9xTtyJEjKVu2LAMHDiQiIoIyZcrQpk2b63ujrtCnH3zwAaZp0q1bN/r06cPhw4eZPn062bJl895FLSK+Z5i6SlZEJEM8/fTTBAYG8uGHH/q6FBG5A2kkT0Qknf3555/Mnj2bnTt3cs899/i6HBG5Q+maPBGRdLZ06VLGjx9PmTJl+N///ufrckTkDqXTtSIiIiIWpNO1IiIiIhakkCciIiJiQQp5IiIiIhakGy9uUx6PB5fLhc1m836FkYiIiFybaZp4PB4cDkeKb7yxEoW825TL5WLz5s2+LkNEROS2Va5cOZxOp6/LyDAKebepy3953HfffZbeQW8lbrebzZs3U65cOex2u6/LuSOozzOf+jzzqc8zX0JCAtu2bbP0KB4o5N22Lp+itdvt+lDIZOrzzKc+z3zq88ynPs88l/vZ6pc7WTvCioiIiNyhFPJERERELEghT0RERMSCFPJERERELEghT0RERMSCFPJERERELEghT0RERMSCFPJERERELEghT0RERMSCFPJERERELEghT0RERMSCFPJERERELEghT0RERMSCFPJERERELEghT0RERMSCFPJERERELEghT0RERMSCFPJERERELEghT0RERMSCFPJERERELEghT0RERMSCFPJERERELEghT+Q6BAQE+LqEO476PPOpzzOf+lwygsPXBcjNsdvtvi7hjmG327nvvvsyfb2mx41huzPfZ1/1+Z3sZvrc7XFjv0P31Zuh/Tzz3SnHToW829x7S3axZMdJX5chGaR2SDC965eG2S/ByV2+Lkfkyko8ir1uJBHLI9h7bq+vqxG5qlK5SvFktid9XUaGU8i7zR06E8vWw+d9XYZkkOLB2ZL+cXIXHPndt8WIXE2eUgDsPbeX7ae3+7gYkatzGk7I5usqMp6uyRMRERGxIIU8EREREQtSyBMRERGxIIU8EREREQtSyBMRERGxIIU8EREREQtSyBMRERGxIIU8EREREQtSyBMRERGxIIU8EREREQtSyBMRERGxIIU8EREREQtSyBMRERGxIIU8EREREQtSyBMRERGxIIU8EREREQtSyBMRERGxIIU8EREREQtSyBMRERGxIIU8EREREQtSyBMRERGxIIU8EREREQtSyBMRERGxIIU8EREREQtSyBMRERGxIIU8EREREQtSyBMRERGxIIU8EREREQty+LoAufMY5w7h2Dwf4+wBsDnw5A3BVa4pZMn+9+uHcWyeh3FmP9j9cBeqjLtsY7DZU7Z18g/81s+E+It4CpbHVfEpMJL+dnFs+BpP7qJ4ilTN1O2TzLPqqJN3N2VnzzkHAQ6TBoXj6F3hAv4OiFybk/n7/JPNH+c2eChfAh/XOZOirajjfgxYk4vT8TYaFI5jaNXz2Iyk1wZG5aRCnkSaF7uUGZslFuTZ58H9qxvzpAl+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RMSCFPJERERELEghT0RERMSCFPJERERELEghT0RERMSCFPJERERELEghT0RERMSCFPJERERELEghT0RERMSCFPJERERELEghT0RERMSCFPJERERELEghT0RERMSCFPJERERELEghT0RERMSCFPJERERELEghT0RERMSCFPJERERELEghT0RERMSCFPJERERELEghT0RERMSCFPJERERELMjh6wLkxpimCYDb7cbtdvu4mjvD5X5Wf2ce9XnmU59nPvV55rvc15ePpVZlmFbfQotKSEhg8+bNvi5DRETktlWuXDmcTqevy8gwCnm3KY/Hg8vlwmazYRiGr8sRERG5bZimicfjweFwYLNZ98o1hTwRERERC7JufBURERG5gynkiYiIiFiQQp6IiIiIBSnkiYiIiFiQQp6IiIiIBSnkiYiIiFiQQp6IiIiIBSnk3WZOnTrFK6+8QmhoKNWqVWP48OG4XC5fl2UpO3bsoF27dlStWpUaNWrQp08fTp8+DcDvv//OU089RcWKFQkLC2PWrFk+rtZa3G43rVu3JiIiwjtNfZ4xzp49S58+fahWrRpVqlThlVde4fjx44D6PKNs3bqVVq1aERoaSs2aNRk2bBgJCQmA+jwjnD59mscee4w1a9Z4p12rn+fOnctjjz1GhQoVCA8PZ8OGDZlddvoy5bby/PPPmz179jRjY2PN/fv3m40aNTI/+ugjX5dlGZcuXTJr1Khhvvfee2Z8fLx5+vRps3379mbHjh3Ns2fPmlWrVjWnT59uJiYmmitXrjQrVqxo/v77774u2zLGjh1rli5d2uzbt69pmqb6PAM9//zzZufOnc1z586ZFy5cMF999VWzQ4cO6vMM4na7zRo1apifffaZ6Xa7zSNHjpj169c3J0yYoD7PANHR0eajjz5qlipVyly9erVpmtf+PFm9erVZsWJFMzo62kxISDA//fRTs1q1amZsbKwvN+WmaCTvNvLXX38RFRVF7969CQgIoHDhwrzyyit88cUXvi7NMg4fPkzp0qXp3LkzTqeToKAgnnnmGdauXctPP/1EYGAgrVq1wuFwUL16dZo0aaL+TyerVq3ip59+ol69et5p6vOMsWXLFn7//XdGjhxJzpw5yZ49O0OHDqVXr17q8wxy7tw5Tpw4gcfjwfz7i6ZsNhsBAQHq83Q2d+5cevXqxWuvvZZs+rX6edasWTRq1IjKlSvj5+dH27ZtCQoK4ocffvDFZqQLhbzbyO7duwkMDCRfvnzeacWLF+fw4cOcP3/eh5VZR7FixZgyZQp2u907bdGiRdx///3s3r2bUqVKJZu/RIkS7NixI7PLtJxTp04xYMAARo8eTUBAgHe6+jxjbNq0iRIlSvD111/z2GOPUbNmTUaNGkVwcLD6PIMEBQXRtm1bRo0aRbly5ahVqxZFixalbdu26vN0VrNmTRYvXkzDhg2TTb9WP//xxx+Wex8U8m4jFy9eTHYABLy/x8bG+qIkSzNNkzFjxvDLL78wYMCAVPvf399ffX+TPB4PvXv3pl27dpQuXTrZa+rzjHHu3Dl27tzJvn37mDt3Lt9++y3Hjh2jb9++6vMM4vF48Pf3Z+DAgWzcuJEFCxawZ88exo0bpz5PZ8HBwTgcjhTTr9XPVnwfFPJuI1mzZuXSpUvJpl3+PVu2bL4oybJiYmLo2rUr8+fPZ/r06YSEhBAQEEBcXFyy+eLi4tT3N2ny5Mk4nU5at26d4jX1ecZwOp0ADBgwgOzZs5MnTx66d+/OsmXLME1TfZ4BFi9ezKJFi2jZsiVOp5OSJUvSuXNnvvrqK+3nmeRa/WzF90Eh7zZSsmRJzp49y8mTJ73T9uzZQ/78+cmRI4cPK7OW/fv307x5c2JiYvjmm28ICQkBoFSpUuzevTvZvH/88QclS5b0RZmWMW/ePKKioggNDSU0NJQFCxawYMECQkND1ecZpESJEng8HhITE73TPB4PAGXKlFGfZ4AjR45476S9zOFw4Ofnp/08k1yrn0uWLGm590Eh7zZStGhRKleuzIgRI4iJieHAgQN88MEHtGjRwtelWca5c+do06YNlSpV4uOPPyZ37tze1x577DFOnjzJ1KlTSUxMZPXq1cyfP5/mzZv7sOLb348//sj69euJjo4mOjqaxo0b07hxY6Kjo9XnGeShhx6icOHC9O/fn4sXL3L69GnGjBnDo48+SuPGjdXnGaBmzZqcOHGCSZMm4Xa7OXDgABMnTqRJkybazzPJtfq5RYsWzJ8/n9WrV5OYmMjUqVM5deoUjz32mI8rv3GGefk2H7ktnDx5kiFDhrBmzRpsNhvNmjWjV69eyW4UkBv36aefMnLkSAICAjAMI9lrGzZsYPPmzQwfPpxdu3aRO3duXnnlFcLDw31UrTVdfkbeyJEjAdTnGeTYsWOMHDmStWvXEh8fT1hYGAMGDCBnzpzq8wyycuVKxo4dy969e8mRIwdNmzb13smvPs8YISEhfP7551SrVg249ufJvHnzmDhxIseOHaNEiRK8/vrrlC9f3lfl3zSFPBEREREL0ulaEREREQtSyBMRERGxIIU8EREREQtSyBMRERGxIIU8EREREQtSyBMRERGxIIU8EREREQtSyBMRucPs27fP1yWISCZQyBORW9Jbb71FlSpVqFOnDosXL/ZOP3/+PA0bNuT06dMZst41a9Z4v6/4VjJ+/Hhat2590+188cUXDBw4MB0qEpFbncPXBYiI/NeePXv46quv+PHHH9myZQuRkZHe748cM2YMbdu2Tfa9wpJ2GRWOReTWo5E8Ebnl2Gz/fDSZpun9fevWrWzfvp2nnnrqmm0sWrSIRo0aUblyZR5//HE++OAD72shISGsWbPG+/ucOXMICwtL0YZpmgwYMIBGjRpx7NixVOdr3bo148ePB5K+d7d///688MILVKhQgccff5yff/45zeuNjo6mVatWhIaGEhYWxtixY0lISEh1+1auXEmLFi0IDQ2lUaNGfPfdd97Xdu/eTatWrbwjoX379iUmJoa5c+cyefJkoqOjCQ0NBZICdceOHalduzYPPPAADRs25Jdffrlm/4rIrU8hT0RuOffeey/t2rUjPDyct99+m2HDhmGaJkOHDiUyMhLDMK66fFxcHL179yYyMpJ169YxevRoPvroIzZt2pTmGjweD/3792f79u1MmzaNfPnypWm5uXPn8uyzzxIdHU3Hjh3p3r07e/bsueZye/fupV27dtSrV4+VK1fy6aefsnTpUt56660U8+7YsYNOnTrRoUMH1qxZw9ChQxkxYgQrVqwAYPDgwVSvXp2oqChmz57Ntm3bmDVrFk8++SQdO3YkNDSU6OhoALp06UKpUqVYvHgx0dHR1KxZk0GDBqW5n0Tk1qXTtSJyS+ratStdu3b1/j5z5kzKli1LYGAgL774IqdOnSIsLCzZPP/m7+/PN998g8fjoVKlSqxbty7ZCOG19O3bl1WrVvHjjz+SPXv2NC9Xu3ZtGjZsCECzZs2YMWMGP/zwA126dLnqcvPnzyckJIQ2bdoAUKRIEXr27EnXrl3p379/snlnzJhB3bp1qVevHgCVKlXi6aef5osvvuDhhx8mS5YsrFixguLFi1O9enXmzZt3xW2fPHky+fLlwzRNDh06RM6cOTl27Fiat1dEbl0ayRORW96ZM2eYNm0a3bt3Z+TIkVStWpWvv/6axYsXs3z58hTz+/v789VXX+HxeOjZsydVqlShb9++nDt3Ls3rPHr0KBcvXky1/aspWrRost8LFCjAiRMnrrncqVOnKFy4cLJphQoVIi4ujlOnTiWbfujQIRYvXkxoaKj3Z9q0aRw5cgSAsWPHUr58ecaMGUP16tVp3bo1u3fvTnW9O3bsoHnz5jzyyCO8/vrr7Ny5E9M0r2OLReRWpZAnIre8d955h5dffpns2bOze/du7r//fpxOJ6VKlWLXrl0p5o+JieH48eOMHj2alStXMnPmTLZs2cKkSZOApGv+EhMTvfOfOXMmRRsff/wxPXv2ZPDgwRw/fty73H+vkfvvsv8dBTt48CAFChS45noLFizI/v37ky27f/9+nE4nuXLlSjY9f/78PPnkk0RHR3t/Fi1axIcffojH42Hbtm106dKFn376iaVLl3LXXXcRERGRYhuPHTtGt27deO2111i9ejVffPEFjRs3TjGfiNyeFPJE5Ja2ceNGDh8+7A0fRYoUYcOGDVy6dInt27dTpEiRFMtcvHiR9u3bM3/+fEzTJG/evNhsNoKCggAoXrw4ixYtwuVysX//fr755psUbTidTlq1akWpUqUYMGCAd7mTJ0+yevVqTNNk3rx5Ka63W7x4MStXrsTlcvHNN9+wa9cub+1XW2+jRo3Ys2cPn332GQkJCezfv593332XJk2a4HQ6k62jRYsWLFiwgN9++w2Px8O+fft4/vnn+eSTT7DZbAwbNoyxY8cSHx9P7ty5yZIli3fbs2TJQkxMDKZpcvHiRdxuNwEBAQD88ccfvP/++wBXvOFDRG4fCnkicstyu92MGDEi2XPdevXqxZIlS3jkkUcIDQ3l0UcfTbFcvnz5GDduHB999BGVKlWicePGPPjgg7Rt2xaAN954g61bt1K1alW6d+9OixYtUl2/YRiMGDGC6OhoZsyYQbly5ejUqRMRERFUrVqV1atXU79+/WTLhIaG8tFHH1G1alW+/PJLPvzwQ+9p2Kutt1ChQkyZMoVFixbx0EMP0bJlS2rUqEFkZGSKusqXL8+7777Lu+++S5UqVXj++ecJCwujZ8+eQNLp2j179lCzZk0eeughLly4wNChQwGoU6cOZ8+epXLlyuTJk4c+ffrQu3dvKleuTLdu3WjevDl+fn6pjpCKyO3FMHXxhYhIurh8SnTkyJE+rkRERCN5IiIiIpakkCciIiJiQTpdKyIiImJBGskTERERsSCFPBERERELUsgTERERsSB9d+3f3G53sifRi4iIiNxq/Pz8sNvtaZr3jg95pmly9OhRzp496+tSRERERK4pMDCQ/PnzYxjGVee740Pe5YCXN29esmbNes0OExEREfEF0zSJjY31fp/25e/FvpI7OuS53W5vwLvrrrt8XY6IiIjIVV3+runjx4+TN2/eq566vaNvvLh8DV7WrFl9XImIiIhI2lzOLde6l+CODnmX6RStiIiI3C7SmlsU8kREREQsSCHvCtyezP22t8xen9wkj9va67tBbrebAwcO+LqMFNyZ3H+ZvT7JWKY7c9/PzF6fWNcdfePF1dhtBt1mbOCP4zEZvq4SebPz3rMVr2uZsLAwTpw4gcOR9Baapkn27Nlp0qQJvXv3xmbLvPzeunVrqlatSpcuXdK13Tlz5jBhwgSWLl2aru2mC5sdZr8EJ3dl/LrylILmU65rkR07djBq1Ci2bt2Kn58fNWrUICIigty5c2dQkUlee+01SpYsme77ws2y2+xELI9g77m9Gb6uYrmKMfKRkde1TEhICJ9//jnVqlXzTps9ezaDBg2iX79+tGzZ8rrriIiIAGDkyOur5VrWrFnDCy+8wM6dO9O1XUj6XHv11VcJDw9P97ZvhmG3c6hXbxL2Zvz+4yxWjILvvJ3m+QcNGsTixYv57rvvkt1A6HK5aNmyJUFBQUyaNIm6dev6pG8bNWpEx44dadq0aYrX0vP91v6eOoW8q/jjeAxbD5/3dRlXNHjw4GQ7x86dO2nbti0BAQF07drVh5XdIU7ugiO/+7qKFOLi4njppZd4+umnmTx5MhcvXqRv377079+fSZMmZei6z5w5k6Ht34y95/ay/fR2X5eRJh9++CETJ05k3Lhx1KlTx9flCJCwdy9x27b5uowU+vXrx4YNG+jXrx8ffvihd/r48eM5efIkH374oU+vO//+++99tm7R6VpLCQkJoUqVKmzbto2EhATee+896tatS9WqVWnfvj1//fVXsnmHDRtGtWrVePnll5kzZw5hYWHJ2mvdujXjx48HYPfu3bRq1YoqVapQp04d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ULx4cVasWMH58+e5cOECH3300U33681wFiuG/333ZfiPs9jN7z9XcyPHh2vZuHEj8+bNw+12s2zZMpYsWeJ9z6/Fz8+PfPny0a9fP0aNGsX+/fu1v6fj/q6RvCtwe8zrfnbdza7Pbku/A1/fvn0ZP348LVu25OzZsxQuXJhx48Zx3333pTp/uXLl6NSpExEREVy8eJFHH32U+vXre18fO3YsQ4cOpWbNmng8HqpUqcLQoUNTtFO9enWeeuop+vbty7x583jrrbd45513ePLJJ4mNjaVChQp89tln3lMBQ4cOZdy4cXz88ceULVuWp59+mnXr1qVoN2/evPTv358PPviAoUOH8uCDDxIeHs6lS5fSp8Oul8d93c+uu+n12a78JdT/NmfOHA4fPszChQtThOYNGzYAULFiRQYPHpzqs6vefPNNRowYwSeffEKuXLlo2LAh9913H7t27aJmzZqMGzeOsWPHEhkZib+/Pw0bNvTeaNOsWTMGDRrEli1b+PLLL5k6dSojR45kypQpeDweqlWrxsSJE2+uL26A2+O+7mfX3ez67Gl8v1Jjs9kYPXo04eHhdO/enY8//pjJkyczcuRI6tevT0JCAg899BCffvqp91mZV1O8eHG6dOnC4MGDqVy58lU/H0zTpGXLlrRq1QqPx0OhQoVo3bo1o0eP9l6CcZlhGIwYMYKmTZt6R2Hee+893n//ffr3709QUBDPPfcc7du3B+CZZ55h8+bNNG3aFKfTSZs2bbj77rtTrbljx44MGDCAunXrkiNHDrp27cqiRYtuuE9vhul2X9ez69JjfcZVvnT+Zl3v8eFaypQpw5IlSxg2bBh58uTh7bffpmLF6zt+Nm/enEWLFtG3b1+++OIL7e/ptL8b5n9PPN9B4uLi+PPPP7n33nu9KV5ERETSZvz48URFRXkf3yKZI635RadrRURERCxIIU9ERETEgnRNnoiIiNyQW+17qiU5jeSJiIiIWJBCHqR46KGIiIjIrSqtueWODnl+fn4AxMbG+rgSERERkbS5nFsu55gruaOvybPb7QQGBnq/kzNr1qw+eUiriIiIyLWYpklsbCzHjx8nMDDQ+21QV3JHPycPkjrs6NGjnD171teliIiIiFxTYGAg+fPnv+bA1B0f8i5zu93JvjdORERE5FZz+evb0kIhT0RERMSC7ugbL0RERESsSiFPRERExIIU8kREREQsSCFPRERExIIU8kREREQsSCFPRERExIIU8kREREQs6P8BuCQzVw5mGqwAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ax = df2.plot(kind='barh', figsize=(6,3), stacked=True, width=0.7)\n", "\n", "plt.title('Koulutusjakauma')\n", "plt.xlabel('% sukupuolesta')\n", "plt.grid(axis='y')\n", "plt.xlim(0, 100)\n", "plt.legend(loc=(-0.1, -0.3), ncol=4)\n", "\n", "for bar in ax.patches:\n", " left, bottom, width, height = bar.get_bbox().bounds\n", " if width>0:\n", " label = '{:.0f} %'.format(width)\n", " plt.text(x=left+width/2, y=bottom+height/2, s=label, ha='center', va='center')\n", "\n", "#ax.invert_yaxis()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Lisätietoa\n", "\n", "Seuraava osa https://nbviewer.jupyter.org/github/taanila/kaaviot/blob/master/matplotlib3.ipynb käsittelee **histogrammia**" ] } ], "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.11.4" } }, "nbformat": 4, "nbformat_minor": 4 }