{ "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 1\n", "## Yksinkertainen pylväskaavio" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* Jos käytän pandas-kirjastoa, niin voin tehdä kaavion suoraan 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 voin 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", "* Joissain tapauksissa tarvitaan 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 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", "\n", "# Grafiikan tyylimäärittely, joka sisältää taustaviivoitukset (grid)\n", "# Muita tyylivaihtoehtoja ovat 'darkgrid', 'dark', 'white' ja 'ticks'\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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \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": [ "# Lasken 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", "Teen äsken luomastani dataframesta vaakapylväskaavion **plot**-funktiolla. Plot-funktiolla voin 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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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "df1.plot(kind='barh')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Kaavion muotoilua\n", "\n", "* Mielestäni yhden arvosarjan kaavioissa selite on tarpeeton, joten piilotan sen **legend**-parametrilla\n", "* Kaavion otsikoksi (**title**) annan 'Koulutusjakauma'\n", "* Arvoakselin otsikoksi (**xlabel**) annan 'Lukumäärä'\n", "* Poistan tyylimäärittelystä tulleen vaakasuuntaisen taustaviivoituksen (**grid**)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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/fqMYY0aNXjooYcYOXIkX3zxBQMGDOC+++6jXr16e9x+1KhRzJ07lylTpjB//nwSEhLo3LkzO3bsCG/z1ltv8corr/D+++/zr3/9i549ezJkyBD++c9/Ehsby8SJE8PbfvjhhyQlJbFkyRIeffRRBg8ezMKFC0s8/7x587j77rt56qmnuOqqqygoKKBz584EAgHmzJkTjsXu3buzc+dOANatW0eNGjVYuHAhHTp0CB9r9erVpKamct1113H//fcTFRW1z/e7fft2evToQYsWLfj444/JyMjgzDPPZMSIEcVmLCoq4v777+eLL77g5Zdfpnr16ixatIh+/fpxxx13sHjxYp566ilefPFFpk6dWuL3LkmS9Fv2+5tPbrjhBq688srwVb2OHTvucbtgMMj06dO5++67OeOMM4iLi6NXr14UFBQwd+7c8Ha33HILFStWpFq1apx99tlceeWV1KxZk+OOO44LL7yQ7Ozs8Lbx8fHcfvvtlClThosvvpgWLVrwxhtvlGjuefPm0atXL9LT02natCkAmZmZrF69mvT0dE444QROPPFE0tPTWbFiBZ9//nl437Zt21KmTBnKly8P/HylMDU1lUsvvZQ+ffqU6P2WKVOGV155hQ4dOpCfn092djYVK1YMXxHcJS0tjfnz5zN16lQqV64MwMyZM2nevDktW7YkJiaG888/n65duzJ9+vQSvXdJkqSSiCnNTnfeeSdvvPEGffv23es2OTk5bNu2jb59+xId/b/+LCgoKBZ7v7wFHQgEqFChQvhxdHQ0wWAw/Ph3v/tdsdc45ZRT+OKLL0o088KFCzn//POZNWsWLVu2BGDjxo1UqlQpHHwA5cuXp2LFimRnZ1OlShUAqlWrVuxYmZmZJCcn8+GHH3LXXXdRoUKF33y/gUCAjIwMunTpwrZt26hVqxYxMTHF3h/8fIVy69atfPzxx8XmPO+884ptd/rppxdbR0mSpP+rUoXhrvD5ZQD9WqVKlYiLi2Py5MnUr18//Py3335L9erVw4/35xtWfn11bc2aNZxyyikl2rd///5cdtlltGrViunTp3PTTTdx2mmnsWnTJvLy8sJxmJuby6ZNm6hatWo42n49Y8uWLRkxYgQ333wz6enpPPXUU7/5fj/99FMGDx7M9OnTqVOnDgCTJ0/mu+++K3bsF154gVdffZX09HQaNGhAtWrV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", "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", "* Tallennan kaavion ax-muuttujaan, jotta voin viitata siihen myöhemmin\n", "* Määritän koon **figsize**-parametrilla\n", "* Lisään pylväiden pituuksia vastaavat lukumäärät pylväiden viereen **bar_label**-funtiolla\n", "* Käytän apuna **for**-silmukkaa, jolla käyn läpi kaavion pylväät **containers**-kokoelmasta yksi kerrallaan\n", "* **padding**-parametrilla lisään tyhjää tilaa pylvään ja arvon väliin" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "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Vy88PDwYOnSoDSsTEZGyJC0tjTp16hAREYGTkxOurq507dqVUaNGWY3LyMjgjTfeYOzYsTz22GM2qrbk2PWKxq34+vrSpEkTkpKSyM3NZfbs2bRu3ZqgoCD69evHqVOnrMa+++67NG3alIEDB95y9eC3KxXHjx+nR48eNGnShFatWhEZGUlWVtZNNSQlJdGsWTPi4uIAuHDhAm+++SYtWrSgadOmDBgwgP/5n/8BICUlBV9fX1JSUiz7x8bGEh4eftO8CQkJ+Pr6Wm2LiooqE4lZRORuV7NmTRYvXmz1oZRbtmyhfv36VuOmT5+On58fHTp0KO0SDaGg8Rt5eXkkJCSwZ88egoODmTlzJtu3bycuLo6dO3fi7+9Pnz59uHbtmmWf06dPs337dqZOnXrb+aOjo2nevDl79+5lzZo1JCUl8emnn1qNOXLkCH369GHEiBH06tULgKFDh3L69GnWrVvHjh07qFmzJr169bplSBERkbuf2Wxm5syZfPPNN4wdO9ay/cyZM3z++eeMGDHChtWVLF06iY5m4sSJlscPPPAAvXv35uWXXyYwMJA5c+bwyCOPABAREcEnn3zC9u3bCQ0NBeC5557Dw8MDDw+P2x7Lzc2NnTt34uPjQ/Pmzfnss89wdPy/rHf06FFWrFhB//796dKlC3D9L93evXvZuHEjVatWBeCNN95g/fr17NixA39//xJ7LURExHhZWVmMHj2ao0ePsnLlSquV5jVr1mAymahbt64NKyxZdh803n77bat7NG44f/482dnZDBs2zCoM5OXlkZqaanns7e1d5GPNmjWL2NhYZs6cyeuvv05gYCDjx4+3XIPbtWsXJpOJDRs20LNnT1xdXTl37hyAJewAODk5Ub16dVJTUxU0RETuIadPn6Zfv348+OCDrF69msqVK1s9v3XrVvr06WOj6oyhSyd/wMvLCzc3N5YuXUpiYqLla926dXTt2tUyzsHBwfJnR0dHcnNzrea5cOECAIWFhSQlJTFkyBC2bt3K119/zf333291f0SvXr2YN28emZmZlvs6HnroIeD6X84bCgoKSEtLo2rVqpZrfXl5eTcd8/dujP1tjX80VkREStalS5fo2bMngYGBLFmy5KaQceHCBU6cOEGTJk1sVKExFDT+gKOjI507d2bGjBmkp6dTWFjIunXreO6556xuCP0tHx8fzp07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", "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", "for container in ax.containers:\n", " ax.bar_label(container, padding=2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Pystypylväskaavio\n", "\n", "Pienin muutoksin voin 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": { "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", "for container in ax.containers:\n", " ax.bar_label(container, 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": [ "# Luon dataframen, 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": [ "### n-arvo\n", "\n", "Kirjoitan x-akselin otsikon muotoiltuna merkkijonona (**f-string**). Muotoillussa merkkijonossa voin aaltosulkujen sisällä viitata muuttujan arvoon tai laskutoimituksen tulokseen. Tässä tapauksessa lasken df2:n f-sarakkeen lukujen summan ja muunnan tuloksen merkkijonoksi **str**-funktiolla. Jos mutoiltu merkkijono on heittomerkkien välissä, niin en voi käyttää heittomerkkejä merkkijonon sisällä. Sen sijaan voin 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", "Muotoilen pylväiden viereen sijoitettavat prosenttiluvut muotoilukoodilla **'{:.1f} %'** prosenttiluvuiksi yhdellä desimaalilla." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "image/png": "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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'%, n = {str(df2[\"f\"].sum())}')\n", "plt.grid(axis='y')\n", "plt.xlim(0, 42)\n", "\n", "for container in ax.containers:\n", " ax.bar_label(container, padding=2, fmt='{:.1f} %')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Kaavion tallennus\n", "\n", "Kun tallennan kaavion **savefig**-funktiolla, niin tarkkaan ottaen tallennan 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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", "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", "for container in ax.containers:\n", " ax.bar_label(container, 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", "Matplotlib - osa 2 käsittelee useamman arvosarjan pylväskaavioita:\n", "https://nbviewer.jupyter.org/github/taanila/kaaviot/blob/master/matplotlib2.ipynb" ] } ], "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 }