{"id":317,"date":"2025-08-29T17:28:37","date_gmt":"2025-08-29T14:28:37","guid":{"rendered":"https:\/\/blogit.xamk.fi\/datalab\/?p=317"},"modified":"2025-08-29T17:28:37","modified_gmt":"2025-08-29T14:28:37","slug":"seaborn-opas-aloittelijoille","status":"publish","type":"post","link":"https:\/\/blogit.xamk.fi\/datalab\/2025\/08\/29\/seaborn-opas-aloittelijoille\/","title":{"rendered":"Seaborn-opas aloittelijoille"},"content":{"rendered":"\n<p>DataLabiin suoritettavana syvent\u00e4v\u00e4n\u00e4 harjoitteluna teht\u00e4v\u00e4kseni valikoitui Seaborn-oppaan luominen. Tarkoituksena oli luoda selke\u00e4 ohjeistus, jonka avulla Python-ohjelmointikielell\u00e4 teht\u00e4vi\u00e4 visualisointeja pystyisi tekem\u00e4\u00e4n my\u00f6s sellaiset, joilla ei ole aiempaa ohjelmointiosaamista. Oppaassa k\u00e4ytettiin teko\u00e4lyty\u00f6kalu Copilotin apua Python-koodien kirjoittamiseen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Toteutus<\/h2>\n\n\n\n<p>Ensin piti valita miss\u00e4 ymp\u00e4rist\u00f6ss\u00e4 ty\u00f6 haluttiin toteuttaa. Kokeiltiin Google Colabia sek\u00e4 Jupyter Notebookia, valittiin Jupyter. Vaikka Colab oli monien netist\u00e4 l\u00f6ytyvien oppaiden suositus, Notebook koettiin helppok\u00e4ytt\u00f6isemm\u00e4ksi, erityisesti aloittelijan n\u00e4k\u00f6kulmasta. Ty\u00f6ss\u00e4 pyrittiin pit\u00e4m\u00e4\u00e4n mieless\u00e4 miten data-analytiikan muilla kursseilla, kuten Power BI, k\u00e4siteltiin datan visualisointia ja haluttiin kokeilla miten samantyyppinen toteutettaisiin Seaborn-kirjaston avulla. Seabornin virallinen opas oli merkitt\u00e4v\u00e4 apuv\u00e4line ty\u00f6n toteutukseen, mutta vaatii lukijalta jonkin verran pohjatietoa aiheesta. Oppaassa k\u00e4ytettiin ERP-simulaatiopelist\u00e4 saatua kaupallista dataa.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Visualisoinnit<\/h2>\n\n\n\n<p>Visualisointien koodit pyydettiin teko\u00e4lylt\u00e4 Python-koodina. Usein koodissa oli jotain muokattavaa, jotta se saatiin halutunlaiseksi ja teko\u00e4lyn kanssa jouduttiinkin keskustelemaan pitk\u00e4\u00e4n halutun lopputuloksen saamiseksi.<\/p>\n\n\n\n<p>Visualisoinnit jaettiin seuraaviin osioihin: <\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Tilastolliset visualisoinnit<\/li>\n\n\n\n<li>Relaatiokaaviot<\/li>\n\n\n\n<li>Kategoriset kaaviot<\/li>\n\n\n\n<li>Jakaumien visualisointi<\/li>\n\n\n\n<li>Moniulotteiset visualisoinnit<\/li>\n\n\n\n<li>Lineaariset regressiomallit<\/li>\n<\/ul>\n\n\n\n<p>Opas aloitettiin melko yksinkertaisilla Python-koodilla teht\u00e4vill\u00e4 kuvaajilla, joista edettiin koko ajan vaativampiin visualisointeihin. Viimeisin osio lineaarisista regressiomalleista vaatiikin jo hieman taustatietoa tilastotieteest\u00e4. Esimerkeiss\u00e4 pyrittiin k\u00e4ytt\u00e4m\u00e4\u00e4n sellaisia muuttujia, jotka ovat kaupallista dataa analysoitaessa t\u00e4rkeit\u00e4. Oppaassa k\u00e4ytetyn datasetin Sales-v\u00e4lilehti sis\u00e4lsi merkityksellisimm\u00e4n osan tiedosta t\u00e4h\u00e4n liittyen.<\/p>\n\n\n\n<p>Kun kyseess\u00e4 on suuri datam\u00e4\u00e4r\u00e4 kuvaajien muodostuminen saattaa kest\u00e4\u00e4 kauan. T\u00e4llaisissa tilanteissa voidaan harkita otoksen ottamista datasta, jolloin oppaan esimerkin mukaan koodi: data=df_sales.sample(300) valitsee datasta 300 satunnaista havaintoa. Oppaassa on my\u00f6s suodatettu dataa esimerkiksi suurimpien ja pienimpien arvojen mukaan, jolloin voidaan verrata esimerkiksi hyvin ja huonosti menestyvien eroja.<\/p>\n\n\n\n<p>Seaborn-visualisointeja p\u00e4\u00e4se helposti kokeilemaan, koska se sis\u00e4lt\u00e4\u00e4 valmiita datasettej\u00e4. Esimerkiksi Titanic-dataa sis\u00e4lt\u00e4v\u00e4 datasetti saadaan ty\u00f6kirjaan koodilla titanic = sns.load_dataset(&#8221;titanic&#8221;). N\u00e4in p\u00e4\u00e4see heti kokeilemaan milt\u00e4 Seaborn-visualisoinnit n\u00e4ytt\u00e4v\u00e4t eik\u00e4 tarvitse pohtia, mist\u00e4 l\u00f6ytyisi sopiva ja puhdas data harjoitteluun. T\u00e4ss\u00e4 esimerkki ik\u00e4jakaumasta sukupuolen mukaan. <\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"740\" height=\"717\" src=\"https:\/\/blogit.xamk.fi\/datalab\/wp-content\/uploads\/sites\/56\/2025\/08\/Screenshot-2025-08-29-100657.png\" alt=\"\" class=\"wp-image-326\" srcset=\"https:\/\/blogit.xamk.fi\/datalab\/wp-content\/uploads\/sites\/56\/2025\/08\/Screenshot-2025-08-29-100657.png 740w, https:\/\/blogit.xamk.fi\/datalab\/wp-content\/uploads\/sites\/56\/2025\/08\/Screenshot-2025-08-29-100657-300x291.png 300w\" sizes=\"auto, (max-width: 740px) 100vw, 740px\" \/><\/figure>\n\n\n\n<p>Linkki oppaaseen <a href=\"https:\/\/mirkamustonen.github.io\/Seaborn-opas\/content\/Salesdata.html\">Opas Seaborn-kirjaston hy\u00f6dynt\u00e4miseen bisnesdatan visualisoimisessa \u2014 Kirja<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Visualisointien tyyli<\/h2>\n\n\n\n<p>Seabornin avulla saadaan ammattimaisen n\u00e4k\u00f6isi\u00e4 visualisointeja l\u00e4hes automaattisesti, se luotiinkin juuri ajatuksena, ett\u00e4 k\u00e4ytt\u00e4j\u00e4 voisi keskitty\u00e4 kuvaajan analysointiin ei sen piirt\u00e4miseen. Kuvaajia voi kuitenkin halutessaan muokata monin tavoin. T\u00e4m\u00e4n esimerkin oikeanpuoleinen kuvaaja on ilman tyylimuotoiluja tehty pylv\u00e4sdiagrammi ja vasemmalla olevaan on muokattu otsikoita ja v\u00e4rityst\u00e4.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"964\" height=\"351\" src=\"https:\/\/blogit.xamk.fi\/datalab\/wp-content\/uploads\/sites\/56\/2025\/08\/Screenshot-2025-08-29-060020.png\" alt=\"\" class=\"wp-image-320\" srcset=\"https:\/\/blogit.xamk.fi\/datalab\/wp-content\/uploads\/sites\/56\/2025\/08\/Screenshot-2025-08-29-060020.png 964w, https:\/\/blogit.xamk.fi\/datalab\/wp-content\/uploads\/sites\/56\/2025\/08\/Screenshot-2025-08-29-060020-300x109.png 300w, https:\/\/blogit.xamk.fi\/datalab\/wp-content\/uploads\/sites\/56\/2025\/08\/Screenshot-2025-08-29-060020-768x280.png 768w\" sizes=\"auto, (max-width: 964px) 100vw, 964px\" \/><\/figure>\n\n\n\n<p>Teko\u00e4lyn avulla kirjoitetut koodit kannattaa aina tarkistaa ennen niiden ajamista erityisesti jos on tarkka millaisen visuaalisen muodon haluaa kuvaajalle. Microsoftin Copilot lis\u00e4\u00e4 usein pyydettyyn koodiin omia muokkauksia, v\u00e4lill\u00e4 vaikka koodi pyydett\u00e4isiin ilman niit\u00e4. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Lopuksi<\/h2>\n\n\n\n<p>DataLabille suoritettuna harjoittelu vaatii opiskelijalta erityisesti ajank\u00e4yt\u00f6n hallintaa sek\u00e4 motivaatiota saavuttaa itselleen asetetut tavoitteet. Aiheen olisi hyv\u00e4 olla opiskelijalle aidosti mielenkiintoinen, sill\u00e4 itsen\u00e4inen ty\u00f6skentely edellytt\u00e4\u00e4 todellista kiinnostusta ja halua oppia enemm\u00e4n. Pythonin ja Seabornin lis\u00e4ksi opin my\u00f6s paljon erilaisia tapoja hy\u00f6dynt\u00e4\u00e4 Jupyter-ymp\u00e4rist\u00f6\u00e4, jonka uskon tulevan hy\u00f6dyksi viel\u00e4 my\u00f6hemmin.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>DataLabiin suoritettavana syvent\u00e4v\u00e4n\u00e4 harjoitteluna teht\u00e4v\u00e4kseni valikoitui Seaborn-oppaan luominen. Tarkoituksena oli luoda selke\u00e4 ohjeistus, jonka avulla Python-ohjelmointikielell\u00e4 teht\u00e4vi\u00e4 visualisointeja pystyisi tekem\u00e4\u00e4n my\u00f6s sellaiset, joilla ei ole aiempaa ohjelmointiosaamista. Oppaassa k\u00e4ytettiin teko\u00e4lyty\u00f6kalu Copilotin apua Python-koodien kirjoittamiseen. Toteutus Ensin piti valita miss\u00e4 ymp\u00e4rist\u00f6ss\u00e4 ty\u00f6 haluttiin toteuttaa. Kokeiltiin Google Colabia sek\u00e4 Jupyter Notebookia, valittiin Jupyter. Vaikka Colab oli monien [&hellip;]<\/p>\n","protected":false},"author":409,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-317","post","type-post","status-publish","format-standard","hentry","category-yleinen"],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/blogit.xamk.fi\/datalab\/wp-json\/wp\/v2\/posts\/317","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogit.xamk.fi\/datalab\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogit.xamk.fi\/datalab\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogit.xamk.fi\/datalab\/wp-json\/wp\/v2\/users\/409"}],"replies":[{"embeddable":true,"href":"https:\/\/blogit.xamk.fi\/datalab\/wp-json\/wp\/v2\/comments?post=317"}],"version-history":[{"count":10,"href":"https:\/\/blogit.xamk.fi\/datalab\/wp-json\/wp\/v2\/posts\/317\/revisions"}],"predecessor-version":[{"id":329,"href":"https:\/\/blogit.xamk.fi\/datalab\/wp-json\/wp\/v2\/posts\/317\/revisions\/329"}],"wp:attachment":[{"href":"https:\/\/blogit.xamk.fi\/datalab\/wp-json\/wp\/v2\/media?parent=317"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogit.xamk.fi\/datalab\/wp-json\/wp\/v2\/categories?post=317"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogit.xamk.fi\/datalab\/wp-json\/wp\/v2\/tags?post=317"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}