{ "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": [ "## 1/7 Yksinkertainen pylväskaavio\n", "\n", "- Jos käytät **pandas*-kirjastoa, niin voin tehdä kaavion **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": [ "### Datan avaaminen\n", "\n", "data1.xlsx sisältää työntekijöiden tietoja." ] }, { "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \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
...................................................
777812213.00.0159844.0434NaN1.01.0NaN
787913311.02.0163813.02121.0NaNNaNNaN
798012712.07.0261234.03331.0NaN1.0NaN
808113522.016.0280834.0333NaNNaNNaNNaN
818223523.015.0218334.04341.0NaNNaNNaN
\n", "

82 rows × 16 columns

\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", "77 78 1 22 1 3.0 0.0 1598 4 4.0 4 \n", "78 79 1 33 1 1.0 2.0 1638 1 3.0 2 \n", "79 80 1 27 1 2.0 7.0 2612 3 4.0 3 \n", "80 81 1 35 2 2.0 16.0 2808 3 4.0 3 \n", "81 82 2 35 2 3.0 15.0 2183 3 4.0 4 \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 \n", ".. ... ... ... ... ... ... \n", "77 3 4 NaN 1.0 1.0 NaN \n", "78 1 2 1.0 NaN NaN NaN \n", "79 3 3 1.0 NaN 1.0 NaN \n", "80 3 3 NaN NaN NaN NaN \n", "81 3 4 1.0 NaN NaN NaN \n", "\n", "[82 rows x 16 columns]" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = pd.read_excel('https://taanila.fi/data1.xlsx')\n", "df" ] }, { "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", "
Lkm
Peruskoulu27
2. aste30
Korkeakoulu22
Ylempi korkeakoulu2
\n", "
" ], "text/plain": [ " Lkm\n", "Peruskoulu 27\n", "2. aste 30\n", "Korkeakoulu 22\n", "Ylempi korkeakoulu 2" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Eri koulutuksen suorittaneiden lukumäärät.\n", "df1 = pd.crosstab(df['koulutus'], 'Lkm')\n", "df1.index = ['Peruskoulu', '2. aste', 'Korkeakoulu', 'Ylempi korkeakoulu']\n", "df1.columns.name = ''\n", "df1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Vaakapylväskaavio\n", "\n", "**Plot**-funktiolla voit luoda eri kaaviolajeja, esimerkiksi pystypylväskaavion **bar** tai vaakapylväskaavion **barh**." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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c3nttde46aabOPLII/f5fKPRKIWFhQwZMoTt27fTrl07UlNTqzw/+OoK5bZt23jjjTeqzHnyySdXud/xxx9fZY+Hkpr6Jp2aFovFWLZsGVlZWUSj0WSPU2e4t8S5u8S5u8S4t8TV9O52HX9fEgrDXeHz9QD6piZNmtCgQQOmTZtGp06d4rd/8skntGjRIv7x/nzDyq732+2ydu1aWrZsWa2vHTVqFGeddRZ9+vRh1qxZXHbZZRx33HFs3ryZrVu3xuOwpKSEzZs306xZs3i0fXPG3r17M378eC6//HIKCgqYMGHCPp/ve++9x913382sWbM45ZRTAJg2bRqffvpplWM//vjjzJ49O/5yffPmzTnuuONYvXp1lfutWbOGZs2aAV/9cygtLY1/rri4eI97iEQilJeXxz/evHlztfZXm9T1f9lEo9E6/xySwb0lzt0lzt0lxr0lLtm7q7GfYxiJROjfvz8PPvgg69evp7Kyknnz5nHeeedV+YaM/bF06VKeffZZYrFY/KXhfv36Vetr09LSaNGiBbfddhv3338/q1evJisri3bt2nHHHXdQUlJCSUkJd955J61btyYnJ2evx4pGo9x77728+uqrzJ8/f5/Pt6SkhEgkQsOGDePPZcaMGZSVlVU5dnp6OgMHDuSkk05izJgxAPTr14+//vWvvPjii8RiMVasWMHUqVPjz71t27YsWbKEDRs2sHPnTn73u9/tMbjbtm3Lm2++yZYtWygpKWHq1KnV2p8kSar/avQHXOfn59OxY0cGDBhA586dmT59OpMnT6Z9+/YJHe/kk0/mtdde4/TTT+e+++7jgQceIDs7e7+O0a9fP0477TTy8/OJRCL84Q9/oKKigry8PHr06EF5eTlPPPEEqan7vpjatm1bhg0bRkFBARs2bNjr883NzWXAgAEMHDiQ0047jYKCAgYNGkRxcTEbN26sctyUlBTGjRvHkiVLmDVrFh07dmTSpElMnTqVzp0784tf/ILLL7+coUOHAnDppZeSnZ3N+eefzznnnEPLli059thjdzvzddddx1FHHUWvXr244IIL6Nmz537tT5Ik1V8pwTff5FZLTZkyhcWLF8d/VI6SIxaLsXTpUsYu2s67a7Yc1MfucOz3eGH4GQf1MQ+kXbvr1KmTL7HsB/eWOHeXOHeXGPeWuJreXXWP76/EkyRJEmAYSpIk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srOz439uueWWZI9VqxUXF3POOedQWFgYv+29997j4osvJjs7m549e/L0008nccLaa3e7u+OOOzjllFOqnINPPfVUEqesPT788EOuuuoqunTpQm5uLrfeeivFxcWA59y+7G13nnN7t3DhQi6++GJycnLIzc3l7rvvZufOnUAtOO8CqZquuOKKYNSoUcH27duD1atXB3369AmmTp2a7LFqvfvuuy8YPXp0sseoM5YsWRKcffbZwUknnRQsWrQoCIIg+OKLL4IuXboETz75ZFBeXh689dZbQXZ2dvDee+8ledraZXe7C4IguOiii4K5c+cmcbLaaceOHUFubm4wadKkoLS0NCguLg6GDBkSXHfddZ5z+7C33QWB59zebNq0KcjKygrmzJkTxGKxYMOGDcF5550XTJo0qVacd14xVLWsWrWKxYsXc8stt5CRkUGrVq244YYb+NOf/pTs0Wq9ZcuWccoppyR7jDph3rx53Hzzzdx0001Vbn/llVdo3LgxAwcOJDU1lW7duvHTn/7U8+9r9rS7srIyPvroI8/B3Vi3bh0/+MEPuPHGG0lPT6dJkyZceumlvP32255z+7C33XnO7V3Tpk1566236Nu3LykpKXzxxReUlpbStGnTWnHeGYaqlo8//pjGjRvTokWL+G1t27Zl3bp1bNmyJYmT1W6VlZUsX76cBQsW0KNHD3784x/z61//mi+//DLZo9VK3bt353/+53/o3bt3lds//vhjTjrppCq3tWvXjg8//PBgjler7Wl3H374IRUVFUyePJkf/ehH5OXl8eijj1JZWZmkSWuPNm3a8NhjjxGNRuO3vfzyy3To0MFzbh/2tjvPuX1r1KgRAGeeeSY//elPadasGX379q0V551hqGrZtm0bGRkZVW7b9fH27duTMVKdUFxcTPv27cnLy2P+/PnMmjWLf/3rX77HcA+aNWtGamrqt27f3fnXsGFDz72v2dPuSkpK6NKlC4MGDeL111/ngQceYObMmUybNi0JU9ZeQRAwceJE/va3vzFmzBjPuf3wzd15zlXfK6+8whtvvEEkEmH48OG14rz79r9FpN047LDD2LFjR5Xbdn18+OGHJ2OkOuHoo4+u8hJARkYGt9xyC5dccglbt26N/1ej9i4jI4OSkpIqt+3cudNzrxpyc3PJzc2Nf/zDH/6QK6+8kvnz53PNNdckcbLaY+vWrdx2220sX76cJ598kszMTM+5atrd7jIzMz3nqqlhw4Y0bNiQW265hYsvvphBgwYl/bzziqGq5cQTT+SLL75g48aN8dv++c9/cswxx3DEEUckcbLa7cMPP+S3v/0tQRDEbysrKyMSiZCenp7EyeqWk046iY8//rjKbf/4xz848cQTkzRR3fHqq68ya9asKreVlZXRsGHDJE1Uu6xevZp+/fqxdetWnnnmGTIzMwHPuerY0+485/bu3Xff5T//8z8pKyuL31ZWVkZaWhrt2rVL+nlnGKpavv/973Pqqacybtw4tm7dypo1a3j44Yfp379/sker1Ro3bsyf/vQnHnvsMSoqKli3bh0PPPAAF110kWG4H8455xw2btzI9OnTKS8vZ9GiRTz//PP069cv2aPVekEQcO+997Jw4UKCIODvf/87M2bM4NJLL032aEn35ZdfcuWVV5KTk8Pjjz9O06ZN45/znNu7ve3Oc27vMjMz2blzJw8++CBlZWUUFRVx//33079/f/Ly8pJ+3qUEX7+UIe3Fxo0bueuuuygsLCQSiXDhhRdy8803V3nzsb5t8eLFTJgwgY8++ogGDRrQp08fbrnlFho0aJDs0Wq1zMxMZsyYQdeuXYGvvrt77NixfPTRRzRt2pQbbriBvn37JnnK2umbu5s1axZPPPEEGzZs4Oijj+aqq65i4MCBSZ4y+Z544gnuu+8+MjIySElJqfK5v//9755ze7Gv3XnO7d0//vEPxo0bx7JlyzjiiCP46U9/Gv8O72Sfd4ahJEmSAF9KliRJUsgwlCRJEmAYSpIkKWQYSpIkCTAMJUmSFDIMJUmSBBiGkiRJChmGkiRJAgxDSZIkhQxDSZIkAYahJEmSQoahJEmSAPg/qYTNHgecVhkAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "df1.plot(kind='barh')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Kaavion muotoilua\n", "\n", "- Yhden arvosarjan kaavioissa selite on usein tarpeeton, joten piilotetaan se **legend**-parametrilla.\n", "- Kaavion otsikoksi (**title**) 'Koulutusjakauma'.\n", "- Arvoakselin otsikoksi (**xlabel**) 'Lukumäärä'.\n", "- Tyylimäärittelystä tullut vaakasuuntainen taustaviivoitus (**grid**) on tarpeeton." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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Xh533HEHxx13HG+//TaffPIJM2bMoE2bNv/nY0tHE8NQkkqgR48eJCQkMG7cOJYuXUpCQgKxsbG89dZbxbbLzMxk7dq1JCUlAf+7svX//t//C2+zdOnSfb7Wnvb59ttv2bx5c7HtfnmrtqT7TZkyhZSUFPLz84mNjaVJkyYMHjx4t/12+eSTTygqKqJPnz6cfPLJwM/htmDBAqB4hFaqVImYmBh69OjBqaeeyqBBg8K3aP/1r3/RuHFjLr/8co477jjg59v1OTk54WPsmn/dunXhYxYUFBQLzNLatQ633norZ599dnjtPv74493eh3Qs8zOGklQCgUCAJ554guuvv5577rmHWbNm0bVrV8aNG0eZMmVo3rw5a9asYfTo0dSqVYvWrVsD0LRpU4YOHcqDDz5Ily5dWLduHePGjeP444/f62tdeOGFlCtXjmHDhtGvXz+2bt3KuHHjqFixYrHtTjzxRLKysli8eDH16tUr0X4XXnghTz75JL169eKWW24hEAgwffp0YmNjadas2W6z7Prs4aOPPkqbNm3YsmUL06ZNY8WKFQB7/IaVsmXL8uCDD9K1a1cmTZpEz549qVevHu+++y5/+ctfqFmzJitWrGDChAlERUXx008/AT9fhU1MTGTatGmcddZZVKpUiZdffpnt27eHY7K0fv/731O+fHkmTpxITEwMMTExvPfee7z++usA4RmkY51XDCWphM466ywGDBhAdnY2DzzwAL179+aRRx5h8eLFdO/enXHjxvGHP/yBP//5z+HPu/3+979n+PDhrF27lq5du/LSSy8xePDgff54mRNOOIExY8ZQVFREr169GD16ND169KBOnTrFtuvcuTMbNmzgj3/8I59//nmJ9jv33HOZOHEieXl53H333dx5551s3ryZyZMnU6NGjd1mady4MQ899BCffPIJXbp0YejQoZx66qmMGzcO+PlK4J40bdqUFi1aMGHCBL755hsGDBjA5ZdfztNPP023bt147bXX6NGjBzfeeCOffPJJ+PbxsGHDqFOnDg8++CADBgzgvPPO47bbbtu/f1B7WdPx48cTDAbp27cv9913H2vXrmXatGkcf/zx4e8+l451UUE/cStJ+oUbb7yRihUr8txzz0V6FEmHmFcMJUkAfPfdd8yYMYMvv/ySM888M9LjSIoAP2MoSQLgo48+YuzYsZx33nl07tw50uNIigBvJUuSJAnwVrIkSZJCDENJkiQBhqEkSZJC/OYT7ZeioiJ27txJdHR0+K+vkiRJh7dgMEhRURExMTG7/a1Jv2QYar/s3LmTzz77LNJjSJKkUqhbty6xsbF7/bphqP2y6/8yateuvc8TS7srLCzks88+o27dugQCgUiPc8Rw3UrPtSs91650XLfSO9hrt+v4+7paCIah9tOu28eBQMB/6UvJtSsd1630XLvSc+1Kx3UrvYO9dr/1MTC/+USSJEmAYShJkqQQw1CSJEmAYShJkqQQw1CSJEmAYShJkqQQw1CSJEmAYShJkqQQw1CSJEmAYShJkqQQw1CSJEmAYShJkqQQw1CSJEmAYShJkqQQw1CSJEmAYShJkqQQw1CSJEmAYShJkqQQw1CSJEmAYShJkqQQw1ClEggEIvK6hUXBiLyuJEnHgphID6AjU9qMT/li3dZD+pq1qpVn9E2Jh/Q1JUk6lhiGKpVvf9jK8rVbIj2GJEk6gLyVLEmSJMAwlCRJUohhKEmSJMAwlCRJUohhKEmSJMAwlCRJUohhKEmSJMAwlCRJUohhKEmSJMAwlCRJUohhKEmSJMAwlCRJUohhKEmSJMAwlCRJUohhKEmSJMAwlCRJUkiJw/CRRx4hOTmZjRs3Fnt+586d3HjjjXTr1o1gMEhKSgozZ8484IP+llatWvHmm2/u8WsHcqYBAwYwYMCAA3KsX8rIyCA+Pv6AHxcO7PuXJElHrxKH4cCBA6lSpQoDBw4s9vzYsWPZsGEDw4cPJyoq6oAPWFLvvPMO1157bcReX5Ik6UhX4jCMi4tj1KhRLFmyhJdffhmAxYsXM2XKFJ5++mkqVqy42z75+fmMHj2a5s2b06hRI7p06cLKlSvDX4+Pj+eVV16hRYsWJCQk0L17dz7//HNuuukmEhMTadOmTXj7sWPH0rNnT3r37k39+vVJSUnhlVdeCR+rpFfF5s+fzwUXXMC7774LQHZ2Nv369aNJkyYkJyfTv39/vv/+e+Dnq3hNmzalf//+NGjQgOeee67YsbKzs2nevDmPP/44wWDwN9/v0qVLufXWW7n44oupW7curVu3ZtmyZbvNGAwGGTRoEK1atWL9+vUAfPDBB7Ru3ZqkpCRatGjBlClTKCoqAvZ8FTM+Pp6MjIzdjp2amsrYsWPDj9esWUN8fDxr1qz5zbWTJElHt/36jGGNGjV46KGHGDlyJF988QUDBgzgvvvuo169envcftSoUcydO5cpU6Ywf/58EhIS6Ny5Mzt27Ahv89Zbb/HKK6/w/vvv869//YuePXsyZMgQ/vnPfxIbG8vEiRPD23744YckJSWxZMkSHn30UQYPHszChQtLPP+8efO4++67eeqpp7jqqqsoKCigc+fOBAIB5syZE47F7t27s3PnTgDWrVtHjRo1WLhwIR06dAgfa/Xq1aSmpnLddddx//33ExUVtc/3u337dnr06EGLFi34+OOPycjI4Mwzz2TEiBHFZiwqKuL+++/niy++4OWXX6Z69eosWrSIfv36cccdd7B48WKeeuopXnzxRaZOnVri9y5JkvRb9vubT2644QauvPLK8FW9jh077nG7YDDI9OnTufvuuznjjDOIi4ujV69eFBQUMHfu3PB2t9xyCxUrVqRatWqcffbZXHnlldSsWZPjjjuOCy+8kOzs7PC28fHx3H777ZQpU4aLL76YFi1a8MYbb5Ro7nnz5tGrVy/S09Np2rQpAJmZmaxevZr09HROOOEETjzxRNLT01mxYgWff/55eN+2bdtSpkwZypcvD/x8pTA1NZVLL72UPn36lOj9lilThldeeYUOHTqQn59PdnY2FStWDF8R3CUtLY358+czdepUKleuDMDMmTNp3rw5LVu2JCYmhvPPP5+uXbsyffr0Er13SZKkkogpzU533nknb7zxBn379t3rNjk5OWzbto2+ffsSHf2//iwoKCgWe7+8BR0IBKhQoUL4cXR0NMFgMPz4d7/7XbHXOOWUU/jiiy9KNPPChQs5//zzmTVrFi1btgRg48aNVKpUKRx8AOXLl6dixYpkZ2dTpUoVAKpVq1bsWJmZmSQnJ/Phhx9y1113UaFChd98v4FAgIyMDLp06cK2bduoVasWMTExxd4f/HyFcuvWrXz88cfF5jzvvPOKbXf66acXW0dJkqT/q1KF4a7w+WUA/VqlSpWIi4tj8uTJ1K9fP/z8t99+S/Xq1cOP9+cbVn59dW3NmjWccsopJdq3f//+XHbZZbRq1Yrp06dz0003cdppp7Fp0yby8vLCcZibm8umTZuoWrVqONp+PWPLli0ZMWIEN998M+np6Tz11FO/+X4//fRTBg8ezPTp06lTpw4AkydP5rvvvit27BdeeIFXX32V9PR0GjRoQLVq1TjttNNYtWpVse1Wr15N1apVgZ//Ofzy9nxOTs5e1yE6OpqCgoLw402bNpVo/SRJ0tHvoP0cw+joaNq2bcvIkSNZt24dRUVFzJo1i6uvvrrYN2Tsj2XLlvHGG29QWFjIvHnz+PDDD2nTpk2J9i1TpgzVq1dn4MCBDB8+nFWrVlG3bl1q1arFww8/TG5uLrm5uTzyyCOceeaZJCUl7fNYgUCAoUOH8sEHHzB79uzffL+5ublER0dTtmzZ8HuZOnUq+fn5xY4dGxtLx44dOeeccxg0aBAAbdq04aOPPuLdd9+lsLCQrKwsJk2aFH7vNWvWJDMzk/Xr17N9+3aeeeaZvQZ3zZo1mT9/Plu2bCE3N5dJkyaVaP0kSdLR76D+gOu0tDQSEhLo0KEDDRo0YMqUKYwZM4batWuX6njnnXceH374IRdeeCHDhg3jiSeeIDExcb+O0aZNGxo2bEhaWhrR0dE8++yz7Ny5kxYtWtCsWTMKCgp48cUXiYn57YupNWvWpHfv3qSnp7N+/fp9vt/k5GQ6dOhAx44dadiwIenp6aSmppKTk8OGDRuKHTcqKorHH3+czMxMpk+fTkJCAqNHj2bSpEk0aNCAO++8k5tvvpnu3bsD0L59exITE7n22mu54oorOOWUUzj11FP3OHO3bt046aSTaN68Oddddx0pKSn7tX6SJOnoFRX89YfcDlNjx45l8eLF4R+Vo8goLCxk2bJlDFm0jaWrtxzS1z7/1BN5p88lh/Q1D6Rda1e/fn0CgUCkxzliuG6l59qVnmtXOq5b6R3stSvp8f0r8SRJkgQYhpIkSQop1XclR0Lv3r0jPYIkSdJRzSuGkiRJAgxDSZIkhRiGkiRJAgxDSZIkhRiGkiRJAgxDSZIkhRiGkiRJAgxDSZIkhRiGkiRJAgxDSZIkhRiGkiRJAgxDSZIkhRiGkiRJAiAm0gPoyFSj6vHsKDy0r1mrWvlD+4KSJB1jDEOVyvA2CQQCgUP+uoVFQQLRUYf8dSVJOhZ4K1mlUlh4iC8XhhiFkiQdPIahJEmSAMNQkiRJIYahJEmSAMNQkiRJIYahJEmSAMNQkiRJIYahJEmSAMNQkiRJIYahJEmSAMNQkiRJIYahJEmSAMNQkiRJIYahJEmSAMNQkiRJIYahJEmSAMNQkiRJIYahJEmSAMNQkiRJIYahJEmSAMNQkiRJIYahJEmSAMNQkiRJIYahJEmSAMNQkiRJIYahJEmSAMNQkiRJIYahJEmSAMNQkiRJIYahJEmSAMNQkiRJIYahJEmSAMNQkiRJIYahJEmSAMNQkiRJIYahJEmSAMNQkiRJIYahJEmSAMNQkiRJIYahJEmSAMNQkiRJIYahJEmSAMNQkiRJIYahJEmSAMNQkiRJIYahdAiVK1cu0iMckVy30nPtSs+107EoJtID6MgUCAQiPcIRJxAIULt27UiPccRx3UrPtSu9SK9dYVGQQHRUxF5fxy7DUKWSNuNTvli3NdJjSNJRp1a18oy+KTHSY+gYZRiqVL79YSvL126J9BiSJOkA8jOGkiRJAgxDSZIkhRiGkiRJAgxDSZIkhRiGkiRJAgxDSZIkhRiGkiRJAgxDSZIkhRiGkiRJAgxDSZIkhRiGkiRJAgxDSZIkhRiGkiRJAgxDSZIkhRiGkiRJAgxDSZIkhRzVYRgfH09GRkax52bMmEHdunX585//XKpjDhgwgAEDBhyI8YrJyMggPj7+gB8XICUlhZkzZx6UY0uSpKNHTKQHOJSee+45JkyYwJgxY2jWrFmkx5EkSTqsHNVXDHcJBoM89thjvPTSS0ydOrVYFGZnZ9OvXz+aNGlCcnIy/fv35/vvvwd+vorXtGlT+vfvT4MGDXjuueeKHTc7O5vmzZvz+OOPEwwGyc/PZ/To0TRv3pxGjRrRpUsXVq5cGd5+6dKl3HrrrVx88cXUrVuX1q1bs2zZsj3OO2jQIFq1asX69esB+OCDD2jdujVJSUm0aNGCKVOmUFRUBOz5KuaerpYCpKamMnbs2PDjNWvWEB8fz5o1a/ZzVSVJ0tHmqA/DgoIC+vfvz2uvvcb06dOpW7dusa917tyZQCDAnDlzePfddwHo3r07O3fuBGDdunXUqFGDhQsX0qFDh/C+q1evJjU1leuuu47777+fqKgoRo0axdy5c5kyZQrz588nISGBzp07s2PHDrZv306PHj1o0aIFH3/8MRkZGZx55pmMGDGi2LxFRUXcf//9fPHFF7z88stUr16dRYsW0a9fP+644w4WL17MU089xYsvvsjUqVMPwQpKkqRjxVEfhg8++CDr1q0jLi5ut8/ZZWZmsnr1atLT0znhhBM48cQTSU9PZ8WKFXz++efh7dq2bUuZMmUoX7488POVwtTUVC699FL69OkD/HyVb/r06dx9992cccYZxMXF0atXLwoKCpg7dy5lypThlVdeoUOHDuTn55OdnU3FihXDVwR3SUtLY/78+UydOpXKlSsDMHPmTJo3b07Lli2JiYnh/PPPp2vXrkyfPv1gLp0kSTrGHPWfMUxISGDEiBEsWLCAHj16cN5553HllVcCsHHjRipVqhQOPoDy5ctTsWJFsrOzqVKlCgDVqlUrdszMzEySk5P58MMPueuuu6hQoQI5OTls27aNvn37Eh39v94uKCggOzubQCBARkYGXbp0Ydu2bdSqVYuYmBiCwWCxY69bt46tW7fy8ccf07Jly/Cc5513XrHtTj/9dLKzsw/cQkmSpGPeUR+GN998M7GxsVx22WV07dqVtLQ0zjrrLOLj4znttNPYtGkTeXl54TjMzc1l06ZNVK1aNRxtUVFRxY7ZsmVLRowYwc0330x6ejpPPfUUlSpVIi4ujsmTJ1O/fv3wtt9++y3Vq1fn008/ZfDgwUyfPp06deoAMHnyZL777rtix37hhRd49dVXSU9Pp0GDBlSrVo3TTjuNVatWFdtu9erVVK1aFYDo6Gh27NgR/lpOTs5e1yM6OpqCgoLw402bNpV0KSVJ0lHuqL+V/Et9+/alfv369OrVi82bN1O3bl1q1arFww8/TG5uLrm5uTzyyCOceeaZJCUl7fU4ZcqUIRAIMHToUD744ANmz55NdHQ0bdu2ZeTIkaxbt46ioiJmzZrF1VdfzcqVK8nNzSU6OpqyZcsCsGzZMqZOnUp+fn6xY8fGxtKxY0fOOeccBg0aBECbNm346KOPePfddyksLCQrK4tJkybRpk0bAGrWrElmZibr169n+/btPPPMM7vF7C41a9Zk/vz5bNmyhdzcXCZNmnQgllaSJB0FjqkwjI6OZuTIkezcuZN+/foRFRXFs88+y86dO2nRogXNmjWjoKCAF198kZiY376YWrNmTXr37k16ejrr168nLS2NhIQEOnToQIMGDZgyZQpjxoyhdu3aJCcn06FDBzp27EjDhg1JT08nNTWVnJwcNmzYUOy4UVFRPP7442RmZjJ9+nQSEhIYPXo0kyZNokGDBtx5553cfPPNdO/eHYD27duTmJjItddeyxVXXMEpp5zCqaeeuseZu3XrxkknnUTz5s257rrrSElJ+b8vrCRJOipEBX/9ITdpHwoLC1m2bBlDFm1j6eotkR5Hko465596Iu/0uSTSY5TKrj8j6tevTyAQiPQ4R5SDvXYlPf4xdcVQkiRJe2cYSpIkCTAMJUmSFGIYSpIkCTAMJUmSFGIYSpIkCTAMJUmSFGIYSpIkCTAMJUmSFGIYSpIkCTAMJUmSFGIYSpIkCTAMJUmSFGIYSpIkCTAMJUmSFGIYSpIkCYCYSA+gI1ONqsezozDSU0jS0adWtfKRHkHHMMNQpTK8TQKBQCDSY0jSUamwKEggOirSY+gY5K1klUphoZcL91dhYSFZWVmu3X5y3UrPtSu9SK+dUahIMQylQ+inn36K9AhHJNet9Fy70nPtdCwyDCVJkgQYhpIkSQoxDCVJkgQYhpIkSQoxDCVJkgQYhpIkSQoxDCVJkgQYhpIkSQoxDCVJkgQYhpIkSQoxDCVJkgQYhpIkSQoxDCVJkgQYhpIkSQoxDCVJkgQYhpIkSQoxDCVJkgQYhpIkSQoxDCVJkgQYhpIkSQoxDCVJkgQYhpIkSQoxDCVJkgQYhpIkSQoxDCVJkgQYhpIkSQoxDCVJkgQYhpIkSQoxDCVJkgQYhpIkSQoxDCVJkgQYhpIkSQoxDCVJkgQYhpIkSQoxDCVJkgQYhpIkSQoxDCVJkgQYhpIkSQoxDCVJkgQYhpIkSQoxDCVJkgQYhpIkSQoxDKVDqFy5cpEe4YjkupWea1d6rl3puG6lV6ZMmUiPQFQwGAxGeggdOQoLC1m2bBn169cnEAhEehxJko4aBTsLiY7ioPz5WtI/v2MO+CvrmJA241O+WLc10mNIknRUqFWtPKNvSqSwsDCicxiGKpVvf9jK8rVbIj2GJEk6gPyMoSRJkgDDUJIkSSGGoSRJkgDDUJIkSSGGoSRJkgDDUJIkSSGGoSRJkgDDUJIkSSGGoSRJkgDDUJIkSSGGoSRJkgDDUJIkSSGGoSRJkgDDUJIkSSGGoSRJkgDD8KhXWFjI6tWrIz2GJEk6AhiGh8iKFSu4/fbbadSoEcnJydx3333k5OQc9Ne96667+Otf/3rQX0eSJB35DMNDYPv27dxxxx0kJibyj3/8g7fffpvNmzdz//33H/TX3rRp00F/DUmSdHQwDA+BtWvXcu6559KrVy9iY2OpVKkS7du3Z8mSJSXaPy8vjwceeIArr7yS+vXrc8kllzBx4sTw19977z1atWrFBRdcwFVXXcX48eMBGDRoEJmZmTz77LN0794dgFWrVtG9e3caN25Ms2bNGDVqFPn5+Qf+TUuSpCNOTKQHOBbUqFGD559/vthz7733Hueff36J9n/yySdZs2YNr7/+OieccAJz5syhT58+XHXVVVSvXp17772XSZMm0bhxY7KysujYsSMXX3wxQ4YMYdWqVTRq1IjevXuzbds2OnXqRKtWrRg9ejQ5OTn06dOHoqIi+vfvfzDeuiRJOoIYhodYMBjk6aef5u9//zvTpk0r0T69e/cmEAhQvnx51q1bR1xcHADff/891atXp2zZsrz++usUFRWRlJTEv/71L6Kjd78YPHfuXPLz87n77ruJiorilFNOoW/fvvTp08cwlCRJhuGhlJeXx8CBA1m+fDnTpk0jPj6+RPtt3LiRIUOGkJWVxemnn06dOnUAKCoqomzZsvzlL39h/Pjx9O/fn7y8PFq0aMEDDzxAhQoVih0nOzubnJwcGjZsGH4uGAxSUFDAxo0bOemkkw7cm5UkSUccw/AQWbVqFV26dOHUU0/l9ddfp3LlyiXet2/fvqSkpPDCCy8QExPDpk2bePXVV4GfY/P7779n5MiRAHzxxRfcfffdTJw4kbS0tGLHOfnkkznzzDP529/+Fn4uLy+PjRs37tc8kiTp6OQ3nxwCP/74I7fddhtJSUm88MIL+x1hubm5lC1blkAgQE5ODo899hgABQUFbN26lS5duvDWW28RDAapVq0a0dHRVKpUCYDY2Fhyc3MBaNasGVu3buX5558nPz+fLVu2kJaWxl133UVUVNSBfdOSJOmIYxgeAjNnzmTt2rW8++67XHDBBSQmJoZ/7ZKYmMibb765x/2HDh3K7NmzSUpKonXr1lSvXp3atWvz1VdfUb16dcaMGcOkSZNISkri6quv5sILL6RTp04AXH/99cyYMYMOHTpQvnx5pkyZQkZGBpdeeimXX3450dHRTJgw4VAsgyRJOsxFBYPBYKSH0JGjsLCQZcuWMWTRNpau3hLpcSRJOiqcf+qJvNPnEgoLCwkEAgf8+Lv+/K5fv/4+j+8VQ0mSJAGGoSRJkkIMQ0mSJAGGoSRJkkIMQ0mSJAGGoSRJkkIMQ0mSJAGGoSRJkkIMQ0mSJAGGoSRJkkIMQ0mSJAGGoSRJkkIMQ0mSJAGGoSRJkkIMQ0mSJAGGoSRJkkJiIj2Ajkw1qh7PjsJITyFJ0tGhVrXykR4BMAxVSsPbJBAIBCI9hiRJR42CnYVER0V2Bm8lq1QKC71cuL8KCwvJyspy7faT61Z6rl3puXal47qVXmFhIV9kLY/0GIahdCj99NNPkR7hiOS6lZ5rV3quXem4bqVXUFAQ6REMQ0mSJP3MMJQkSRJgGEqSJCnEMJQkSRJgGEqSJCnEMJQkSRJgGEqSJCnEMJQkSRJgGEqSJCnEMJQkSRJgGEqSJCnEMJQkSRJgGEqSJCnEMJQkSRJgGEqSJCnEMJQkSRJgGEqSJCnEMJQkSRJgGEqSJCnEMJQkSRJgGEqSJCnEMJQkSRJgGEqSJCnEMJQkSRJgGEqSJCnEMJQkSRJgGEqSJCnEMJQkSRJgGEqSJCnEMJQkSRJgGEqSJCnEMJQkSRJgGEqSJCnEMJQkSRJgGEqSJCnEMJQkSRJgGEqSJCnEMJQkSRJgGEqSJCnEMJQkSRJgGEqSJCnEMJQkSRJgGEqHVLly5SI9whHJdSs91670XLvScd2ObDGRHkBHpkAgEOkRjjiBQIDatWtHeowjjutWeq5d6bl2pXM4rFthUZBAdFREZziSGYYqlbQZn/LFuq2RHkOSpLBa1coz+qbESI9xRDMMVSrf/rCV5Wu3RHoMSZJ0APkZQ0mSJAGGoSRJkkIMQ0mSJAGGoSRJkkIMQ0mSJAGGoSRJkkIMQ0mSJAGGoSRJkkIMQ0mSJAGGoSRJkkIMQ0mSJAGGoSRJkkIMQ0mSJAGGoSRJkkIMQ0mSJAGGoSRJkkKO6TBMSUmhbt26JCYmkpiYSP369bn44osZPnw4RUVFh3SW1NRUxo4de8CPO3PmTFJSUg74cSVJ0tEnJtIDRFp6ejqtW7cOP/7yyy/p1KkT5cqVo0+fPhGcTJIk6dA6pq8Y7kl8fDwNGzYkKyuL/Px8Ro8eTfPmzWnUqBFdunRh5cqVxbZ97LHHaNy4Md27d9/j1blfXgn8+uuv6dixIw0bNqRZs2akpaWRl5e32wxZWVlceOGFTJkyBYBNmzbx4IMPcvHFF9O4cWO6devGf//7XwDWrFlDfHw8a9asCe8/duxYUlNTdztuRkYG8fHxxZ4bMGAAAwYMKNVaSZKko4th+AsFBQVkZGSwaNEikpOTGTVqFHPnzmXKlCnMnz+fhIQEOnfuzI4dO8L7rFq1irlz5zJixIjfPH56ejpNmjRh8eLFzJgxg6ysLF577bVi23z++ed07tyZ/v3706lTJwD69OnDqlWrmDVrFvPmzaNGjRp06tRpj1EpSZJUWt5KTk/n8ccfDz8++eSTuf3227nllltISkpizJgxnHHGGQD06tWLV199lblz59KiRQsArr76asqVK0e5cuV+87Xi4uKYP38+NWvWpEmTJrzxxhtER/+vzZcvX87UqVPp2rUr7dq1A2D16tUsXryYd955h6pVqwJwzz338NZbbzFv3jwSEhIO2FpIkqRj2zEfhg8//HCxzxjusnHjRrZt20bfvn2LxVtBQQHZ2dnhx9WqVSvxaz399NOMHTuWUaNGcffdd5OUlMQjjzzC2WefDcCCBQtITEzk7bff5rbbbiM2NpYNGzYAhOMUIBAIcMopp5CdnW0YSpKkA8ZbyXtRqVIl4uLimDx5MpmZmeFfs2bNon379uHtoqKiwr+Pjo4mPz+/2HE2bdoEQFFREVlZWfTu3Zs5c+bw0UcfcdJJJxX7fF+nTp0YP348ubm54c8lnnbaacDPt6x3KSwsZO3atVStWpVAIAD8HKy/fs1f27XtL2fc27aSJOnYYxjuRXR0NG3btmXkyJGsW7eOoqIiZs2axdVXX13sG1B+qWbNmmzYsIFFixYRDAZ54403+Oabb8LHe+yxx3j66afZsWMHlStXJi4ujkqVKoX3L1OmDMcffzxDhgxh8uTJLF26lGrVqtG0aVMee+wxfvjhB7Zv386TTz5JYWEhzZo146STTqJChQq88847BINBli9fzt/+9rc9znfmmWcSExPDO++8A/x8hXLRokUHeOUkSdKRyjDch7S0NBISEujQoQMNGjRgypQpjBkzhtq1a+9x+7p169KjRw8GDBhAo0aNWLRoUfiziPDzreRvvvmGiy++mIsuuojc3FwGDx6823GaNGlCu3btSEtLY9u2bYwYMYIzzjiDG264gYsuuogvv/ySl156iYoVKxIbG8vgwYN59913SUpKYtiwYdx44417nK9atWrcf//9jB8/nqSkJKZNm7bH2+iSJOnYFBUMBoORHkJHjsLCQpYtW8aQRdtYunpLpMeRJCns/FNP5J0+l0R6jFLZ9edr/fr1wx/9isTxvWIoSZIkwDCUJElSiGEoSZIkwDCUJElSiGEoSZIkwDCUJElSiGEoSZIkwDCUJElSiGEoSZIkwDCUJElSiGEoSZIkwDCUJElS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qaee4quvviIuLo5WrVpx7733EhcXF+nRDmvx8fFMnTqVxo0bAz9/d/eQIUP46quvqFy5Mj179qR169YRnvLw9Ou1mz59Oi+++CLr16+nSpUq3H777XTs2DHCU0beiy++yLBhwyhXrhxRUVHFvvbJJ594zu3Db62d59y+/ec//+Hxxx/ns88+44QTTuCaa64Jf4d3pM87w1CSJEmAt5IlSZIUYhhKkiQJMAwlSZIUYhhKkiQJMAwlSZIUYhhKkiQJMAwlSZIUYhhK0mEgPj6ejIyMUu2bmprK2LFjD/BEe/bQQw/x0EMPAZCYmEhmZmaxr7dq1Yo333yTzMxMEhMTf/N4EydODP/9ubv2lRQ5/oBrSToM/PpvK9kfqampNGrUiN69ex+EySQdS7xiKEmHubFjx5KamlrsuZSUFGbOnLnbtllZWVx44YVMmTJlj9tlZGQQHx8PwJo1a4iPj+evf/0rzZo1o379+gwcOJDMzEyuvfZaEhMTue2228jJyQEgLy+PBx54gCuvvJL69etzySWXMHHixPCxv/nmG7p168Zll11GvXr1aNmyJX//+9+LvdawYcNo2LAh6enp5OfnM3z4cK666ioSExNp0qQJgwcPxusVUuTERHoASdKB8fnnn3PHHXfQv39/2rVrV+L95s2bx+zZs1m9ejXXX389WVlZTJo0iTJlynDTTTfx5z//mTvvvJMnn3ySNWvW8Prrr3PCCScwZ84c+vTpw1VXXcVZZ51F7969ad68OePGjSMYDPLkk0/yyCOP0KxZs/Brbd26lX/+859s376dl156ifnz5/PSSy9RrVo1PvnkE2655RYuv/xymjRpcjCWSNJvMAwl6SiwfPlypk6dSteuXfcrCgE6d+5MuXLlOOecc6hatSo33HAD1atXB6B+/fpkZ2cD0Lt3bwKBAOXLl2fdunXExcUB8P3333PWWWfx7LPPUr16dYLBINnZ2Zx44omsX7++2Gtdf/31xMbGEhsby4033sgNN9zASSedxPfff8/27ds5/vjjd9tH0qFjGErSUWDBggUkJiby9ttvc9tttxEbG1vifStWrBj+fSAQ4MQTTww/jo6ODt/a3bhxI0OGDCErK4vTTz+dOnXqAFBUVATAihUr6NmzJz/88AM1a9akcuXKu90WrlatWvj3P/30E48++ihLlizh5JNPpnbt2gSDwfDxJB16hqEkHeaio6MpKCgIPy4qKmLz5s3FtunUqRPdunXjmmuuYezYsfTv33+P+27atGm340dFRZVojr59+5KSksILL7xATEwMmzZt4tVXXwVg/fr19O3bl3HjxpGSkgLAe++9x5w5c/b6Wg888AAVKlTgH//4B3FxcRQVFdGwYcMSzSLp4PCbTyTpMJGTk8O6deuK/dq5cyc1a9bkyy+/5Ouvv2bnzp08//zzbNu2rdi+ZcqU4fjjj2fIkCFMnjyZpUuXAlCzZk0+/PBDtm/fzg8//MDUqVNLPV9ubi5ly5YlEAiQk5PDY489BkBBQQFbt26lsLCQcuXKAfCf//yHZ555BoD8/Pw9Hi8vL4+4uDiio6PJy8tjxIgR5OXlFQtZSYeWYShJh4l+/frRtGnTYr9WrlzJ5ZdfzjXXXEOnTp245JJL2LRpExdccMEej9GkSRPatWtHWloa27Zt45577mHr1q0kJydz6623cu2115Z6vqFDhzJ79mySkpK44YYbqFKlCgkJCXz11VfUqFGD++67j3vvvZekpCR69+5NmzZtiIuL46uvvtrj8R544AFWrFhBo0aN+MMf/sCPP/5ISkrKXreXdPD5cwwlSZIEeMVQkiRJIYahJEmSAMNQkiRJIYahJEmSAMNQkiRJIYahJEmSAMNQkiRJIYahJEmSAMNQkiRJIYahJEmSAMNQkiRJIYahJEmSAPj/57X9D6ljhpIAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "df1.plot(kind='barh', legend=False)\n", "\n", "plt.title('Koulutusjakauma')\n", "plt.xlabel('Lukumäärä')\n", "plt.grid(axis='y')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Hienosäätöä\n", "\n", "- Kaavio sijoitetaan **ax**-muuttujan arvoksi, jotta siihen voidaan viitata myöhemmin.\n", "- Kuvion koko **figsize**-parametrilla.\n", "- Pylväiden pituuksia vastaavat lukumäärät pylväiden viereen **bar_label**-funtiolla.\n", "- **padding**-parametrilla lisätään tyhjää tilaa pylvään ja arvon väliin." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[Text(2, 0, '27'), Text(2, 0, '30'), Text(2, 0, '22'), Text(2, 0, '2')]" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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jIKGSBF4eHjYugSbsMe+7bFnsN++xXjOti5A7k1OTk62LqHUODk5Ua9ePVuXUerssW977BlKp++CQjNOjg6GHkPuTgoackci1xzix/Qrti5DRO4BtbzLM7ubydZliI0oaMgdOfnrFY6mXbZ1GSIicpfTPRoiIiJiGAUNERERMYyChoiIiBhGQUNEREQMo6AhIiIihlHQEBEREcMoaIiIiE0kJyfTu3dvgoKCCA4OZtSoUWRkZACwZcsWnn/+eQIDAwkJCWHu3LkUFhbauGK5EwoaIiJS6nJycujbty8mk4nvvvuODRs2cPHiRcaMGcORI0cYNWoUw4cPJzExkUWLFrF27Vri4uJsXbbcgTIdNHx9fUlISLDatmbNGho0aMDHH398R3NGRUURFRVVEuVZSUhIwNfXt8TnBQgJCWHt2rWGzC0icifS0tKoU6cOERERuLq64uXlRdeuXdm3bx+pqal069aNVq1a4ejoiI+PD23atGHfvn22LlvugF29M+gHH3zA/PnzmTNnDq1atbJ1OSIidqtmzZosXrzYatuWLVuoX78+oaGhhIaGWrbn5OSwfft22rdvX9plSgko0ysaN5jNZt59912WL1/OihUrrEJGamoqw4cPp3nz5gQHBzNixAh++eUX4PoqQ8uWLRkxYgSNGzfmgw8+sJo3NTWV1q1bM3HiRMxmM7m5ucyePZvWrVsTFBREv379OHXqlGX8/v37eeWVV2jRogUNGjSgU6dOHDx48Jb1jh07lnbt2nH27FkAvvrqKzp16kRgYCChoaHExcVZrlfeapXlVqs5AOHh4cTGxloep6Sk4OvrS0pKSjFfVRGRkmE2m5k5cybffPMNY8eOtXouKyuLiIgI3N3d6dWrl20KlL+kzAeNvLw8RowYwaeffkp8fDwNGjSweq5Pnz44OTmxdetWNm/eDMDAgQPJz88HID09nZo1a7J79266d+9u2ffMmTOEh4fz/PPPM2bMGBwcHJg5cybbt28nLi6OnTt34u/vT58+fbh27Ro5OTkMGjSI0NBQvv32WxISEqhRowZTp061qrewsJAxY8bw448/8uGHH1KtWjX27NnD8OHD6du3L3v37uW9995j2bJlrFixohReQRER42RlZTF06FDWr1/PypUrrS4hnzx5km7dupGfn8+KFSsoX768DSuVO1Xmg8abb75Jeno6bm5u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mXGSk5OZPn065t98wHFubi6Ojo64urrasLLSU7t2bY4fP2617b///S+PPfaYjSoy3ldffUV8fLzVttzcXNzd3W1UUck6ffo0YWFhZGVlsXr1anx9fYGyfa7/qOeyfK7379/PP/7xD3Jzcy3bcnNzcXFxoVatWqV6rhU0pEj+9re/0ahRIyZOnEhWVhZnzpxh3rx5dO7c2dalGcbT05OPPvqIxYsXk5+fT1paGtOmTeOFF16wm6DRpk0bzp07R1xcHHl5eezZs4f169cTFhZm69IMYzabmTRpErt378ZsNnPgwAFWrFhB165dbV3aX3bp0iV69uxJYGAgS5YsoXLlypbnyuq5/rOey/K59vX1JScnhxkzZpCbm0tqaipTpkyhc+fOhIaGluq5djD/9sc1kT9x7tw53nnnHRISEnB0dKRjx4688cYbVjdZlTV79+7lvffe46effsLNzY127doxcuRI3NzcbF2aYXx9fVmxYgVNmzYFrv/mTUxMDD/99BOVK1dm8ODBdOrUycZVlqzf9xwfH8+yZcs4e/YsVapUoXfv3vTo0cPGVf51y5YtY/LkyXh4eODg4GD13IEDB8rkub5dz2X1XMP1VYqJEydy+PBhKlSoQPv27S2/fVOa51pBQ0RERAyjSyciIiJiGAUNERERMYyChoiIiBhGQUNEREQMo6AhIiIihlHQEBEREcMoaIiIiIhhFDRERETEMAoaInJP8fX1JSEh4Y72DQ8PJzY2toQrurW33nqLt956CwCTyURiYqLV8+3atePzzz8nMTERk8l02/kWLFhg+aCvG/uK3Av0zqAick/5/duFF0d4eDhBQUEMGTLEgMpE5Fa0oiEiZUZsbCzh4eFW20JCQli7du1NY5OSkmjWrBlxcXG3HJeQkGD5lM+UlBR8fX3597//TatWrQgICGD06NEkJibSoUMHTCYTPXv2JCMjA7j+keTjxo3jmWeeISAggCeeeIIFCxZY5j5x4gQDBgzgqaeeomHDhrRt25ZvvvnG6liTJ0+mSZMmREdHk5uby5QpU3j22WcxmUw0b96cCRMmoJ8T5V7gbOsCRERK25EjR+jbty8jRoygS5cuRd5vx44dbNq0iTNnztCxY0eSkpJYtGgRLi4udOvWjY8//phXX32V6dOnk5KSwurVq6lQoQJbt25l6NChPPvsszz66KMMGTKE1q1bM3fuXMxmM9OnT2f8+PG0atXKcqwrV67w/fffk5OTw/Lly9m5cyfLly/H29ubAwcO8PLLL/P000/TvHlzI14ikRKjoCEiduXo0aOsWLGC/v37FytkAPTp0wcPDw9q165N1apVeeGFF6hWrRoAAQEBpKamAjBkyBCcnJwoX7486enplk/7/eWXX3j00UdZuHAh1apVw2w2k5qaSsWKFTl79qzVsTp27Iirqyuurq68+OKLvPDCC9x///388ssv5OTkUK5cuZv2EbkbKWiIiF3ZtWsXJpOJDRs20LNnT1xdXYu8r6enp+XPTk5OVKxY0fLY0dHRcinj/PnzxMTEkJSUxMMPP4yfnx8AhYWFACQnJzN48GB+/fVXfHx8qFy58k2XQby9vS1/vnr1Ku+88w779u3jgQceoF69epjNZst8InczBQ0RKTMcHR3Jy8uzPC4sLOTixYtWY3r16sWAAQNo3749sbGxjBgx4pb7Xrhw4ab5HRwcilTHsGHDCAkJYcmSJTg7O3PhwgU++eQTAM6ePcuwYcOYO3cuISEhAGzZsoWtW7f+4bHGjRtHpUqV+O6773Bzc6OwsJAmTZoUqRYRW9PNoCJyz8nIyCA9Pd3qKz8/Hx8fH44dO8bx48fJz89n8eLFZGdnW+3r4uJCuXLliImJYenSpezfvx8AHx8ftm3bRk5ODr/++isrVqy44/oyMzNxd3fHycmJjIwM3n33XQDy8vK4cuUKBQUFeHh4APDf//6X999/H4Dc3NxbzpeVlYWbmxuOjo5kZWUxdepUsrKyrIKRyN1KQUNE7jnDhw+nZcuWVl+nTp3i6aefpn379vTq1YsnnniCCxcu0KhRo1vO0bx5c7p06UJkZCTZ2dm88cYbXLlyheDgYF555RU6dOhwx/VNmjSJTZs2ERgYyAsvvECVKlXw9/fnp59+ombNmowaNYqRI0cSGBjIkCFDCAsLw83NjZ9++umW840bN47k5GSCgoL4xz/+waVLlwgJCfnD8SJ3E72PhoiIiBhGKxoiIiJiGAUNERERMYyChoiIiBhGQUNEREQMo6AhIiIihlHQEBEREcMoaIiIiIhhFDRERETEMAoaIiIiYhgFDRERETGMgoaIiIgY5v8DOZaurMI2uNYAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ax = df1.plot(kind='barh', figsize=(5, 3), legend=False)\n", "\n", "plt.title('Koulutusjakauma')\n", "plt.xlabel('Lukumäärä')\n", "plt.grid(axis='y')\n", "\n", "ax.bar_label(ax.containers[0], padding=2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Pystypylväskaavio\n", "\n", "Pienin muutoksin voit toteuttaa edellisen pystypylväskaaviona.\n", "\n", "Huomaa luokka-akselin otsikoiden 0 asteen kääntö (**rot**) ja pysty-akselin rajojen määritys (**ylim**)." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[Text(0, 2, '27'), Text(0, 2, '30'), Text(0, 2, '22'), Text(0, 2, '2')]" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ax = df1.plot(kind='bar', figsize=(6, 3), legend=False, rot=0)\n", "\n", "plt.title('Koulutusjakauma')\n", "plt.ylabel('Lukumäärä')\n", "plt.grid(axis='x')\n", "plt.ylim(0, 35)\n", "\n", "ax.bar_label(ax.containers[0], padding=2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Prosenttien esittäminen" ] }, { "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", " \n", " \n", " \n", " \n", "
f%
Peruskoulu2733.333333
2. aste3037.037037
Korkeakoulu2227.160494
Ylempi korkeakoulu22.469136
\n", "
" ], "text/plain": [ " f %\n", "Peruskoulu 27 33.333333\n", "2. aste 30 37.037037\n", "Korkeakoulu 22 27.160494\n", "Ylempi korkeakoulu 2 2.469136" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Dataframe, jossa prosentit.\n", "df2 = pd.crosstab(df['koulutus'], 'f')\n", "df2['%'] = df2['f'] / df2['f'].sum() * 100\n", "df2.index = ['Peruskoulu', '2. aste', 'Korkeakoulu', 'Ylempi korkeakoulu']\n", "df2.columns.name = ''\n", "df2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Hämmentävän monta merkitystä f-kirjaimella\n", "\n", "Älä hämmenny vaikka esimerkissä **f**-kirjainta käytetään kolmessa eri merkityksessä.\n", "- Minulla on tapana käyttää frekvenssitaulukon frekvenssisarakkeen otsikkona **f**-kirjainta.\n", "- Pythonin muotoillun merkkijonon (**f-string**) aloitusmerkkinä on aina **f**-kirjain.\n", "- Lukumuotoilussa **f**-kirjain tarkoittaa **float**-tyyppistä lukua.\n", "\n", "#### n-arvo\n", "\n", "Tekstien lisäämisessä kannattaa opetella käyttämään muotoiltua merkkijonoa (**f-string**). Muotoillussa merkkijonossa voit aaltosulkujen sisällä viitata muuttujan arvoon tai laskutoimituksen tulokseen. Seuraavassa esimerkissä lasketaan df2:n f-sarakkeen lukujen summa ja muunnetaan tulos merkkijonoksi **str**-funktiolla. Jos muotoiltu merkkijono on heittomerkkien välissä, niin et voi käyttää heittomerkkejä merkkijonon sisällä. Sen sijaan voit käyttää lainausmerkkejä. Toisinpäin: jos muotoiltu merkkijono on lainausmerkkien välissä, niin merkkijonon sisällä pitää käyttää heittomerkkejä lainausmerkkien sijasta.\n", "\n", "#### Prosenttilukujen muotoilu\n", "\n", "Prosenttiluvut muotoillaan muotoilukoodilla **'{:.1f} %'**:\n", "- Muotoilukoodi on aina heittomerkkien tai lainausmerkkien välissä.\n", "- Lukumuotoilu on aaltosulkujen välissä.\n", "- Kaksoispiste on lukumuotoilun aloitusmerkki.\n", "- Desimaalipisteen jälkeinen luku ilmoittaa desimaalien lukumäärän (**1**).\n", "- **f** tarkoittaa **float**-tyyppistä lukua eli liukulukua, jonka voit käytännössä ajatella olevan desimaaliluku.\n", "- Aaltosulun jälkeinen välilyönti ja **%**-merkki lisää prosenttiluvun perään välilyönnin ja **%**-merkin." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[Text(2, 0, '33.3 %'),\n", " Text(2, 0, '37.0 %'),\n", " Text(2, 0, '27.2 %'),\n", " Text(2, 0, '2.5 %')]" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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FncEBQWxa9culi9fblngtG7dOpo2bUrz5s2xtbWlZs2adO/enfDwcDOnTkTE4ty5c7Rp04bk5GTWrFmT7ZqyLVu28Oabb963r/T0dEaNGsW0adOYPXs2LVq0yHEdU6dOpWfPnjg7O3P69Glq1qyJvb091apV49SpUw80Jskbj3zQcHd3Z9myZUyePJl58+axZcsWy75Lly5RokQJS4AAcHZ2xsXFhdjYWMu20qVLZ+ozKiqKKlWqsG3bNhITE4HbC6CuX79Ov3798PLywsvLC29vbxITE4mNjcXGxobIyEheeeUVmjZtyrhx44iJicEwjEx9x8fHc+3atUzJ/NKlS1kuKf7jH//IVKOIiFkSExPp1KkTderUYfHixdn+lcfly5c5c+YM3t7e9+3v448/ZufOnaxdu5YXXnghx3UcPHiQuLg4WrZsCUDFihWJjo7mxo0bHD9+nIoVK+Z8UJJnHvmg8e6772Jvb88///lPunfvTlBQECdPngSgfPnyXL58meTkZEv7pKQkLl++TKlSpSzb/rrYqHnz5syfP5+yZcsSEhICQIkSJXBwcGDJkiVERUVZvtavX0/79u05dOgQoaGhzJgxg59//pnPPvsMX1/fLPUuXryYQYMGERISYlkrUr58ec6dO5epXUxMjKVGa2tr0tLSLPvu9Tflf217+fLle0+giDz21q1bR1xcHJs2baJu3bqZnpdxx511XmXKlMlyfFRUFJ6ensTFxZGQkMDnn3/OxYsXadmyJXXr1iUgIIC6devyzTff3LWG9PR0JkyYwMiRIy3bBg8ezLZt22jUqBFeXl689NJLuThqyS2PfND4s379+uHh4UGfPn24cuUKtWrVokqVKowePZqkpCSSkpIYM2YMzzzzDHXq1LlrP3Z2dtjY2PDxxx/zww8/8N1332FtbU3btm2ZNm0a8fHxZGRksH79elq2bMnZs2dJSkrC2toaR0dH4HYyX758OampqZn6tre3p2PHjlSrVs2y0KpNmzZs376dTZs2kZ6ezrFjx1i4cCFt2rQBoHLlykRFRXHhwgVSUlL45JNP7roSu3LlyuzatYurV6+SlJTEwoULc2NqReQRFhAQwMmTJzl48GCm52VER0db2tSqVYuTJ09afsb9mZeXF9HR0ZQrV46SJUty/Phxjhw5QnR0NL/88gtLly7ll19+uedfqtjY2LB6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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ax = df2['%'].plot(kind='barh', figsize=(5, 3))\n", "\n", "plt.title('Koulutusjakauma')\n", "plt.xlabel(f'Prosenttia, n = {str(df2[\"f\"].sum())}')\n", "plt.grid(axis='y')\n", "plt.xlim(0, 42)\n", "\n", "ax.bar_label(ax.containers[0], padding=2, fmt='{:.1f} %')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Kaavion tallennus\n", "\n", "Kun tallennat kaavion **savefig**-funktiolla, niin tarkkaan ottaen tallennat kuvion (**figure**), jonka sisällä kaavio on. Kuvioon pääsen käsiksi **plt.gcf**-funktiolla (get current figure).\n", "\n", "Ilman parametria `bbox_inches='tight'` osia kaavion reunoilta voi jäädä tallentumatta.\n", "\n", "Tallennusmuoto määräytyy tiedostonimen tarkentimen (esimerkiksi **.png**) perusteella. Mahdolliset tallennusmuodot selviävät komennolla `plt.gcf().canvas.get_supported_filetypes()`" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "image/png": "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VKlC3759CQsL448//rjleH18fOjYsSOdOnXCy8uLsLAwAgICSE5O5ty5cxb92tjYMG7cOGJjY4mOjsbd3Z3p06czb948PD096dOnDx06dKBHjx4AtG/fHg8PD1q3bs3LL79MuXLlKF++fK41d+/enccee4wmTZrw+uuv4+fnd0fzJyIicidsTP9cJFBERUZGsmfPHvO9dLGOrKwsDhw4wNjdaexPuFxg/dYq/wjfBL9YYP393c2a69ati52dnSHnKGiquXCo5sKhmgtHYdZ8J+fSI8hFRETEMAoaIiIiYpi7eteJNfTt29faJYiIiMgd0hUNERERMYyChoiIiBhGQUNEREQMo6AhIiIihrlnFoNK0VK5dAmu5f1k7ztWtYzz7RuJiMg9R0FD7soEf/cCfyBMVrYJO9v8f/aNiIgUfbp1InflVh9UdrcUMkRE7j8KGiIiImIYBQ0RERExjIKGiIiIGEZBQ0RERAyjoCEiIiKGUdAQERERwyhoiIiIiGEUNERERMQwChoiIiJiGAUNERERMYyChoiIiBhGQUNEREQMo6AhIiIihlHQEBEREcMoaIiIiIhhFDRERETEMAoaIiIiYhgFDRERETGMgoaIiIgYRkFDREREDKOgISIiIoZR0BARERHDKGiIiIiIYRQ0RERExDAKGiIiImIYBQ0RERExjIKGPBCKFy9u7RLumGouHKpZxFj21i5A7k12dnbWLiHf7OzsqFmzprXLuCOquXCo5huysk3Y2doUaJ8iNyloyF0JWfkz8WevWLsMEfmXqpZxZvrbHtYuQ+5jChpyV3796wqHky5buwwRESnitEZDREREDKOgISIiIoZR0BARERHDKGiIiIiIYRQ0RERExDAKGiIiImIYBQ0RETE7evQoQUFBeHt74+PjwwcffEBycjIAI0eOxMPDw+Lr2WefpUuXLrn2de3aNcaOHYuvry9dunShffv27N69O89zT5w4ES8vL3x9fdm8ebN5++XLl2nevLm5Drm3KGiIiAgA6enpvP/++3h4ePDjjz+ybt06Ll68yNChQwEYPXo0cXFx5q/IyEgeeeQRQkNDc+1v8uTJ7N+/ny+++IJ58+bRtm1bevToQVJSUo62J0+e5Msvv2TdunUMHz6cUaNGmfdFREQQGBhIqVKlDBm3GOu+Dhqurq7ExMRYbFu5ciW1a9fmiy++uKs+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Fy60QpW5M5lMRERE8P333zNs2LAiPc83/bPme2GeN23axPbt27G1tSU4OPiemOd/1lxU5zk7O5shQ4YQFBREjRo1LPYVxXlW0JB8eeihh7h69arFtpuvS5QoYY2Sbuvxxx/n888/p23bthQvXpzy5cszZMgQtm/fTmpqqrXLu63ixYubF6TdlJ6eXmTnG8DHx4fFixfj7e2Ng4MDderU4b333mP9+vXWLg2A1NRUgoODWbt2LUuXLsXV1bXIz3NuNRf1eYYbv9zKli3LkCFD2LFjR5GfZ8hZs5ubW5Gc5zlz5uDo6EhAQECOfUVxnhU0JF+qVavGxYsXOXfunHnbyZMneeKJJ3j44YetWFnejh49yuTJkzH97QOKMzIysLW1xdHR0YqV5U/16tU5ceKExbb/+7//o1q1alaq6Pa+++47oqOjLbZlZGRQrFgxK1X0P6dPn8bf35/U1FRWrFiBq6srULTnOa+ai+o879+/n1dffZWMjAzztoyMDBwcHKhatWqRnOdb1fzTTz8VyXles2YNe/bswdPTE09PT9atW8e6devw9PQskt/PChqSL08//TTPPfcc48aNIzU1lYSEBD799FPatm1r7dLy5OLiwueff878+fO5fv06SUlJTJo0iTfffPOeCBovv/wy586dIyoqiszMTHbv3s3atWvx9/e3dml5MplMfPzxx+zatQuTyURcXByLFy+mffv2Vq3r0qVLvPfee9SrV48FCxZQqlQp876iOs+3qrmozrOrqyvp6elMmTKFjIwMEhMTmTBhAm3btqVZs2ZFcp5vVbODg0ORnOdvv/2W/fv3ExsbS2xsLC1btqRly5bExsYWye9nG9Pf/9wTuYVz584xevRoYmJisLW15Y033mDw4MEWi9WKmj179jB16lSOHz+Ok5MTLVq0YMiQITg5OVm7tFy5urqyePFi6tevD9x418zYsWM5fvw4pUqVolevXrRp08bKVVr6Z83R0dEsWrSIP/74g8cff5ygoCA6depk1RoXLVrE+PHjKV68ODY2Nhb74uLiiuQ8367mojjPcOOv53HjxnHw4EEefvhhWrVqZX7nTFGc59vVXFTn+e9uPkNj/PjxQNH7uaGgISIiIobRrRMRERExjIKGiIiIGEZBQ0RERAyjoCEiIiKGUdAQERERwyhoiIiIiGEUNERERMQwChoiIiJiGAUNERERMYyChojc8yZOnIiXlxe+vr5s3rzZvP3y5cs0b96c5ORkK1aX0zfffMNrr71GvXr1aNasGV9++WWu7RYtWpTrJ3SK3EvsrV2AiMi/cfLkSb788ku+/fZbDh06xMiRI3n55ZcBiIiIIDAw0OIDyazt+PHjDBs2jKioKOrWrcv+/ft59913qVatGp6engCkpaUxY8YMFi1ahLe3t5UrFvl3dEVDRO5ptrb/+zFmMpnMrw8fPkx8fDzt2rW74z5dXV1ZsmQJzZo1w8PDg7fffptjx47l2nb27Nl4eHjk+pWUlJSj/e+//87169fJzs7GZDJhY2ODnZ2dxScKv/766/z111906NDhjmsXKWr0oWoics+bMWMGy5Ytw9nZmaFDh9KoUSM6dOjAyJEjqVmz5h335+rqioeHB5GRkRQrVozg4GBsbW1ZsGDBv641LS2Nbt26sXfvXuzs7MjKyiIkJITOnTub25w9e5YnnniCyMhI9uzZw5IlS/71eUWsRbdOROSeFxwcTHBwsPn1smXLcHNzw8XFhS5dunD+/Hn8/Pws2txOQEAApUuXBuC1115jzpw5BVJrRkYGTz31FL169cLLy4uffvqJAQMGUL16dRo2bAjAE088USDnEikKFDRE5L5y4cIFlixZQnR0NEOHDsXb25ugoCD8/f2pW7cujRo1ylc/jz/+uPm/7e3tyevi79y5c5k7d26u+77++mvKly9vsS0yMhJHR0deeOEFAF566SVatGjBsmXLzEFD5H6ioCEi95XJkyfTo0cPnJ2dOXHiBG+99RaOjo5Ur16d48eP5zto5Fe3bt3o1q1bvtsnJSXh4uJisc3e3h4HB4cCrUukqNBiUBG5bxw4cICkpCRatmwJQKVKlYiLi+Pq1avEx8dTqVIlK1cIfn5+rF+/nh07dmAymdizZw9ff/01rVq1snZpIobQFQ0RuS9kZWUxbtw4xo8fb942ePBgBg8ezOLFi3nttddo2rQpcOOWxkcffURcXFyh19muXTvS09MZM2YMf/31F+XLl2fUqFH4+voWei0ihUHvOhGRB1JgYCBRUVHWLkPkvqdbJyLywImLi+Oll16ydhkiDwRd0RARERHD6IqGiIiIGEZBQ0RERAyjoCEiIiKGUdAQERERwyhoiIiIiGEUNERERMQwChoiIiJiGAUNERERMcz/A0tmhnwNRSu9AAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ax = df2['%'].plot(kind='barh', figsize=(5, 3))\n", "\n", "plt.title('Koulutusjakauma')\n", "plt.xlabel(f'%, n = {str(df2[\"f\"].sum())}')\n", "plt.grid(axis='y')\n", "plt.xlim(0, 43)\n", "\n", "ax.bar_label(ax.containers[0], padding=2, fmt='{:.1f} %')\n", "\n", "# Tallennus.\n", "plt.gcf().savefig('testi1.png', bbox_inches='tight')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Lisätietoa\n", "\n", "Tässä muistiossa kukin kaavio sisältää vain yhden arvosarjan. Seuraavassa osassa perehdytään usean arvosarjan kaavioihin:\n", "\n", "- [Usean arvosarjan pylväskaaviot](https://github.com/taanila/kaaviot/blob/master/matplotlib2.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 }