{ "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": [ "## 2/7 Usean arvosarjan pylväskaaviot" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 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" ] }, { "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": "markdown", "metadata": {}, "source": [ "### Vaakapylväskaavio" ] }, { "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": [ "# 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", "# 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": [ "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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NmzYoAMHDmj16tVq1arVv+4beJQQDAEgG3r37i1vb2/NmjVL+/fvl7e3t5ycnLR+/foM60VHRys+Pl5+fn6S/jez9d///te6zv79+/9xW1m1+eOPP3T58uUM691+qja77RYvXix/f3+lpqbKyclJderU0ZgxYzK1S3fgwAGZTCb1799fpUqVknQruO3evVtSxhDq7u4uBwcH9e7dW48//riGDx9uPUX7008/qVatWnrppZdUoEABSbdO1yckJFj7SK//zJkz1j7T0tIyBMz7lX4c3nzzTT311FPWY/f9999n2g8gP+MaQwDIBoPBoClTpqhFixZ65513tHbtWvXo0UOzZs2So6OjAgICFBsbqxkzZqhChQoKDAyUJNWvX18TJkzQ+++/r+7du+vMmTOaNWuWChYseMdt1a5dW66urpo4caIGDhyoa9euadasWXJzc8uwXpEiRRQTE6OoqChVrVo1W+1q166tqVOnqm/fvnrjjTdkMBgUEREhJycnNWjQIFMt6dcejh49Wq1atdLVq1e1fPlyHTlyRJKyvGHFxcVF77//vnr06KH58+erT58+qlq1qjZv3qzPP/9cnp6eOnLkiObMmSM7Oztdv35d0q1ZWF9fXy1fvlzlypWTu7u7li1bppSUFGuYvF//+c9/VKhQIc2dO1cODg5ycHDQli1btGrVKkmy1gDkd8wYAkA2lStXTqGhoYqLi9N7772n4OBgjRo1SlFRUerVq5dmzZqlV155RZ999pn1erf//Oc/mjRpkuLj49WjRw8tWbJEY8aM+cfHyxQuXFgzZ86UyWRS3759NWPGDPXu3VuVK1fOsF7Xrl114cIFvfXWW/r111+z1e7pp5/W3LlzlZSUpEGDBqlfv366fPmyFi5cqPLly2eqpVatWhoxYoQOHDig7t27a8KECXr88cc1a9YsSbdmArNSv359NWrUSHPmzNGJEycUGhqql156SR9++KF69uypL774Qr1791abNm104MAB6+njiRMnqnLlynr//fcVGhqqZ555Rp06dbq3gbrDMZ09e7bMZrMGDBigIUOGKD4+XsuXL1fBggWtd58D+Z2dmStuAQC3adOmjdzc3PTxxx/buhQADxkzhgAASdKff/6p1atX6+jRo3ryySdtXQ4AG+AaQwCAJGn79u0KDw/XM888o65du9q6HAA2wKlkAAAASOJU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CIYAAACQRDAEAACABcEQAAAAkgiGAAAAsCAYItsuXryoPn36qHr16qpVq5bGjRunmzdv2rqsfG/Tpk2qVKmSfH19rT/vvvuurcvK1xISEvTyyy8rMjLSuuznn3/W66+/Ll9fX/n7++uLL76wYYX5V1ZjM3LkSFWuXDnDd2jFihU2rDL/OHLkiLp06aKaNWuqbt26GjJkiBISEiTxnbEVgiGybeDAgSpQoIB27dqlVatWac+ePVq8eLGty8r3Dh06pNdee00HDhyw/kyZMsXWZeVbP/30k9q2batTp05Zl125ckU9evRQixYttG/fPo0bN04TJkzQL7/8YsNK85+sxka69R0aM2ZMhu9Q27ZtbVRl/pGSkqJu3brJ19dXP/zwgzZs2KDLly9r2LBhfGdsiGCIbDl58qSioqL07rvvytXVVU888YT69OmjTz/91Nal5XuHDh1S5cqVbV0GJK1du1bvvPOO3n777QzLv/nmG7m5ualjx45ycHBQnTp11KxZM74/D9GdxiY1NVXHjh3jO2QD8fHxevrpp9W3b185OTnJ3d1dbdu21b59+/jO2BDBENly/Phxubm5qWTJktZlnp6eio+P19WrV21YWf5mMpl0+PBh7dixQw0aNNALL7yg999/X1euXLF1aflSvXr19O2336pJkyYZlh8/flwVK1bMsKxChQo6cuTIwywvX7vT2Bw5ckQ3b97UzJkz9dxzz6lRo0b6+OOPZTKZbFRp/lG+fHktWLBABoPBumzLli169tln+c7YEMEQ2XLt2jW5urpmWJb+Ojk52RYlQbeul6pUqZIaNWqkTZs2KSIiQn/99RfXGNpIiRIl5ODgkGl5Vt8fFxcXvjsP0Z3GJjExUTVr1lRQUJB27typKVOmaNmyZVq4cKENqsy/zGazpk+fru+++07Dhw/nO2NDmb8lQBYKFCig69evZ1iW/rpgwYK2KAmSihcvnuHUiqurq9599121adNGSUlJKlSokA2rQzpXV1clJiZmWJaSksJ3JxeoW7eu6tata31dtWpVderUSZs2bVK3bt1sWFn+kZSUpKFDh+rw4cNavny5vLy8+M7YEDOGyJannnpKly9f1oULF6zLTpw4oVKlSqlw4cI2rCx/O3LkiKZOnSqz2WxdlpqaKnt7ezk5OdmwMtyuYsWKOn78eIZlv//+u5566ikbVYR0W7duVURERIZlqampcnFxsVFF+cupU6fUqlUrJSUladWqVfLy8pLEd8aWCIbIlv/7v/9TtWrVNH78eCUlJen06dOaPXu2WrdubevS8jU3Nzd9+umnWrBggW7evKn4+HhNmTJFLVu2JBjmIi+//LIuXLigxYsXKy0tTXv37tX69evVqlUrW5eW75nNZk2YMEF79uyR2WzWgQMHtHTpUu5KfgiuXLmiTp06yc/PT5988omKFStmfY/vjO3YmW+fagD+wYULFzR69GhFRkbK3t5eLVq00DvvvJPhwmE8fFFRUfrggw907NgxOTs7q2nTpnr33Xfl7Oxs69LyNS8vLy1dulS1atWSdOvu8XHjxunYsWMqVqyY+vTpo8DAQBtXmT/9fWwiIiK0aNEinT17VsWLF1eXLl3UsWNHG1f56Fu0aJEmTpwoV1dX2dnZZXjvwIEDfGdshGAIAAAASZxKBgAAgAXBEAAAAJIIhgAAALAgGAIAAEASwRAAAAAWBEMAAABIIhgCAADAgmAIALmAl5eXIiMj76ttUFCQwsPDc7iirI0YMUIjRoyQJPn6+io6OjrD+02bNtVXX32l6Oho+fr63rW/uXPnWn8ncXpbALbDA64BIBf4+2/juBdBQUGqWbOmgoODH0BlAPITZgwBIJcLDw9XUFBQhmX+/v5as2ZNpnVjYmJUu3ZtLV68OMv1IiMj5eXlJUmKjY2Vl5eXvvzySzVo0EA+Pj4aOnSooqOj1bx5c/n6+qpTp05KSEiQJCUlJem9995Tw4YN5ePjo+eff15z58619n3ixAn17NlTL774oqpWraomTZrou+++y7CtiRMnqkaNGgoLC1NqaqomTZqkxo0by9fXV3Xq1NGYMWPEfAVgOw62LgAAkDN+/fVXdevWTYMHD9brr7+e7XY7d+7Upk2bdPr0abVo0UIxMTGaP3++HB0d1a5dO3322Wfq16+fpk6dqtjYWK1atUqFCxfWN998o/79+6tx48YqV66cgoODFRAQoFmzZslsNmvq1KkaNWqUGjRoYN3WtWvX9OOPPyolJUVLlizRrl27tGTJEnl4eOjAgQN644039NJLL6lOnToP4hABuAuCIQA8Ag4fPqylS5eqR48e9xQKJalr165ydXVVxYoVVaJECbVs2VIlS5aUJPn4+CguLk6SFBwcLIPBoEKFCunMmTNydnaWJJ07d07lypXTvHnzVLJkSZnNZsXFxalIkSI6e/Zshm21aNFCTk5OcnJyUps2bdSyZUs99thjOnfunFJSUlSwYMFMbQA8PARDAHgE7N69W76+vtqwYYM6deokJyenbLd1c3Oz/tlgMKhIkSLW1/b29tZTuxcvXtS4ceMUExOjsmXLqnLlypIkk8kkSTpy5Ij69Omj8+fPy9PTU8WKFct0WtjDw8P65+vXr2v06NHat2+fSpUqpUqVKslsNlv7A/DwEQwBIJezt7dXWlqa9bXJZNLly5czrNO5c2f17NlTzZo1U3h4uAYPHpxl20uXLmXq387OLlt1DBgwQP7+/vrkk0/k4OCgS5cuaeXKlZKks2fPasCAAZo1a5b8/f0lSVu2bNE333xzx2299957Klq0qH744Qc5OzvLZDKpRo0a2aoFwIPBzScAkEskJCTozJkzGX5u3rwpT09PHT16VMePH9fNmze1YMECJScnZ2jr6OioggULaty4cVq4cKH2798vSfL09NS2bduUkpKi8+fPa+nSpfddX2JiolxcXGQwGJSQkKCxY8dKktLS0nTt2jUZjUa5urpKkn7//Xd99NFHkqTU1NQs+0tKSpKzs7Ps7e2VlJSkyZMnKykpKUOQBfBwEQwBIJcYOHCg6tevn+Hn5MmTeumll9SsWTN17txZzz//vC5duqRq1apl2UedOnX0+uuvKyQkRMnJyXrnnXd07do11a1bV2+++aaaN29+3/VNmDBBmzZtkp+fn1q2bKnixYvL29tbx44dU/ny5TVkyBC9++678vPzU3BwsFq1aiVnZ2cdO3Ysy/7ee+89HTlyRDVr1tQrr7yiK1euyN/f/47rA3jweI4hAAAAJDFjCAAAAAuCIQAAACQRDAEAAGBBMAQAAIAkgiEAAAAsCIYAAACQRDAEAACABcEQAAAAkgiGAAAAsCAYAgAAQBLBEAAAABYEQwAAAEiS/h9oHM8DflI4OgAAAABJRU5ErkJggg==", "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. Arvo width=0 häivyttää pylväät ja arvo width=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.\n", "\n", "Kaaviossa on kaksi arvosarjaa (Mies, Nainen). Tämän vuoksi käytetään **for**-silmukkaa arvosarjojen läpikäyntiin liitettäessä lukuarvoja pylväiden viereen." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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fv26xd/f37JmzRpLSkqKZf/+/RZfX1/LDz/84OBq85702s9isVg6duxo2bhxowMry9tu3bplCQgIsMyfP99y+/ZtS1xcnKV///6WgQMH6vOXBerRkAw5e/Yshw4dYvTo0bi5ufHEE08wZMgQPvroI0eXlm8cP34cb29vR5eRb2zatInXXnuNV1991Wb5l19+ibu7Oz179sTZ2ZkGDRrQtm1bfRb/4V7tl5yczC+//KLP4n3ExsZSrVo1hg4diqurK6VKlaJr164cPnxYn78sUNCQDPn1119xd3enfPny1mUeHh7ExsZy48YNB1aWP5jNZk6cOMGePXto2rQp//nPf3jzzTf566+/HF1antWwYUO++uornn/+eZvlv/76K1WrVrVZVqVKFU6dOpWb5eV592q/U6dOkZqayoIFC3jmmWdo1aoV7733Hmaz2UGV5j2VK1dm+fLlGI1G67KdO3dSvXp1ff6yQEFDMuTmzZu4ubnZLLv7OjEx0REl5StxcXF4eXnRqlUrtm/fTkREBH/++afmaNxH2bJlcXZ2TrM8vc9i0aJF9Tn8h3u1X3x8PP7+/gQHB7N3715mzZrF6tWrWbFihQOqzPssFgtz587lm2++Ydy4cfr8ZUHaT6FIOooVK8atW7dslt19Xbx4cUeUlK+UKVPGpmvVzc2N0aNH06VLFxISEihRooQDq8tf3NzciI+Pt1mWlJSkz2EGBQQEEBAQYH1ds2ZNevXqxfbt2+nXr58DK8t7EhISGDt2LCdOnGDNmjV4enrq85cF6tGQDHnqqae4fv06V65csS77/fffqVChAg899JADK8sfTp06xezZs7H87WHJycnJGAwGXF1dHVhZ/lO1alV+/fVXm2W//fYbTz31lIMqyl927dpFRESEzbLk5GSKFi3qoIrypnPnzhEUFERCQgLr16/H09MT0OcvKxQ0JEP+9a9/Ubt2baZOnUpCQgLnz59n8eLFdO7c2dGl5Qvu7u589NFHLF++nNTUVGJjY5k1axYdO3ZU0MikFi1acOXKFVauXElKSgoHDx5ky5YtBAUFObq0fMFisTBt2jQOHDiAxWLh6NGjrFq1iq5duzq6tDzjr7/+olevXvj5+fH+++9TunRp63v6/GWek+Xvv2KJ3MeVK1d46623iIyMxGAw0KFDB1577TWbCVNyb4cOHeLtt9/ml19+oUiRIrRu3ZrRo0dTpEgRR5eW53l6erJq1Srq1asH3LmCZ8qUKfzyyy+ULl2aIUOG0KlTJwdXmXf9s/0iIiL44IMPuHjxImXKlKFPnz707NnTwVXmHR988AHTp0/Hzc0NJycnm/eOHj2qz18mKWiIiIiI3WjoREREROxGQUNERETsRkFDRERE7EZBQ0REROxGQUNERETsRkFDRERE7EZBQ0REROxGQUNERETsRkFDRPIVT09PIiMjs7RtcHAwCxcuzOGK0jd+/HjGjx8PgK+vL1FRUTbvt27dms8//5yoqCh8fX0fuL93333X+tCzu9uK5Ae6M6iI5Cv/vJ12ZgQHB+Pv709ISIgdKhOR9KhHQ0QKjIULFxIcHGyzLDAwkI0bN6ZZ9+TJk9SvX5+VK1emu15kZKT1iZ3R0dF4enry2Wef0bRpU2rVqsXYsWOJioqiXbt2+Pr60qtXL+Li4oA7jxd/4403aNmyJbVq1aJRo0a8++671n3//vvvDBw4kCZNmlCzZk2ef/55vvnmG5tjTZ8+nbp16xIeHk5ycjIzZszgueeew9fXlwYNGjBp0iT0e6LkB86OLkBEJLf99NNP9OvXj1GjRvHCCy9keLu9e/eyfft2zp8/T4cOHTh58iTLli3DxcWFbt268fHHH/PKK68we/ZsoqOjWb9+PQ899BBffvklw4YN47nnnqNSpUqEhITQrFkzFi1ahMViYfbs2UycOJGmTZtaj3Xz5k3++9//kpSUxIcffsi+ffv48MMPKVeuHEePHuXFF1+kefPmNGjQwB5NJJJjFDREpFA5ceIEq1atYsCAAZkKGQB9+/bFzc2NqlWrUrZsWTp27Ej58uUBqFWrFjExMQCEhIRgNBopUaIEFy5csD6h99KlS1SqVImlS5dSvnx5LBYLMTExPPzww1y8eNHmWB06dMDV1RVXV1e6dOlCx44deeSRR7h06RJJSUkUL148zTYieZGChogUKvv378fX15etW7fSq1cvXF1dM7ytu7u79c9Go5GHH37Y+tpgMFiHMq5evcqUKVM4efIkjz/+ON7e3gCYzWYATp06xZAhQ7h8+TIeHh6ULl06zTBIuXLlrH++desWb731FocPH6ZChQp4eXlhsVis+xPJyxQ0RKTAMBgMpKSkWF+bzWauX79us07v3r0ZOHAgbdu2ZeHChYwaNSrdba9du5Zm/05OThmqY/jw4QQGBvL+++/j7OzMtWvXWLduHQAXL15k+PDhLFq0iMDAQAB27tzJl19+ec9jvfHGG5QsWZLvvvuOIkWKYDabqVu3boZqEXE0TQYVkXwnLi6OCxcu2Pykpqbi4eHB6dOn+fXXX0lNTWX58uUkJibabOvi4kLx4sWZMmUKK1as4MiRIwB4eHiwe/dukpKSuHz5MqtWrcpyffHx8RQtWhSj0UhcXByTJ08GICUlhZs3b2IymXBzcwPgt99+45133gEgOTk53f0lJCRQpEgRDAYDCQkJzJw5k4SEBJtgJJJXKWiISL4zYsQIGjdubPNz9uxZmjdvTtu2benduzeNGjXi2rVr1K5dO919NGjQgBdeeIHQ0FASExN57bXXuHnzJgEBAbz00ku0a9cuy/VNmzaN7du34+fnR8eOHSlTpgw+Pj788ssvVK5cmTFjxjB69Gj8/PwICQkhKCiIIkWK8Msvv6S7vzfeeINTp07h7+/Ps88+y19//UVgYOA91xfJS3QfDREREbEb9WiIiIiI3ShoiIiIiN0oaIiIiIjdKGiIiIiI3ShoiIiIiN0oaIiIiIjdKGiIiIiI3ShoiIiIiN0oaIiIiIjdKGiIiIiI3ShoiIiIiN38PwSjuLeTJX12AAAAAElFTkSuQmCC", "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\n", "\n", "Pienin muutoksin edellinen esimerkki vaihdetaan pystypylväskaavioksi." ] }, { "cell_type": "code", "execution_count": 7, "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), 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ään osia kuvaavat suorakulmiot.\n", "- Suorakulmion mitat saan **get_bbox**-funktiolla.\n", "- Jos suorakulmion leveys on 0 (esimerkissä ylemmän korkeakoulun kohdalla ei ole naisia), niin lukuarvoa ei pidä merkitä kaavioon (`if width > 0`).\n", "- Lukuarvo muotoillaan esitettäväksi ilman desimaaleja ja muotoiltu luku sijoitetaan muuttujan **label** arvoksi.\n", "- **plt.text**-funktion parametreilla säädetään tarkasti lukuarvon sijainti sekä keskitys vaaka- ja pystysuunnassa." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "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0yZatGgBwLPPPms/G1KtWjVq1qxJQEAAAA0bNnR4mExgYCDPP/88AA8++CAtWrRg9erVNGrU6KZ1b968mY0bNzJ16lQaN24MQHx8PMeOHWPlypUUKXLlmxDR0dGEhYXx008/2dft2LEjnp6eeHp6AlfOZERGRtKkSRMGDhyYq/4+8sgjrFixgsqVK3P58mWSkpLw8/Nj3759DnUOHz6c7du38/XXX9trWrVqFc2aNaNly5YA3H///fTu3Ztly5bRvXv3m/bdZdJO47l9Ifj6k9nkJX3bROQOZTGbGBSzm99Opjl9W1VLFWHW0yFO347cOW7r660vvPACq1evZtCgQdddJiUlhfT0dAYNGuRwSi4rK4ukpCT7679ecrFYLBQrVsz+2mw2OzzR7p577nHYRtmyZfn5559zVfP27du5//77+eyzz+xv2GfOnMHf39/+hg5QpEgR/Pz8SEpKsj/Zr1SpUg5txcfHEx4ezsaNG3nppZcoVqzYTftrsViIjY2lV69epKenU7VqVTw8PK55Yt/x48e5ePEiW7Zscajzvvvuc1iuQoUKDvvxjpOZjtf387GVrEp2aGeHsRoicuf57WQa+5MvuLqMHF0dKL9u3TqqVKniMG/x4sVMnjyZF154gaioKMaMGQPAa6+9lu915qW4uDimTZvGb7/9xl133UWXLl3o06cPAJcvX2b69OmsX7+eixcvUqVKFYYMGeLwdNk7yW0FjatvpDe6pufv74+3tzfvvfcewcHB9umHDx+mdOnS9te3cqru6niFqxITEylbtmyu1h0yZAhNmjShVatWxMTE8PTTT1O+fHnOnj1LWlqaPWykpqZy9uxZSpYsaQ8Bf6+xZcuWTJ06lWeeeYbo6GjeeOONm/Z37969jB8/npiYGPtT8t577z1+//13h7bfffddPv74Y6Kjo6lXrx6lSpWifPnyHD161GG5Y8eO2R8zbDabHS5HpaSkXHc/mM1msrKy7K/Pnj2bq/13qyxH4jBdOos5aS9eSXsd5mW2meyUbYpIweXv789nn33GkCFDHKavWrXK4cPivz1gABw6dIjevXszduxY2rZtyy+//EK3bt2oXLkyjz32GNOnT2fXrl2sWLGCUqVKsXLlSvr27cvatWspV+7OuzzttI+ZZrOZjh07MmPGDI4fP47NZuOzzz7jiSeecBggeSv27NnD6tWr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tQLg4+PjNm+67thncE2/NRhUbsvVP1ZnUMgQESk4FDRERETEaRQ0RERExGkUNERERMRpFDRERETEaRQ0RERExGkUNERERMRpFDRERETEaRQ0RERExGkUNERERMRpFDRERETEaRQ0RERExGkUNERERMRpFDRERETEaRQ0RHLB19fX1SW4hDv2u1ChQq4uwSXc8VhL/vBwdQHy72SxWFxdQr6xWCzUrFnT1WXkO3fst8VioUZgdUxm9/n7hnw61jYruNl+lSsUNOS2DF+5l5+PX3R1GSJ5qklgSYa2qAEre8Lpg64up+AoUR06LHJ1FeIiChpyWw6fusj+5AuuLkMkTwWULHzll9MH4c+9ri1GpIDQGA0RERFxGgUNERERcRoFDREREXEaBQ0RERFxGgUNERERcRoFDREREXEaBQ0RERFxGgUNERERcRoFDREREXEaBQ0RERFxGgUNERERcRo960TkTnM5Da/Ns8gK6YxRsioAHns+xXwkFkz/e/pldu0nsd3byFVViot88YcPY3fe5TAty2YC4KfOJ1xRksgNKWiI3EFMZ37H84cPMV084zj97FGygzthq1zfRZXJnaLNPRm0uSfD/vpEupkOG+5maFCqC6sSub4CfekkMDCQ2NhYh2krV66kdu3afPjhh7fV5ogRIxgxYkRelOcgNjaWwMDAPG8XICIiglWrVjmlbck75iM78dy5nOyaLR1nWLMxXfgTw7+iawqTO5ZhwNDtxWhS7jJP3ptx8xVEXMCtzmi88847zJ8/n9mzZ9O0aVNXlyPiwFY6kMyKoWC2wM5l9umm80lgs2H5eR3mM79jePhiuycMa7WmYCrQnxXkJlb/4cNv5z2Y9/A5V5cicl1u8b+UYRi8/vrrvP/++yxdutQhZCQlJfHiiy/SqFEjwsPDGTJkCCdPngSunGVo3LgxQ4YMoV69erzzzjsO7SYlJdGsWTMmTpyIYRhkZmYya9YsmjVrRlhYGL169eLIkSP25Xft2sVzzz3Hgw8+SO3atWnfvj179uzJsd7Ro0fTqlUrTpy4cs3122+/pX379oSGhtKiRQuWLFmCzWYDcj7LktPZHIDIyEjmzJljf52YmEhgYCCJiYm3uFclz/ncdSVk/F12BkaJAKwBD5H52Fiy63XBcmgrll835XuJcuewGTB/fxH63n+RIp6Gq8sRua4CHzSysrIY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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": [ "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 säädetään selitettä **legend**-funktiolla:\n", "* **ncol**-parametrilla lisätään selitteen sarakkeiden määräksi 4, jolloin koulutukset sijoittuvat 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.\n", "* Korkeakoulun suorittaneiden miesten lukuarvo on jätetty tilan puutteen takia pois (ìf width>4`)." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnkAAAFUCAYAAABY0yrUAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjYsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvq6yFwwAAAAlwSFlzAAAPYQAAD2EBqD+naQAASwtJREFUeJzt3XmYjfX/x/HnWeaYsc7IGiLbUGQbZCmMLNliSEVCfZFkKTGDTPYoImSJSqhISAiJQr/BGPtOVJax72OMmTnn/v0xOTXNYIaZOdxej+ua63Lu5XO/78+5nft17u1YDMMwEBERERFTsXq6ABERERFJewp5IiIiIiakkCciIiJiQgp5IiIiIiakkCciIiJiQgp5IiIiIiakkCciIiJiQgp5IiIiIiakkCciAui58CJiNgp5IpJu2rVrR7t27ZIMv3r1Km3atKFMmTIsX748zZZ37Ngx/P39WbBgQarmmzdvHqNGjUqzOm642fqn9TwiIsmxe7oAEXmwXL16lc6dO7Njxw4+/vhj6tat6+mSmDx5MlWqVEnzdt977700b1NEJKUU8kQkw0RHR9O5c2d27tzJpEmTePrppz1dUroqXry4p0sQkQeYTteKSIa4EfD27NnD1KlTkwS8H3/8kaCgICpUqECNGjUIDQ3l0qVL7vETJkzA398/Sbv+/v5MmDAh2WUuWLAAf39/jh07lmh4YGAgISEh7n8fP36chQsXuqdNyXwAYWFhvPDCC1SoUIHKlSvzxhtvcPjwYff4/556PX/+PIMHD6ZOnTqUKVOGKlWq0K1btyTL+bd169ZRpkwZ+vXr575ucNOmTbz22mtUrlyZMmXKEBgYyIQJE3C5XMDNT1uHhIQQGBiYqL7Q0FAmT57MU089Rbly5ejUqRNnz55l/vz51KtXjwoVKtChQ4dENTqdTj799FOaNGnCE088Qfny5XnxxRdZv379TddDRDKeQp6IpLt/H8GbNm0a1apVSzR+0qRJvPXWW5QrV47x48fTrVs3VqxYQbt27YiJiUnX2iZOnEju3LmpVasWc+fOJU+ePCma7+jRo3Tt2pXHH3+cyZMnM2zYMA4fPkznzp3dYevfDMOgS5cu/N///R+9e/fms88+44033iAsLIzQ0NBkl7Fp0ybefPNNGjduzPDhw7FYLOzbt48OHTrg6+vL2LFjmTx5MhUrVmTixIksXbo01eu/dOlSwsLCGD58OP369SMsLIyXX36ZWbNmERwczIABA9i+fTtDhgxxzzN69Gg++eQTXnjhBaZPn86QIUO4cOECPXv2JDo6OtU1iEj60OlaEUlXNwJeREQEkHBN3r9dunSJyZMn8/zzzye6hq1kyZK0bduWBQsW0KZNm3Sr77HHHsPhcJAzZ07Kly+f4vl27NhBTEwMXbp0IW/evADkz5+fVatWER0dTdasWRNNf/r0aXx8fAgODiYgIACAqlWrcuzYMebMmZNs+126dKF+/fq8//77WK0J38n37dtH9erV+fDDD93DatSowa+//sqmTZto2rRpqtY/Li6OiRMnkiNHDgBWrlzJb7/9xs8//0yhQoUA2Lt3L4sWLUq0Lm+99Vaio5Te3t50796d/fv3U6FChVTVICLpQyFPRNLVrl278PX1Zfbs2QwYMICQkBAWLVrkPmK2bds2YmNjk4STgIAAChQowMaNG9M15N2pcuXKkSlTJlq1akWjRo2oVasWAQEBPPHEE8lOnzdvXmbOnAlAZGQkf/31F4cOHWLLli3ExcUlmjYyMpJOnTphGAbvvfeeO8wBNG/enObNm3P9+nWOHDnCX3/9xe7du3E6nUnaSYlixYq5Ax5A7ty5yZkzpzvgAfj6+nLlyhX36zFjxgAJp5//+usv/vjjD1avXg1wRzWISPrQ6VoRSVc5cuTgyy+/JCAggA8//JDLly/Tt29f9ynNG9fd5cqVK8m8uXLlShQu7iUFCxZk9uzZlCtXjm+//ZaOHTtSo0YNxo4dm+zpWoAffviB2rVrU6dOHXr16sXKlSvx9vZOMt2xY8coU6YMcXFxSa43jImJYcCAAVSqVImmTZsycuRIjh07ht1uv6Nn/f33iCOAj4/PLefZuXMnrVq1olq1anTo0IGvvvrKHUT1vEGRe4dCnoikK39/f0qVKgXAE088QdeuXVm/fj1Tp04FcB9FOnv2bJJ5z5w5g5+fHwAWiwVIuOj/hv+e+v2vG/P8N3Sl1XxPPPEEEydOZOPGjcyYMYMaNWowZcqUZJ/9FxERQXBwMPXq1WPNmjVs3LiRL7/8MtlTxCVKlGDq1Km89tprzJo1ix07drjHDR8+nBUrVjBu3Di2bNnCzz//zIcffojd/s+JmeT6CkiT6+WioqL43//+R+bMmVmyZAlbt25l/vz5tGzZ8q7bFpG0pZAnIhmqa9eulCtXjokTJ7JlyxbKlSuHw+Fg8eLFiaaLiIggMjKSihUrAv8ccTpx4oR7mi1bttxyWcnNc/jwYS5evJhoun+fDk3pfDNmzCAwMJDY2FgcDgfVqlVj6NChSea7YevWrbhcLnr06EG+fPmAhBAWFhYGJA6Ufn5+2O12unbtysMPP8yAAQPcp0E3b95M1apVeeaZZ8icOTOQcEr8/Pnz7jZu1H/y5El3m3FxcYnC4p260Q+vvPIKJUqUcPfd2rVrk6yHiHiWrskTkQxls9n48MMPad68Oe+88w4LFy6kc+fOTJw4ES8vL+rWrcuxY8f4+OOPKV68OEFBQQDUqlWL999/n4EDB9KpUydOnjzJxIkTyZIly02X9eSTT+Lj48PIkSPp1asXV69eZeLEifj6+iaaLnv27OzZs4fw8HCeeOKJFM335JNPMnr0aLp168bLL7+MzWZjzpw5OBwO6tSpk6SWG9fqDRkyhJYtW3L58mVmz57Nvn37AJK9WcPb25uBAwfSuXNnpk2bxhtvvMETTzzBsmXL+OabbyhWrBj79u1j8uTJWCwWrl27BiQcHa1QoQKzZ8+mcOHC+Pn5MWvWLGJiYtzB8E49+uijZM2alSlTpmC327Hb7axYsYLvvvsOwF2DiHiejuSJSIYrXLgwISEhHD9+nHfffZfu3bszaNAgwsPDef3115k4cSINGzbk66+/dl8f9uijjzJq1CgiIyPp3LkzX375JUOHDr3lI0+yZcvG+PHjcblcdOvWjY8//piuXbtSpkyZRNO9+uqrnD17ltdee41du3alaL5SpUoxZcoUoqKiePvtt3nzzTe5ePEin3/+OUWLFk1SS9WqVQkNDWXr1q106tSJ999/n4cffpiJEycCCUfoklOrVi0aNGjA5MmTOXToECEhITzzzDOMGzeOLl26MG/ePLp27Urr1q3ZunWr+xTtyJEjKVOmDAMHDiQkJITSpUvTvn371L1RN+nTSZMmYRgGPXv2pG/fvkRGRjJ79myyZMnivotaRDzPYugqWRGRdNG6dWt8fX359NNPPV2KiDyAdCRPRCSN/fHHH8yfP5/9+/fzyCOPeLocEXlA6Zo8EZE0tnr1aiZMmEDp0qV59dVXPV2OiDygdLpWRERExIR0ulZERETEhBTyRERERExIIU9ERETEhHTjxX3K5XIRHx+P1Wp1/4SRiIiI3J5hGLhcLux2e5JfvDEThbz7VHx8PDt37vR0GSIiIvetsmXL4nA4PF1GulHIu0/d+Obx2GOPmXoDvZc4nU527txJ2bJlsdlsni7ngaA+z3jq84ynPs94sbGx7Nmzx9RH8UAh77514xStzWbTh0IGU59nPPV5xlOfZzz1eca50c9mv9zJ3BFWRERE5AGlkCciIiJiQgp5IiIiIiakkCciIiJiQgp5IiIiIiakkCciIiJiQgp5IiIiIiakkCciIiJiQgp5IiIiIiakkCciIiJiQgp5IiIiIiakkCciIiJiQgp5IiIiIiakkCciIiJiQgp5IiIiIiakkCciIiJiQgp5IiIiIiakkCciIiJiQgp5IiIiIiakkCciIiJiQgp5IiIiIiakkCciIiJiQgp5Iqng4+Pj6RIeOOrzjKc+z3jqc0kPdk8XIHfHZrN5uoQHhs1m47HHHsvw5RouJxbrg/k+e6rPH2R30+dOlxPbA7qt3g1t5xnvQdl3KuTd5z5edYBV+856ugxJJ7X9c9OnQSmY/z84e8DT5YjcXPFnsNUNJWRtCIcvHfZ0NSK3VDJHSVpkaeHpMtKdQt597viFaHZHXvZ0GZJOiuXOkvCPswfgxHbPFiNyK7lKAnD40mH2nt/r4WJEbs1hcUAWT1eR/nRNnoiIiIgJKeSJiIiImJBCnoiIiIgJKeSJiIiImJBCnoiIiIgJKeSJiIiImJBCnoiIiIgJKeSJiIiImJBCnoiIiIgJKeSJiIiImJBCnoiIiIgJKeSJiIiImJBCnoiIiIgJKeSJiIiImJBCnoiIiIgJKeSJiIiImJBCnoiIiIgJKeSJiIiImJBCnoiIiIgJKeSJiIiImJBCnoiIiIgJKeSJiIiImJBCnoiIiIgJKeSJiIiImJBCnoiIiIgJKeSJiIiImJBCnoiIiIgJKeSJiIiImJDd0wXIg8dy6Tj2nYuxXDwKVjuuPP7El20GmbL+PT4S+85FWC4cAZsXzoKVcJZpAlZb0rbO/o7Xlrlw/SquAuWIr/A8WBK+u9i3fosrZxFchatk6PpJxll/0sFHO7Jy6JIdH7tBw0Ix9Cl/BW87hG7KzuI/vRNNH+O0UD1vLJ/VuZCkrfDTXgzYmIPz1600LBTD0CqXsVoSxg0Mz075XHG0LHotI1ZLTMj1pwvnr06MswZ4gbWUFVugDYuXhfhl8bh2uRLPEA+WIha8XvJK2tZfLuJ/jIfov9tpZMNiSdhY43+Mx1LAgq1c0s9LefDoSJ5kLGcsXmHTcD1UhNhGg4mt2xdir2LfMidh/PUovH6bjCt3CWIbDyO2Vi+sJ/dgO7Q22ebsuxYTX+xpYhsMxHrmIJbT+wGwnP8Ly5XTuB6pnFFrJhnsfIyFLmv9eKn4NSJanWZhw3OEn3bw6d6ELwtDKl9m6/On3X8Tal4ku5dBSMUrybb3wdZsvOIfzS/NzrDhlIPfTjgA2HHOi8OX7QQ9qoAnd8a4ahD/bTzWila8envh9ZoXxhED53onAPZn7Tj6ONx/9pZ28AbbM8kHNedqJ7YAG17dvHD95cI4bADginRhnDOwPqFduyTQkTzJUJboixg5HsZZqn7CEbdMdlyPVsMe8TUAtiMRGFlz4/R/JmGGLDmJq9kFsNykwRsfgsbfr61guLDvWEh8hdZgucl8ct/L6W0Q1uI0Wb0MDAMuXrdy3WkhZyZXkmnPX7fwznpfBlS6TIkc8cm2Z/97v2j8/WezgMuAYZuzMbTKZW1KcscsWSx49fTCksmCYRgY0QZGvIE1c9IwZkQbxC+Kx1bPhjX3TcLajcE3NlYrGIaB8ydnoqN6IqmK+/7+/nTu3BnDMBINX7BgAYGBgSlq44cffqBx48apWex974svvqBdu3aJhl25coV3332XatWqUbVqVfr168fly5c9VGHGMbLlIa56Z/cpVQDr8R0YvgUBsFw4gpE9H/at83D8+B6On4ZjO7oZfHIk2158mabY/lyPY+VInPkew8hdEusfYbgeehQjx8MZsk7iOVm9Ej6Lai3KTdNlucjt4yIomVOqo7dlo0zOOJoViblpW33KX+Hb331ouCQXgQWuUz1fLN8czEzFXHH4+yYfDEVSypIpIXjFTYwjfno8lqyWZI+4OX9xYslvwVbm5qdbbYE2XNtcxE2Nw1rCiqWIBddmF5aCFqx5dBRP/pHqrWHNmjVMnz79jhfYrFkzli5desfz30+io6MZOXIkI0eOTDKuX79+7N+/nwULFrB69WpiY2Pp1q2bB6r0IMPAtudHrCd3E/9EcwAssdFY/9qEy+8RYhuGEle1A7Y/1mP7fU3yTTz0KHF1+xLbeAjOckEQG4XtcBjOUg2w7VqC1+rR2Nd/BtcuZtx6SYb7qckZ1j53GqvFoMdvvonGHY2y8cOfPvQul/xp2hsq5Y5jcaNzrA86w7uVrnD+upVvfvfhzbJRjN6WleeWPcTra305Fa2dqNw5r9e98OruBRaIX5D4y4Nx0cC104Wtzq2vp7MWsuLVyQtHLwf2+naIBtcWF7anbMT/Ek/c9Dji5sVhXDFu2Y6YX6o/rdq1a8fHH3/Mli1bbjrN6tWrefHFF6lWrRrlypXj5Zdf5s8//wQSH/XbuHEjgYGBTJ48maeeeooqVarQvXt3oqKi3G0tXbqUpk2bUqlSJYKCgvjtt98S1TJmzBjatm1LhQoVePbZZ/nxxx9TtB4pWfa//e9//6NChQpJ/m51VPK5557jzJkzvPTSS4mGX7t2jVWrVtG3b1/y589PlixZ6NevH+Hh4Rw6dChF9d/34mKwh8/AdnQzcU91cx91M6x2DL9HcBWpClYbRo4COIvWxHp8W4qate9cjLN0faznDmM9tZe42r0wchbGvvOHdFwZ8TRvO+TN7KJP+SjWncjEpdh/TlfNP+xDhVyxlPZL3dG4D7Zmo1uZKCJOO1gTmYl59c9R/qE4Rm7NltblywPE4mXBks2CLdCGcdjAuPZPEHNudyYcjcubul2zc7UT21M2jKMGxu8G9o52rA9bcf7sTOvy5T6T6pBXr149XnjhBd5++20uXryYZPzJkyfp2bMnnTt3Zv369fz6668YhsEnn3ySbHvHjx/n1KlTrFy5knnz5rF161a+/jrh+qw1a9bw3nvvERoaSnh4ON27d6d79+4cPHjQPf+3337LgAED2LhxI/Xr1yc0NJTr16+naF1utez/mj59Olu3bk3yd6ujkrNmzWLMmDE89NBDiYa7XC4Mw8DHx8c9zGpNeCsOHz6cotrva1Fn8fp1LJa468TWfivRaVUje15w/WdnbBjuS+5uxXL2MJbrV3AVKI/l8gmM7PkS7t71LYTl8ok0XgnxtC1nvGi4JBex/9qPxTrBy2rgY/tng/npqDfP3eI0bXIiTntxNsbKs49c58AlOyV943HYoEzOOA5c1KXMkjquYy5ip8RiOP/1QRYP2ADHv6bb58JaNnW7ZdcRF8ZVA2tpK8YZA0tuCxabBUt+C8YZHcl70N3ReYfg4GBy5sxJSEhIkuvzcubMydKlSwkMDCQqKoqTJ0/i5+fHqVOnbtpet27d8Pb2pnDhwlStWpU//vgDgNmzZ/PSSy9RuXJlbDYbderUITAwkDlz5rjnbdCgAY899hgOh4MWLVpw5coVzp07l+J1udmy00K+fPmSHZ4lSxZq1KjB2LFjOXPmDFFRUXzwwQfYbDZiYlK3M7rvxEbj+G0yRs4ixNXo7H5syg2uwlWwXD6B7cBqMFxYLkViO/wbrkcq3bpdlxP7zkXElwsCwMiSG8ulSIiPxXr+D4wsudJrjcRD/H3jiXFaGLM9G7FOOH7Vyqht2WhV9BqOv892Xbhu4dBlO5XzxKa43XgXvL81OwMDEq6RLZItnn0X7FyLh61nHTySTUdHJHUseSwQn3C9neE0MC4ZOFc7sZazYrElHHU2og04l3AqNqUMl4FzlTPhlC1g8bNgnDYw4gxcx1zgly6rI/eRO/pK6nA4GDduHC1atODzzz/Hz++fLcnLy4slS5YwZ84cLBYLJUuWJCoqCrv95ovKnTt3ovlvBMfjx48THh7ON9984x7vdDp58sknk533xjJcrqR316V22f/VpUsXNm/enGR4/vz5Wbx4cYqXd8OHH37IiBEjeO6558iWLRsdO3bkl19+IXv27Klu635i+yscy7ULWI9vx3F8e6Jxsc1GYmTLS9xT3bDvWoztwKqE5+Q9WgNn0adu3e6hdbjylcbImvB+uh4ug/XkbhzLB2FkyU18QNt0WyfxjCxeBtNrn2fEluzUWJiHbA6DpkWu0e3xfy65OBaVkPby+qQ8mM06kJlaD1+nyN9h7pmC1/nleCae+j4PhbM5GV3tYpquh5ifxWHB6wUv4n+OJ+7jOMgE1set2Gr+c+2dcenvfU8qrgZwbXJhKWbBkjMhKFr8LVh+txA3Pg5LTgv2Zjrq/KC74y3gkUceYejQofTt25egoCD38GXLljF79my++eYbChcuDMDQoUM5cOBAqpeRL18+mjdvTufOnd3DIiMj8fb2vsVc6WPq1Klp2t6ZM2cYOHAgOXIk3DV66NAhLl26RJkyZdJ0OfcaZ4naOEvUvuU0Rs7CxD39ZqrbTcRiJb7SS8BLyU0uJlE8h5PPk3mw8Q1lH4pn/0snU9Vmx1LRiV5bLfD+k5d5H/Pf/S7px5I7+Qcb32DNb8XR33HT8cmxVU18g4bFYsHexA5N7qhEMaG7uk2sUaNGtGzZkrlz57qHXblyBavVire3N4ZhsHbtWr7//nvi4uJS3X7r1q2ZOXMmO3bsAGDnzp0EBQWxZMmSuyn7nvDhhx8ycuRIYmNjOXXqFIMHD6Zx48ZJrt8TERERuRN3fSy3f//+bN++3f2MtxYtWrB582YaN26MzWajaNGitG/fnq+++orY2JRfFwPQsGFDoqOj6d+/P5GRkfj6+tKhQ4ckz5y7mdDQUCIjI+/qkS/pZdiwYYSGhlK9enW8vLx49tln6du3r6fLEhEREZOwGDe7CM0EoqOj6d27N5MnT/Z0KWnO6XSybds2vv4d5m9N3ekouX80K5ef8S9VhKlPw4ntt59BxFPKPg8tp9N6cWv2nt/r6WpEbqncQ+V4K/9blC9fHpvNvL/za+qnen7//fe0b9/e02WIiIiIZDhT33rTpk0bT5cgIiIi4hGmPpInIiIi8qBSyBMRERExIYU8ERERERNSyBMRERExIYU8ERERERNSyBMRERExIYU8ERERERNSyBMRERExIYU8ERERERNSyBMRERExIYU8ERERERNSyBMRERExIYU8ERERERNSyBMRERExIYU8ERERERNSyBMRERExIYU8ERERERNSyBMRERExIYU8ERERERNSyBMRERExIYU8ERERERNSyBMRERExIYU8ERERERNSyBMRERExIYU8ERERERNSyBMRERExIbunC5C7U8AvM48/nN3TZUg6KZQzc8I/cpX0bCEit+P7CABFcxT1cCEit1ckexFPl5AhLIZhGJ4uQlLP6XSybds2ypcvj81m83Q5ko4MlxOLVe+x3PucLic2batyH3hQ9qE6XXufczqdni7hgeF0OtmzZ0+G9/mDHPA81ecPsrvpcwW8O6PtPOM9KH2tkCeSCteuXfN0CQ8c9XnGU59nPPW5pAeFPBERERETUsgTERERMSGFPBERERETUsgTERERMSGFPBERERETUsgTERERMSGFPBERERETUsgTERERMSGFPBERERETUsgTERERMSGFPBERERETUsgTERERMSGFPBERERETUsgTERERMSGFPBERERETUsgTERERMSGFPBERERETUsgTERERMSGFPBERERETUsgTERERMSGFPBERERETUsgTERERMSGFPBERERETUsgTERERMSGFPBERERETUsgTERERMSGFPBERERETUsgTERERMSGFPJFU8PHx8XQJDxz1ecZTn2c89bmkB7unC5C7Y7PZPF3CA8Nms/HYY495uox7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5eNZRERERMzK1LfP1K9f39MliIiIiHiEqY/kiYiIiDyoFPJERERETEghT0RERMSEFPJERERETEghT0RERMSEFPJERERETEghT0RERMSEFPJERERETEghT0RERMSEFPJERERETEghT0RERMSEFPJERERETEghT0RERMSEFPJERERETEghT0RERMSEFPJERERETEghT0RERMSEFPJERERETEghT0RERMSEFPJERERETEghT0RERMSEFPJERERETEghT0RERMSEFPJERERETEghT0RERMSEFPJERERETMju6QLk7hTNnYXrTk9XIQKFcmZO+Eeukp4tRCQlfB8BoGiOoh4uRO5UgawFAHAUTf17aC9SJI2ruTdZDMMwPF2EpJ7T6WTbtm2UL18em83m6XJEADBcTixWbY9yf3C6nNi0vd7XDKcTyx3sAx+UfahO197nnE4dxssoTqeTPXv2qM9vIa0Dnvo84z1IfX6vBLwHqc/T2p0EPHhw9p0KeSKpcO3aNU+X8MBRn2c89XnGU59LelDIExERETEhhTwRERERE1LIExERETEhhTwRERERE1LIExERETEhhTwRERERE1LIExERETEhhTwRERERE1LIExERETEhhTwRERERE1LIExERETEhhTwRERERE1LIExERETEhhTwRERERE1LIExERETEhhTwRERERE1LIExERETEhhTwRERERE1LIExERETEhhTwRERERE1LIExERETEhhTwRERERE1LIExERETEhu6cLkDtjGAYATqcTp9Pp4WoeDDf6Wf2dcdTnGU99nvHU5xnvRl/f2JealcUw+xqaVGxsLDt37vR0GSIiIvetsmXL4nA4PF1GulHIu0+5XC7i4+OxWq1YLBZPlyMiInLfMAwDl8uF3W7HajXvlWsKeSIiIiImZN74KiIiIvIAU8gTERERMSGFPBERERETUsgTERERMSGFPBERERETUsgTERERMSGFPBERERETUsi7z5w7d4433niDgIAAqlatyvDhw4mPj/d0Waayb98+OnbsSJUqVahRowZ9+/bl/PnzAGzfvp3nn3+eChUqEBgYyLx58zxcrbk4nU7atWtHSEiIe5j6PH1cvHiRvn37UrVqVSpXrswbb7zB6dOnAfV5etm9ezdt27YlICCAmjVrMmzYMGJjYwH1eXo4f/489erVY+PGje5ht+vn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nD17lg0bNmAYBosWLeLQoUPu9oYNG8a4ceO4fv06OXPmJFOmTIkClpeXF1myZGH48OF8/vnnbNmyhTx58lCrVi2GDRvGmTNniImJYfTo0TidTurUqcNDDz1Ejhw5WLp0KYZhsHv37kSB4N8eeeQR7Ha7+06tsLAwNmzYkKb9lmq5SkL+cun/l6tkqsq6dOkS7du3p2LFinz22WepDlRXrlzB29sbm83G+fPnGTZsGJAQxq9evUqnTp1YvHgxhmGQJ08erFare1twOBxcuXIFgDp16nD16lWmT59ObGwsly9fJjg4mLfeessjd/sVzVGU0jlLp/tf0RxF77rWnj17Ur58ebp168bFixcpW7YsxYsX57333uPKlStcuXKFQYMG8cgjj1CxYsWbtuPl5YXNZuP999/n559/5scff7zt58OVK1ewWq14e3sDsG3bNmbOnJnkS6DD4aBt27aULFnSfSlAy5YtWb16NcuWLcPpdLJnzx6mTZtGy5YtgYTPmYiICE6dOkVMTAyffPLJTbeFYsWKsW7dOi5fvsyVK1eYNm3aXffr3XAULYr3Y4+l+5+j6N1vP7dyJ/uH29m2bRuLFi3C6XSyZs0aVq1a5X7Pb8fLy4u8efPSr18/Ro0axZEjR7S9p+H2riN5N+F0Gal+dt3dLs9mTbsdX3BwMBMmTKBNmzZcvHiRQoUKMX78eB577LFkpy9btixdu3YlJCSEq1ev8swzz9CgQQP3+HHjxjF06FBq1qyJy+WicuXKDB06NEk71apV4/nnnyc4OJhFixbxwQcfMHr0aFq0aEF0dDTly5fnyy+/dJ8KGDp0KOPHj+ezzz6jTJkytG7dms2bNydpN0+ePPTv359JkyYxdOhQnnzySYKCgrh27VradFhquZypfnbdXS/PevMfof63BQsWEBkZybJly5KE5q1btwJQoUIFBg8enOyzq95//31GjBjB559/To4cOWjUqBGPPfYYBw4coGbNmowfP55x48YRGhqKt7c3jRo1ct9o07x5cwYNGsSuXbv4+uuvmTFjBiNHjmT69Om4XC6qVq3K5MmT764v7oDT5Uz1s+vudnm2FL5fybFarYwZM4agoCB69erFZ599xtSpUxk5ciQNGjQgNjaW6tWr88UXX7iflXkrxYoVo3v37gwePJhKlSrd8vPBMAzatGlD27ZtcblcFCxYkHbt2jFmzBj3JRg3WCwWRowYQbNmzdxHYT7++GM++eQT+vfvj5+fHy+99BKdOnUC4IUXXmDnzp00a9YMh8NB+/btefjhh5OtuUuXLgwYMIC6deuSLVs2evTowYoVK+64T++G4XSm6tl1abE8yy1+dP5upXb/cDulS5dm1apVDBs2jFy5cvHhhx9SoULq9p8tW7ZkxYoVBAcH89VXX2l7T6Pt3WL898TzAyQmJoY//viDRx991J3iRUREJGUmTJhAeHi4+/EtkjFSml90ulZERETEhBTyRERERExI1+SJiIjIHbnXfqdaEtORPBERERETUsiDJA89FBEREblXpTS3PNAhz8vLC4Do6GgPVyIiIiKSMjdyy40cczMP9DV5NpsNX19f929yZs6c2SMPaRURERG5HcMwiI6O5vTp0/j6+rp/DepmHujn5EFCh508eZKLFy96uhQRERGR2/L19SVfvny3PTD1wIe8G5xOZ6LfjRMRERG519z4+baUUMgTERERMaEH+sYLEREREbNSyBMRERExIYU8ERERERNSyBMRERExIYU8ERERERNSyBMRERExIYU8ERERERP6f371eCbpn3BZAAAAAElFTkSuQmCC", "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>4:\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": [ "### Lisätietoa\n", "\n", "Seuraavassa osassa 3/7 opit laatimaan kahden arvoakselin kaavion:\n", "\n", "- [Kahden arvoakselin kaavio](https://github.com/taanila/kaaviot/blob/master/matplotlib3.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 }