{"id":718,"date":"2020-12-29T17:18:41","date_gmt":"2020-12-29T17:18:41","guid":{"rendered":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/?post_type=chapter&#038;p=718"},"modified":"2020-12-29T17:33:19","modified_gmt":"2020-12-29T17:33:19","slug":"teatrikulastuse-naide","status":"publish","type":"chapter","link":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/chapter\/teatrikulastuse-naide\/","title":{"raw":"Teatrik\u00fclastuse n\u00e4ide","rendered":"Teatrik\u00fclastuse n\u00e4ide"},"content":{"raw":"<h2>Sissejuhatus<\/h2>\r\nEelmistes peat\u00fckkides tutvustati pandase p\u00f5hilisi andmestruktuure - seeriat (<em>Series<\/em>) ja andmefreimi (<em>DataFrame<\/em>). N\u00fc\u00fcd tegutseme andmefreimi abil p\u00f5hjalikumalt tegelike andmetega. Vaatame teatrik\u00fclastuse andmeid (allikas: <a href=\"http:\/\/andmebaas.stat.ee\/Index.aspx?lang=et&amp;DataSetCode=KU086#\">Statistikaamet<\/a>), kust on valitud andmed k\u00f5ikide teatrite kohta kokku vahemikus 2004 - 2018. Eelnevalt on andmeid t\u00f6\u00f6deldud tabelt\u00f6\u00f6tlusprogrammiga ja k\u00f5ik komad failis on muudetud punktideks, sest allalaaditud failis on arvudes kasutatud komasid. Samuti on eemaldatud \u00fcleliigsed veerud ja lahtrid.\r\n\r\n<img class=\"alignnone wp-image-721 size-full\" src=\"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2020\/12\/pasted-image-0-8.png\" alt=\"\" width=\"1348\" height=\"268\" \/>\r\n\r\nSamuti on failikodeeringuks m\u00e4\u00e4ratud UTF-8, mida saab valida n\u00e4iteks siis, kui fail salvestatakse MS Excelis CSV formaadis. Failikodeeringu kasutamine on eriti oluline siis, kui andmetes on erilisi t\u00e4hti (n\u00e4iteks \u00e4, \u00f5 jne) v\u00f5i s\u00fcmboleid, mida on vaja \u00f5igesti kuvada.\r\n<h2>Andmete saamine failist<\/h2>\r\nLoeme andmed veebist (andmed v\u00f5id ka alla laadida: <a href=\"http:\/\/kodu.ut.ee\/~merka123\/plotly\/teater.csv\">teater.csv<\/a>), mille sisu n\u00e4eb tavalise tekstiredaktoriga (nt Notepad++) avades v\u00e4lja selline:\r\n<pre>;2004;2005;2006;2007;2008;2009;2010;2011;2012;2013;2014;2015;2016;2017;2018\r\nTeatrite arv;21;22;26;30;26;28;29;34;41;41;37;49;46;47;58\r\nLavastused;326;348;406;414;400;401;417;464;487;490;511;550;540;559;582\r\n..uuslavastused;121;153;170;164;157;153;173;190;203;186;196;216;196;204;211\r\nEtendused;3974;4288;4651;4765;4635;4731;4593;5012;5678;5803;6010;6434;6573;6713;6695\r\nVaatajad. tuhat;937.5;843.4;922.1;1022.1;983.1;873.8;899.9;1008.3;1143;1090.7;1047.1;1146.6;1186;1164;1192\r\nTeatrisk\u00e4igud 1000 elaniku kohta;695;627;686;761.8;733.3;652;671.5;752.5;864.1;827.5;796.6;872.2;901.4;883.5;901.7\r\n<\/pre>\r\nLoeme andmed.\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">import pandas as pd\r\n\r\n# Andmed\r\nurl = 'http:\/\/kodu.ut.ee\/~merka123\/plotly\/teater.csv'\r\n\r\ncsv = pd.read_csv(url, encoding='UTF-8', sep=';')<\/pre>\r\nParameeteri <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">sep<\/code> v\u00e4\u00e4rtus n\u00e4itab, milline eraldaja on andmeid sisaldavas failis m\u00e4\u00e4ratud, antud juhul on tegemist semikooloniga. Sageli kasutatakse CSV failides eraldajana koma, aga andmetes, kus arvudes kasutatakse koma, ei saa seda eraldajana kasutada.\r\n\r\nFunktsiooni <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">read_csv<\/code> kasutamisel on veel mitmeid muid parameetreid, mida v\u00f5ib vaja minna. Nendega saab l\u00e4hemalt tutvuda <a href=\"https:\/\/pandas.pydata.org\/pandas-docs\/stable\/reference\/api\/pandas.read_csv.html?highlight=read_csv\">siin<\/a>.\r\n<h2>Tutvumine andmetega<\/h2>\r\nP\u00fc\u00fcame t\u00e4psemalt tutvuda meie poolt sisse loetud tabeliga. Sisseloetud tabel on meil n\u00fc\u00fcd andmefreimina kasutatav. P\u00fc\u00fcame n\u00e4iteks teada saada, mitu veergu ja rida on tabelis.\r\n\r\nFunktsioon <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">shape<\/code> annab andmefreimi m\u00f5\u00f5tmed (ridade ja veergude arvu):\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">print(csv.shape)<\/pre>\r\n<pre><span style=\"color: #3366ff\"><strong>&gt;&gt;&gt;<\/strong><\/span> <span style=\"color: #999999\">%Run guido.py<\/span>\r\n  (6, 16)<\/pre>\r\nN\u00e4eme, et tabelis on 6 rida ja 16 veergu. Uurime ka, millised veerud on andmetabelis.\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\"># Veergude pealkirjad\r\nprint(csv.columns)<\/pre>\r\n<pre><span style=\"color: #3366ff\"><strong>&gt;&gt;&gt;<\/strong><\/span> <span style=\"color: #999999\">%Run guido.py<\/span>\r\n  Index(['Unnamed: 0', '2004', '2005', '2006', '2007', '2008', '2009', '2010', '2011', '2012', '2013', '2014', '2015', '2016', '2017', '2018'], dtype='object')<\/pre>\r\nN\u00e4eme, et tabelis on esimene veerg ilma nimeta (<code>Unnamed: 0<\/code>), mille p\u00f5hjuseks on see, et esimeses veerus on erinevad kategooriad, millel ei ole veeru pealkirja. Selle parandamiseks v\u00f5ime esimeses veerus olevad andmed muuta reasiltideks. Selleks tuleb lisada <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">read_csv<\/code> funktsiooni juurde <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">index_col=0<\/code>, mille tulemusel kasutatakse esimese veeru andmeid reasiltidena.\r\n\r\n&nbsp;\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">csv = pd.read_csv(url, encoding='UTF-8', sep=';', index_col=0)\r\n\r\n# V\u00e4ljastame terve tabeli, sest see ei ole v\u00e4ga suur.\r\nprint(csv)<\/pre>\r\n<pre><span style=\"color: #3366ff\"><strong>&gt;&gt;&gt;<\/strong><\/span> <span style=\"color: #999999\">%Run guido.py<\/span>\r\n                                      2004    2005  ...    2017    2018\r\n  Teatrite arv                        21.0    22.0  ...    47.0    58.0\r\n  Lavastused                         326.0   348.0  ...   559.0   582.0\r\n  ..uuslavastused                    121.0   153.0  ...   204.0   211.0\r\n  Etendused                         3974.0  4288.0  ...  6713.0  6695.0\r\n  Vaatajad. tuhat                    937.5   843.4  ...  1164.0  1192.0\r\n  Teatrisk\u00e4igud 1000 elaniku kohta   695.0   627.0  ...   883.5   901.7\r\n\r\n  [6 rows x 15 columns]\r\n<\/pre>\r\nUurime, kas andmetes on puuduvaid v\u00e4\u00e4rtusi. Kasutame selleks funktsiooni <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">isna<\/code> ja <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">sum<\/code>.\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">print(csv.isna().sum())<\/pre>\r\n<pre><span style=\"color: #3366ff\"><strong>&gt;&gt;&gt;<\/strong><\/span> <span style=\"color: #999999\">%Run guido.py<\/span>\r\n  2004    0\r\n  2005    0\r\n  2006    0\r\n  2007    0\r\n  2008    0\r\n  2009    0\r\n  2010    0\r\n  2011    0\r\n  2012    0\r\n  2013    0\r\n  2014    0\r\n  2015    0\r\n  2016    0\r\n  2017    0\r\n  2018    0\r\n  dtype: int64\r\n<\/pre>\r\nN\u00e4eme, et puuduvaid v\u00e4\u00e4rtusi ei ole. Uurime ka, mis t\u00fc\u00fcpi on andmed veergudes.\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">print(csv.dtypes)<\/pre>\r\n<pre><span style=\"color: #3366ff\"><strong>&gt;&gt;&gt;<\/strong><\/span> <span style=\"color: #999999\">%Run guido.py<\/span>\r\n  2004    float64\r\n  2005    float64\r\n  2006    float64\r\n  2007    float64\r\n  2008    float64\r\n  2009    float64\r\n  2010    float64\r\n  2011    float64\r\n  2012    float64\r\n  2013    float64\r\n  2014    float64\r\n  2015    float64\r\n  2016    float64\r\n  2017    float64\r\n  2018    float64\r\n  dtype: object\r\n<\/pre>\r\nVeergude andmet\u00fc\u00fcp on sobiv.\r\n<h2>Andmete kajastamine graafikul<\/h2>\r\nAndmete p\u00f5hjal saab graafiku teha mooduli Matplotlib abil. Enne joonise tegemist, peame aga andmed transponeerima ehk vahetama \u00e4ra read ja veerud. Nimelt on meil mugavam joonist teha, kui reasiltideks on aastad ja veergudeks on erinevate kategooriate andmed (nt teatrite arv). Nii saame automaatselt m\u00e4\u00e4rata, et x-telje andmed on aastad ja y-teljel on m\u00f5ne kategooria andmed.\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\"># Impordime mooduli\r\nimport matplotlib.pyplot as plt\r\n\r\n# Transponeerime andmed, muudame veergude pealkirjad indeksiteks ja indeksid veergude pealkirjadeks.\r\ntransponeeritud_andmed = csv.T<\/pre>\r\n&nbsp;\r\n\r\nTransponeeritud andmed:\r\n<pre>            Teatrite arv  ...  Teatrisk\u00e4igud 1000 elaniku kohta\r\n2004          21.0  ...                             695.0\r\n2005          22.0  ...                             627.0\r\n2006          26.0  ...                             686.0\r\n2007          30.0  ...                             761.8\r\n2008          26.0  ...                             733.3\r\n2009          28.0  ...                             652.0\r\n2010          29.0  ...                             671.5\r\n...\r\n<\/pre>\r\nLoome joonise.\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">import pandas as pd\r\nimport matplotlib.pyplot as plt\r\n\r\n# Andmed\r\nurl = 'http:\/\/kodu.ut.ee\/~merka123\/plotly\/teater.csv'\r\n\r\ncsv = pd.read_csv(url, encoding='UTF-8', sep=';', index_col=0)\r\n\r\ntransponeeritud_andmed = csv.T\r\ntransponeeritud_andmed['Teatrisk\u00e4igud 1000 elaniku kohta'].plot.line(xlabel=\"Aastad\",\r\n                               ylabel=\"Teatrisk\u00e4igud 1000 elaniku kohta\",\r\n                               title=\"Teatris k\u00e4imine Eestis 2004-2018\",\r\n                               color='#3CB371')\r\n\r\nplt.show()<\/pre>\r\n<img class=\"alignnone wp-image-725 size-full\" src=\"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2020\/12\/pasted-image-0-9.png\" alt=\"\" width=\"640\" height=\"480\" \/>","rendered":"<h2>Sissejuhatus<\/h2>\n<p>Eelmistes peat\u00fckkides tutvustati pandase p\u00f5hilisi andmestruktuure &#8211; seeriat (<em>Series<\/em>) ja andmefreimi (<em>DataFrame<\/em>). N\u00fc\u00fcd tegutseme andmefreimi abil p\u00f5hjalikumalt tegelike andmetega. Vaatame teatrik\u00fclastuse andmeid (allikas: <a href=\"http:\/\/andmebaas.stat.ee\/Index.aspx?lang=et&amp;DataSetCode=KU086#\">Statistikaamet<\/a>), kust on valitud andmed k\u00f5ikide teatrite kohta kokku vahemikus 2004 &#8211; 2018. Eelnevalt on andmeid t\u00f6\u00f6deldud tabelt\u00f6\u00f6tlusprogrammiga ja k\u00f5ik komad failis on muudetud punktideks, sest allalaaditud failis on arvudes kasutatud komasid. Samuti on eemaldatud \u00fcleliigsed veerud ja lahtrid.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-721 size-full\" src=\"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2020\/12\/pasted-image-0-8.png\" alt=\"\" width=\"1348\" height=\"268\" srcset=\"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2020\/12\/pasted-image-0-8.png 1348w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2020\/12\/pasted-image-0-8-300x60.png 300w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2020\/12\/pasted-image-0-8-1024x204.png 1024w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2020\/12\/pasted-image-0-8-768x153.png 768w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2020\/12\/pasted-image-0-8-65x13.png 65w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2020\/12\/pasted-image-0-8-225x45.png 225w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2020\/12\/pasted-image-0-8-350x70.png 350w\" sizes=\"auto, (max-width: 1348px) 100vw, 1348px\" \/><\/p>\n<p>Samuti on failikodeeringuks m\u00e4\u00e4ratud UTF-8, mida saab valida n\u00e4iteks siis, kui fail salvestatakse MS Excelis CSV formaadis. Failikodeeringu kasutamine on eriti oluline siis, kui andmetes on erilisi t\u00e4hti (n\u00e4iteks \u00e4, \u00f5 jne) v\u00f5i s\u00fcmboleid, mida on vaja \u00f5igesti kuvada.<\/p>\n<h2>Andmete saamine failist<\/h2>\n<p>Loeme andmed veebist (andmed v\u00f5id ka alla laadida: <a href=\"http:\/\/kodu.ut.ee\/~merka123\/plotly\/teater.csv\">teater.csv<\/a>), mille sisu n\u00e4eb tavalise tekstiredaktoriga (nt Notepad++) avades v\u00e4lja selline:<\/p>\n<pre>;2004;2005;2006;2007;2008;2009;2010;2011;2012;2013;2014;2015;2016;2017;2018\r\nTeatrite arv;21;22;26;30;26;28;29;34;41;41;37;49;46;47;58\r\nLavastused;326;348;406;414;400;401;417;464;487;490;511;550;540;559;582\r\n..uuslavastused;121;153;170;164;157;153;173;190;203;186;196;216;196;204;211\r\nEtendused;3974;4288;4651;4765;4635;4731;4593;5012;5678;5803;6010;6434;6573;6713;6695\r\nVaatajad. tuhat;937.5;843.4;922.1;1022.1;983.1;873.8;899.9;1008.3;1143;1090.7;1047.1;1146.6;1186;1164;1192\r\nTeatrisk\u00e4igud 1000 elaniku kohta;695;627;686;761.8;733.3;652;671.5;752.5;864.1;827.5;796.6;872.2;901.4;883.5;901.7\r\n<\/pre>\n<p>Loeme andmed.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">import pandas as pd\r\n\r\n# Andmed\r\nurl = 'http:\/\/kodu.ut.ee\/~merka123\/plotly\/teater.csv'\r\n\r\ncsv = pd.read_csv(url, encoding='UTF-8', sep=';')<\/pre>\n<p>Parameeteri <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">sep<\/code> v\u00e4\u00e4rtus n\u00e4itab, milline eraldaja on andmeid sisaldavas failis m\u00e4\u00e4ratud, antud juhul on tegemist semikooloniga. Sageli kasutatakse CSV failides eraldajana koma, aga andmetes, kus arvudes kasutatakse koma, ei saa seda eraldajana kasutada.<\/p>\n<p>Funktsiooni <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">read_csv<\/code> kasutamisel on veel mitmeid muid parameetreid, mida v\u00f5ib vaja minna. Nendega saab l\u00e4hemalt tutvuda <a href=\"https:\/\/pandas.pydata.org\/pandas-docs\/stable\/reference\/api\/pandas.read_csv.html?highlight=read_csv\">siin<\/a>.<\/p>\n<h2>Tutvumine andmetega<\/h2>\n<p>P\u00fc\u00fcame t\u00e4psemalt tutvuda meie poolt sisse loetud tabeliga. Sisseloetud tabel on meil n\u00fc\u00fcd andmefreimina kasutatav. P\u00fc\u00fcame n\u00e4iteks teada saada, mitu veergu ja rida on tabelis.<\/p>\n<p>Funktsioon <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">shape<\/code> annab andmefreimi m\u00f5\u00f5tmed (ridade ja veergude arvu):<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">print(csv.shape)<\/pre>\n<pre><span style=\"color: #3366ff\"><strong>&gt;&gt;&gt;<\/strong><\/span> <span style=\"color: #999999\">%Run guido.py<\/span>\r\n  (6, 16)<\/pre>\n<p>N\u00e4eme, et tabelis on 6 rida ja 16 veergu. Uurime ka, millised veerud on andmetabelis.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\"># Veergude pealkirjad\r\nprint(csv.columns)<\/pre>\n<pre><span style=\"color: #3366ff\"><strong>&gt;&gt;&gt;<\/strong><\/span> <span style=\"color: #999999\">%Run guido.py<\/span>\r\n  Index(['Unnamed: 0', '2004', '2005', '2006', '2007', '2008', '2009', '2010', '2011', '2012', '2013', '2014', '2015', '2016', '2017', '2018'], dtype='object')<\/pre>\n<p>N\u00e4eme, et tabelis on esimene veerg ilma nimeta (<code>Unnamed: 0<\/code>), mille p\u00f5hjuseks on see, et esimeses veerus on erinevad kategooriad, millel ei ole veeru pealkirja. Selle parandamiseks v\u00f5ime esimeses veerus olevad andmed muuta reasiltideks. Selleks tuleb lisada <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">read_csv<\/code> funktsiooni juurde <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">index_col=0<\/code>, mille tulemusel kasutatakse esimese veeru andmeid reasiltidena.<\/p>\n<p>&nbsp;<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">csv = pd.read_csv(url, encoding='UTF-8', sep=';', index_col=0)\r\n\r\n# V\u00e4ljastame terve tabeli, sest see ei ole v\u00e4ga suur.\r\nprint(csv)<\/pre>\n<pre><span style=\"color: #3366ff\"><strong>&gt;&gt;&gt;<\/strong><\/span> <span style=\"color: #999999\">%Run guido.py<\/span>\r\n                                      2004    2005  ...    2017    2018\r\n  Teatrite arv                        21.0    22.0  ...    47.0    58.0\r\n  Lavastused                         326.0   348.0  ...   559.0   582.0\r\n  ..uuslavastused                    121.0   153.0  ...   204.0   211.0\r\n  Etendused                         3974.0  4288.0  ...  6713.0  6695.0\r\n  Vaatajad. tuhat                    937.5   843.4  ...  1164.0  1192.0\r\n  Teatrisk\u00e4igud 1000 elaniku kohta   695.0   627.0  ...   883.5   901.7\r\n\r\n  [6 rows x 15 columns]\r\n<\/pre>\n<p>Uurime, kas andmetes on puuduvaid v\u00e4\u00e4rtusi. Kasutame selleks funktsiooni <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">isna<\/code> ja <code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\">sum<\/code>.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">print(csv.isna().sum())<\/pre>\n<pre><span style=\"color: #3366ff\"><strong>&gt;&gt;&gt;<\/strong><\/span> <span style=\"color: #999999\">%Run guido.py<\/span>\r\n  2004    0\r\n  2005    0\r\n  2006    0\r\n  2007    0\r\n  2008    0\r\n  2009    0\r\n  2010    0\r\n  2011    0\r\n  2012    0\r\n  2013    0\r\n  2014    0\r\n  2015    0\r\n  2016    0\r\n  2017    0\r\n  2018    0\r\n  dtype: int64\r\n<\/pre>\n<p>N\u00e4eme, et puuduvaid v\u00e4\u00e4rtusi ei ole. Uurime ka, mis t\u00fc\u00fcpi on andmed veergudes.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">print(csv.dtypes)<\/pre>\n<pre><span style=\"color: #3366ff\"><strong>&gt;&gt;&gt;<\/strong><\/span> <span style=\"color: #999999\">%Run guido.py<\/span>\r\n  2004    float64\r\n  2005    float64\r\n  2006    float64\r\n  2007    float64\r\n  2008    float64\r\n  2009    float64\r\n  2010    float64\r\n  2011    float64\r\n  2012    float64\r\n  2013    float64\r\n  2014    float64\r\n  2015    float64\r\n  2016    float64\r\n  2017    float64\r\n  2018    float64\r\n  dtype: object\r\n<\/pre>\n<p>Veergude andmet\u00fc\u00fcp on sobiv.<\/p>\n<h2>Andmete kajastamine graafikul<\/h2>\n<p>Andmete p\u00f5hjal saab graafiku teha mooduli Matplotlib abil. Enne joonise tegemist, peame aga andmed transponeerima ehk vahetama \u00e4ra read ja veerud. Nimelt on meil mugavam joonist teha, kui reasiltideks on aastad ja veergudeks on erinevate kategooriate andmed (nt teatrite arv). Nii saame automaatselt m\u00e4\u00e4rata, et x-telje andmed on aastad ja y-teljel on m\u00f5ne kategooria andmed.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\"># Impordime mooduli\r\nimport matplotlib.pyplot as plt\r\n\r\n# Transponeerime andmed, muudame veergude pealkirjad indeksiteks ja indeksid veergude pealkirjadeks.\r\ntransponeeritud_andmed = csv.T<\/pre>\n<p>&nbsp;<\/p>\n<p>Transponeeritud andmed:<\/p>\n<pre>            Teatrite arv  ...  Teatrisk\u00e4igud 1000 elaniku kohta\r\n2004          21.0  ...                             695.0\r\n2005          22.0  ...                             627.0\r\n2006          26.0  ...                             686.0\r\n2007          30.0  ...                             761.8\r\n2008          26.0  ...                             733.3\r\n2009          28.0  ...                             652.0\r\n2010          29.0  ...                             671.5\r\n...\r\n<\/pre>\n<p>Loome joonise.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"bootstrap4\" data-enlighter-linenumbers=\"false\">import pandas as pd\r\nimport matplotlib.pyplot as plt\r\n\r\n# Andmed\r\nurl = 'http:\/\/kodu.ut.ee\/~merka123\/plotly\/teater.csv'\r\n\r\ncsv = pd.read_csv(url, encoding='UTF-8', sep=';', index_col=0)\r\n\r\ntransponeeritud_andmed = csv.T\r\ntransponeeritud_andmed['Teatrisk\u00e4igud 1000 elaniku kohta'].plot.line(xlabel=\"Aastad\",\r\n                               ylabel=\"Teatrisk\u00e4igud 1000 elaniku kohta\",\r\n                               title=\"Teatris k\u00e4imine Eestis 2004-2018\",\r\n                               color='#3CB371')\r\n\r\nplt.show()<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-725 size-full\" src=\"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2020\/12\/pasted-image-0-9.png\" alt=\"\" width=\"640\" height=\"480\" srcset=\"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2020\/12\/pasted-image-0-9.png 640w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2020\/12\/pasted-image-0-9-300x225.png 300w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2020\/12\/pasted-image-0-9-65x49.png 65w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2020\/12\/pasted-image-0-9-225x169.png 225w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2020\/12\/pasted-image-0-9-350x263.png 350w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/p>\n","protected":false},"author":16,"menu_order":12,"template":"","meta":{"pb_show_title":"on","pb_short_title":"","pb_subtitle":"","pb_authors":[],"pb_section_license":""},"chapter-type":[],"contributor":[],"license":[],"class_list":["post-718","chapter","type-chapter","status-publish","hentry"],"part":93,"_links":{"self":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/chapters\/718","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/chapters"}],"about":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/wp\/v2\/types\/chapter"}],"author":[{"embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/wp\/v2\/users\/16"}],"version-history":[{"count":5,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/chapters\/718\/revisions"}],"predecessor-version":[{"id":720,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/chapters\/718\/revisions\/720"}],"part":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/parts\/93"}],"metadata":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/chapters\/718\/metadata\/"}],"wp:attachment":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/wp\/v2\/media?parent=718"}],"wp:term":[{"taxonomy":"chapter-type","embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/chapter-type?post=718"},{"taxonomy":"contributor","embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/wp\/v2\/contributor?post=718"},{"taxonomy":"license","embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/wp\/v2\/license?post=718"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}