{"id":305932,"date":"2020-06-25T21:00:33","date_gmt":"2020-06-25T21:00:33","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=305932"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=305932","title":{"rendered":"\u0418\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u0430\u044f \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 Plotly: \u0441\u0442\u0440\u043e\u0438\u043c \u043a\u0440\u0430\u0441\u0438\u0432\u044b\u0435 \u0433\u0440\u0430\u0444\u0438\u043a\u0438 \u0441 Express \u0438 Cufflinks"},"content":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/company\/skillfactory\/blog\/506974\/\">\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/9d1\/704\/22b\/9d170422b8002b362f7f894e6ed8177c.gif\" alt=\"image\"><\/div>\n<p>  \u0415\u0441\u043b\u0438 \u0412\u044b \u0432\u0441\u0435 \u0435\u0449\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 Matplotlib \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0433\u0440\u0430\u0444\u0438\u043a\u043e\u0432 \u0432 Python, \u0441\u0430\u043c\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0432\u0437\u0433\u043b\u044f\u043d\u0443\u0442\u044c \u043d\u0430 \u043c\u0438\u0440 \u0441 \u0432\u044b\u0441\u043e\u0442\u044b \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0439 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438.<\/p>\n<p>  Plotly \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043a\u0440\u0430\u0441\u0438\u0432\u044b\u0435, \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0435, \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c\u044b\u0435 \u0433\u0440\u0430\u0444\u0438\u043a\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0432\u0441\u0435\u0433\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0441\u0442\u0440\u043e\u043a \u043a\u043e\u0434\u0430. \u041e\u0434\u043d\u0430\u043a\u043e \u0431\u0435\u0437 \u043a\u0430\u0440\u0442\u044b \u043f\u043e\u0434\u044a\u0435\u043c \u0432 \u0433\u043e\u0440\u0443 Plotly \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u044b\u043c \u0438 \u043c\u0443\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c.<\/p>\n<p>  \u0412\u043e\u0442 \u043a\u0430\u043c\u043d\u0438 \u043f\u0440\u0435\u0442\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u044f\u0432\u0438\u0442\u044c\u0441\u044f \u043d\u0430 \u043f\u0443\u0442\u0438 \u0430\u0432\u0430\u043d\u0442\u044e\u0440\u0438\u0441\u0442\u043e\u0432, \u0440\u0435\u0448\u0438\u0432\u0448\u0438\u0445 \u043f\u043e\u043a\u043e\u0440\u0438\u0442\u044c \u044d\u0442\u0443 \u0433\u043e\u0440\u0443:<\/p>\n<ul>\n<li>\u043d\u0435\u043f\u043e\u043d\u044f\u0442\u043d\u0430\u044f \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u043e\u0444\u0444\u043b\u0430\u0439\u043d \u0431\u0435\u0437 \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430;<\/li>\n<li>\u043d\u0435\u0438\u043c\u043e\u0432\u0435\u0440\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0442\u0440\u043e\u043a \u043a\u043e\u0434\u0430;<\/li>\n<li>\u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0430\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f;<\/li>\n<li>\u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 Plotly, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0431\u043b\u0443\u0434\u0438\u0442\u044c\u0441\u044f (Dash, Express, Chart Studio \u0438 Cufflinks).<\/li>\n<\/ul>\n<p>  \u041d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437 \u043f\u043e\u043f\u044b\u0442\u0430\u0432\u0448\u0438\u0441\u044c \u0432\u0441\u043a\u0430\u0440\u0430\u0431\u043a\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u044d\u0442\u0443 \u0433\u043e\u0440\u0443, \u044f \u0432\u0441\u0435 \u0436\u0435 \u043d\u0430\u0448\u0435\u043b \u043a\u0430\u0440\u0442\u0443, \u0441\u043d\u0430\u0440\u044f\u0436\u0435\u043d\u0438\u0435 \u0438 \u043a\u043e\u0440\u043e\u0442\u043a\u0443\u044e \u0442\u0440\u043e\u043f\u0438\u043d\u043a\u0443 \u043a \u0432\u0435\u0440\u0448\u0438\u043d\u0435. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0443\u043a\u0430\u0436\u0443 \u0432\u0430\u043c \u043f\u0443\u0442\u044c, \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0432 \u043a\u0430\u043a \u043d\u0430\u0447\u0430\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0443 \u0432 \u043e\u0444\u0444\u043b\u0430\u0439\u043d-\u0440\u0435\u0436\u0438\u043c\u0435, \u043a\u0430\u043a \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0433\u0440\u0430\u0444\u0438\u043a\u0438, \u0430 \u043f\u043e\u0442\u043e\u043c \u0438\u0445 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u043a\u0443\u0434\u0430 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c\u0441\u044f \u0437\u0430 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0438 \u043a\u0430\u043a\u0438\u043c\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u043c\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f. <br \/>  <a name=\"habracut\"><\/a>  <\/p>\n<h3>Plotly<\/h3>\n<p>  \u0414\u0430\u043d\u043d\u0430\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0431\u044b\u043b\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0430 <a href=\"https:\/\/plot.ly\/\">\u043e\u0434\u043d\u043e\u0438\u043c\u0435\u043d\u043d\u043e\u0439 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0435\u0439<\/a>, \u0432\u043b\u0430\u0434\u0435\u044e\u0449\u0435\u0439 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0445 \u0433\u0440\u0430\u0444\u0438\u043a\u043e\u0432 \u0438 \u0447\u0430\u0440\u0442\u043e\u0432. \u0417\u0430\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f \u0437\u0430 \u0441\u0447\u0435\u0442 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u043e\u0433\u043e \u043f\u0430\u043a\u0435\u0442\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0441\u0432\u043e\u0438\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c. \u0422\u0430\u043a\u0436\u0435 \u0437\u0430 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0443\u044e \u043f\u043b\u0430\u0442\u0443 \u043e\u043d\u0430 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0412\u0430\u0448 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433. \u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f \u0431\u0430\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0432 \u041c\u043e\u043d\u0440\u0435\u0430\u043b\u0435 \u0441 \u043e\u0444\u0438\u0441\u043e\u043c \u0432 \u0411\u043e\u0441\u0442\u043e\u043d\u0435. <\/p>\n<p>  Plotly.py \u043e\u0441\u043d\u043e\u0432\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 JavaScript-\u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0435 <a href=\"https:\/\/d3js.org\/\">D3.js<\/a>. \u0422\u0430\u043a\u0436\u0435 \u0432 Plotly \u0435\u0441\u0442\u044c API-\u043e\u0431\u0435\u0440\u0442\u043a\u0438 \u0434\u043b\u044f R, Julia \u0438 \u043c\u043d\u043e\u0433\u0438\u0445 \u0434\u0440\u0443\u0433\u0438\u0445 \u044f\u0437\u044b\u043a\u043e\u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u0421\u0442\u043e\u0438\u0442 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0430 \u043d\u0435 \u043d\u0430 \u0432\u0441\u0435\u0445 \u044f\u0437\u044b\u043a\u0430\u0445.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/5a6\/df8\/b7f\/5a6df8b7fb41854e271f06d7dd749eb6.png\" alt=\"image\"><\/p>\n<p>  <i>\u041f\u0440\u0438\u043c\u0435\u0440\u044b \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u043e\u0442 Plotly<\/i><\/p>\n<p>  \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c\u0441\u044f \u043d\u0430 \u043e\u043f\u0446\u0438\u044f\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 Python. \u042f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e Python 3.7 \u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0435.<\/p>\n<pre><code class=\"python\">cufflinks                0.15 jupyterlab             0.35.5 plotly                   3.8.1      plotly-express       0.1.7<\/code><\/pre>\n<p>  \u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f cufflinks 0.15 (0.13 \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u0434\u0440\u0443\u0436\u0438\u0442 \u0441 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u043c\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f\u043c\u0438 Plotly).<br \/>  \u041f\u0420\u0410\u0412\u041a\u0410 (\u043c\u0430\u0439 2020): \u0441\u0430\u043c\u0430\u044f \u0441\u0432\u0435\u0436\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f Plotly \u2014 4.7.1. \u0411\u043e\u043b\u044c\u0448\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u043d\u0438\u0436\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 \u0432\u0441\u0435 \u0442\u0430\u043a \u0436\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c\u0430 \u043a \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b. \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u044d\u043a\u0441\u043f\u0440\u0435\u0441\u0441-\u043c\u043e\u0434\u0443\u043b\u044c \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u0447\u0430\u0441\u0442\u044c \u043f\u0430\u043a\u0435\u0442\u0430 Plotly.<\/p>\n<h3>plotly.py<\/h3>\n<p>  \u041d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0442\u043e \u0447\u0442\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u0432 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f\u0445, \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0430\u043a\u043a\u0430\u0443\u043d\u0442 \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f Plotly \u043d\u0435 \u043d\u0443\u0436\u043d\u043e, \u043a\u0430\u043a \u0438 \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0432 \u043e\u043d\u043b\u0430\u0439\u043d-\u0440\u0435\u0436\u0438\u043c\u0435.<\/p>\n<p>  \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u043c\u043e\u0434\u0443\u043b\u044c plotly.py \u0441 <a href=\"https:\/\/docs.anaconda.com\/anaconda\/\">conda<\/a> \u0438\u043b\u0438 \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435\u0441\u044c <code>pip install plotly<\/code>. <\/p>\n<p>  \u0418\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0439\u0442\u0435 \u043c\u043e\u0434\u0443\u043b\u044c \u0438 \u0441\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0443\u0439\u0442\u0435 \u0435\u0433\u043e \u0434\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0432 \u043e\u0444\u0444\u043b\u0430\u0439\u043d-\u0440\u0435\u0436\u0438\u043c\u0435:<\/p>\n<pre><code class=\"python\">import plotly.offline as py py.init_notebook_mode(connected=False)<\/code><\/pre>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u0442\u044c \u0443 \u0412\u0430\u0441 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0430\u043a\u043a\u0430\u0443\u043d\u0442. \u0422\u0430\u043a \u043c\u044b \u0438 \u043f\u0440\u0435\u043e\u0434\u043e\u043b\u0435\u043b\u0438 \u043f\u0435\u0440\u0432\u0443\u044e \u043f\u0440\u0435\u0433\u0440\u0430\u0434\u0443 \u043d\u0430 \u043f\u0443\u0442\u0438 \u043a \u0432\u0435\u0440\u0448\u0438\u043d\u0435 \u0433\u043e\u0440\u044b Plotly. <\/p>\n<p>  \u0412\u043e\u0442 \u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0433\u043e Plotly-\u0433\u0440\u0430\u0444\u0438\u043a\u0430 \u0441 \u0437\u0435\u043c\u043d\u044b\u043c \u0448\u0430\u0440\u043e\u043c, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u0437\u043c\u0435\u043d\u044f\u0442\u044c \u0442\u0438\u043f \u043f\u0440\u043e\u0435\u043a\u0446\u0438\u0438 \u0438 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u043b\u0430\u0439\u0434\u0435\u0440\u043e\u0432. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u0430\u043c\u0438 \u043e\u0446\u0435\u043d\u0438\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0441 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0445\u0435\u043c\u043e\u0439 <a href=\"https:\/\/plot.ly\/pandas\/lines-on-maps\/\">\u0437\u0434\u0435\u0441\u044c<\/a>.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/fc5\/8bd\/b07\/fc58bdb074f637f5eba47ae55bfd63eb.gif\" alt=\"image\"> <\/p>\n<p>  \u041d\u0438\u0436\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043e \u043e\u0431\u044a\u0435\u043c\u043d\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 <a href=\"https:\/\/plot.ly\/~jackp\/17248.embed\">\u043a\u043e\u0434\u0430<\/a>, \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0438\u0437 <a href=\"https:\/\/plot.ly\/pandas\/lines-on-maps\/\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438<\/a>, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0439 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0442\u0430\u043a\u043e\u0433\u043e \u0432\u0438\u0442\u0438\u0435\u0432\u0430\u0442\u043e\u0433\u043e \u0433\u0440\u0430\u0444\u0438\u043a\u0430.<\/p>\n<pre><code class=\"python\">import pandas as pd import numpy as np import plotly.offline as py import plotly.graph_objs as go import json  py.init_notebook_mode(connected=False)  izip = zip  df = pd.read_csv('https:\/\/raw.githubusercontent.com\/plotly\/datasets\/master\/globe_contours.csv') df.head()  contours = []  scl = ['rgb(213,62,79)','rgb(244,109,67)','rgb(253,174,97)',\\        'rgb(254,224,139)','rgb(255,255,191)','rgb(230,245,152)',\\        'rgb(171,221,164)','rgb(102,194,165)','rgb(50,136,189)']  def pairwise(iterable):     a = iter(iterable)     return izip(a, a)  i=0 for lat, lon in pairwise(df.columns):     contours.append( dict(         type = 'scattergeo',         lon = df[lon],         lat = df[lat],         mode = 'lines',         line = dict(             width = 2,             color = scl[i]         )     ) )     i = 0 if i+1 &gt;= len(df.columns)\/4 else i+1      layout = dict(         margin = dict( t = 0, l = 0, r = 0, b = 0 ),         showlegend = False,                  geo = dict(             showland = True,             showlakes = True,             showcountries = True,             showocean = True,             countrywidth = 0.5,             landcolor = 'rgb(230, 145, 56)',             lakecolor = 'rgb(0, 255, 255)',             oceancolor = 'rgb(0, 255, 255)',             projection = dict(                  type = 'orthographic',                 rotation = dict(lon = 0, lat = 0, roll = 0 )                         ),             lonaxis = dict(                  showgrid = True,                 gridcolor = 'rgb(102, 102, 102)',                 gridwidth = 0.5             ),             lataxis = dict(                  showgrid = True,                 gridcolor = 'rgb(102, 102, 102)',                 gridwidth = 0.5             )         )     )  sliders = []  lon_range = np.arange(-180, 180, 10) lat_range = np.arange(-90, 90, 10)  sliders.append(      dict(         active = len(lon_range)\/2,         currentvalue = {&quot;prefix&quot;: &quot;Longitude: &quot;},         pad = {&quot;t&quot;: 0},         steps = [{                 'method':'relayout',                  'label':str(i),                 'args':['geo.projection.rotation.lon', i]} for i in lon_range]     )       )  sliders.append(      dict(         active = len(lat_range)\/2,         currentvalue = {&quot;prefix&quot;: &quot;Latitude: &quot;},         pad = {&quot;t&quot;: 100},         steps = [{                 'method':'relayout',                  'label':str(i),                 'args':['geo.projection.rotation.lat', i]} for i in lat_range]     )       )  projections = [ &quot;equirectangular&quot;, &quot;mercator&quot;, &quot;orthographic&quot;, &quot;natural earth&quot;,&quot;kavrayskiy7&quot;,                 &quot;miller&quot;, &quot;robinson&quot;, &quot;eckert4&quot;, &quot;azimuthal equal area&quot;,&quot;azimuthal equidistant&quot;,                 &quot;conic equal area&quot;, &quot;conic conformal&quot;, &quot;conic equidistant&quot;, &quot;gnomonic&quot;, &quot;stereographic&quot;,                 &quot;mollweide&quot;, &quot;hammer&quot;, &quot;transverse mercator&quot;, &quot;albers usa&quot;, &quot;winkel tripel&quot; ]  buttons = [ dict( args=['geo.projection.type', p], label=p, method='relayout' ) for p in projections ]  annot = list([ dict( x=0.1, y=0.8, text='Projection', yanchor='bottom',                      xref='paper', xanchor='right', showarrow=False )])  # Update Layout Object  layout[ 'updatemenus' ] = list([ dict( x=0.1, y=0.8, buttons=buttons, yanchor='top' )])  layout[ 'annotations' ] = annot  layout[ 'sliders' ] = sliders fig = dict( data=contours, layout=layout ) py.iplot( fig) <\/code><\/pre>\n<p>  \u041d\u0435 \u0443\u0432\u0435\u0440\u0435\u043d\u0430, \u043a\u0430\u043a \u044d\u0442\u043e\u0442 \u043f\u0440\u0438\u043c\u0435\u0440 \u0441\u044e\u0434\u0430 \u0437\u0430\u043f\u0438\u0445\u043d\u0443\u0442\u044c, \u043d\u0435 \u0440\u0430\u0437\u043c\u0430\u0437\u0430\u0432 \u0435\u0433\u043e \u043f\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\u043c. <\/p>\n<p>  \u0413\u043b\u0430\u0432\u043d\u043e\u0435, \u043f\u043e\u0447\u0435\u043c\u0443 \u0441\u0442\u043e\u0438\u0442 \u0438\u0437\u0431\u0435\u0433\u0430\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u201c\u0432\u0430\u043d\u0438\u043b\u044c\u043d\u044b\u043c\u201d \u043c\u043e\u0434\u0443\u043b\u0435\u043c plotly.py, \u2014 \u0433\u0440\u043e\u043c\u043e\u0437\u0434\u043a\u043e\u0441\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0445. \u041f\u0440\u043e\u0446\u0435\u0441\u0441 \u0432\u0431\u0438\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u0434\u0430 \u0432\u044b\u0445\u043e\u0434\u0438\u0442 \u043e\u0447\u0435\u043d\u044c \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0438 \u0447\u0430\u0441\u0442\u043e \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043a \u043e\u0448\u0438\u0431\u043a\u0430\u043c. \u041a \u0441\u0447\u0430\u0441\u0442\u044c\u044e, \u0438\u0437 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438 \u0435\u0441\u0442\u044c \u0434\u0432\u0430 \u0432\u044b\u0445\u043e\u0434\u0430. <\/p>\n<p>  \u0415\u0441\u043b\u0438 \u043d\u0430\u043c \u0432\u0441\u0435 \u0436\u0435 \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0441\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0441 \u0442\u0440\u043e\u043f\u0438\u043d\u043a\u0438 ploty.py, \u0442\u043e \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u043f\u043e\u0440\u044b\u0442\u044c\u0441\u044f \u0432 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0435. \u041e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043a\u0440\u0430\u0441\u0438\u0432\u043e, \u043d\u043e \u0447\u0430\u0441\u0442\u043e \u0432\u0441\u0435 \u0440\u0430\u0432\u043d\u043e \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0447\u0430\u0441\u0430\u043c\u0438 \u043a\u043e\u043f\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u0430\u0439\u0442\u0430\u0445 \u0432 \u043f\u043e\u0438\u0441\u043a\u0430\u0445 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0435\u0433\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u0430 \u043f\u043e\u0444\u0438\u043a\u0441\u0438\u0442\u044c \u043a\u043e\u0434. \u0423 Plotly \u0435\u0441\u0442\u044c \u0441\u0432\u043e\u0439 <a href=\"https:\/\/community.plot.ly\/\">\u0444\u043e\u0440\u0443\u043c<\/a> \u0441 \u043d\u0435\u043f\u043b\u043e\u0445\u0438\u043c\u0438 \u0441\u043e\u0432\u0435\u0442\u0430\u043c\u0438, \u043d\u043e \u043c\u043d\u043e\u0433\u0438\u0435 \u043e\u0431\u0440\u0430\u0437\u0446\u044b \u043a\u043e\u0434\u043e\u0432 \u043d\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u044b \u0438 \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 <a href=\"https:\/\/github.com\/plotly\/plotly.py\/blob\/master\/migration-guide.md#data-array-properties-may-not-be-specified-as-scalars\">\u0432 \u0432\u0435\u0440\u0441\u0438\u0438 3.0<\/a>. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0438\u0449\u0438\u0442\u0435 \u0441\u0440\u0430\u0437\u0443 \u043e\u0431\u0440\u0430\u0437\u0446\u044b, \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u044b\u0435 \u0441 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0432\u0435\u0440\u0441\u0438\u0435\u0439, \u0438\u043b\u0438 \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u0442\u044c \u0438\u0445 \u0432\u0440\u0443\u0447\u043d\u0443\u044e.<\/p>\n<p>  \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0434\u0432\u0430 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430 \u043e\u0442 Plotly, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b \u043e\u0431\u0440\u0430\u0442\u0438\u043c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e\u0442 \u0432\u044b\u0441\u043e\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u0435 \u043e\u0431\u0435\u0440\u0442\u043a\u0438, \u0443\u043f\u0440\u043e\u0449\u0430\u044e\u0449\u0438\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 plotly.py. \u041e\u043d\u0438 \u043f\u043e\u043c\u043e\u0433\u0443\u0442 \u0441\u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442\u044c \u0432\u0440\u0435\u043c\u044f, \u0435\u0441\u043b\u0438 \u0432\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442\u0435 \u0441 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u043e\u0439 Pandas. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0438\u0445 \u043f\u043e\u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435. <\/p>\n<h3>Express<\/h3>\n<p>  \u041c\u043e\u0434\u0443\u043b\u044c Plotly Express \u0431\u044b\u043b \u0432\u044b\u043f\u0443\u0449\u0435\u043d \u0432 \u043c\u0430\u0440\u0442\u0435 2019 \u0433\u043e\u0434\u0430 \u0438 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438. \u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430\u0434 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435\u043c \u0443\u0441\u043b\u043e\u0432\u0438\u0439 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 \u043d\u043e\u0432\u044b\u0445 \u0433\u0440\u0430\u0444\u0438\u043a\u043e\u0432 \u0438 \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u0432\u044b\u043f\u0443\u0441\u0442\u0438\u0442\u044c Plotly 4.0 \u043b\u0435\u0442\u043e\u043c 2019 \u0433\u043e\u0434\u0430. <\/p>\n<p>  <a href=\"https:\/\/github.com\/plotly\/plotly_express\">Express<\/a> \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c \u043a\u043e\u0434, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0439 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0434\u0430\u0442\u0430\u0444\u0440\u0435\u0439\u043c\u043e\u0432 Pandas \u0432 10 \u0440\u0430\u0437. \u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0441\u0432\u043e\u044e \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u043d\u0443\u0436\u043d\u043e \u0432 \u0432\u0438\u0434\u0435 <a href=\"https:\/\/en.wikipedia.org\/wiki\/Tidy_data\">\u201c\u043e\u043f\u0440\u044f\u0442\u043d\u044b\u0445\u201d \u0434\u0430\u043d\u043d\u044b\u0445<\/a>, \u0433\u0434\u0435 \u043a\u0430\u0436\u0434\u044b\u0439 \u0441\u0442\u043e\u043b\u0431\u0435\u0446 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043e\u0434\u043d\u043e\u0439 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439, \u0430 \u043a\u0430\u0436\u0434\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u2014 \u043e\u0434\u043d\u043e\u043c\u0443 \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044e. <\/p>\n<p>  \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 Express \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <code>pip install plotly_express<\/code>.<\/p>\n<p>  \u0427\u0442\u043e\u0431\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u0443 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u0432 \u0437\u0430\u043f\u0438\u0441\u043d\u043e\u0439 \u043a\u043d\u0438\u0436\u043a\u0435 Jupyter, \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043a\u043e\u0434 \u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443:<\/p>\n<p>  <code>jupyter labextension install @jupyterlab\/plotly-extension<\/code><\/p>\n<p>  \u0414\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u0434 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0433\u0438\u0441\u0442\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0441 \u0442\u0440\u0430\u0434\u0438\u0446\u0438\u043e\u043d\u043d\u044b\u043c Express \u0438\u043c\u043f\u043e\u0440\u0442\u043e\u043c:<\/p>\n<pre><code class=\"python\">import plotly_express as px          px.bar(my_df, x='my_x_column', y='my_y_column') <\/code><\/pre>\n<p>  \u0412\u0443\u0430\u043b\u044f! \u0412\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0433\u0438\u0441\u0442\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u043f\u043e \u0434\u0430\u043d\u043d\u044b\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u044b (\u0432\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u0441\u0432\u043e\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0442\u0430\u043c, \u0433\u0434\u0435 \u0443 \u043c\u0435\u043d\u044f \u0432 \u043a\u043e\u0434\u0435 \u0434\u0430\u043d\u043e \u201cmy_\u201d. <\/p>\n<p>  \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a, \u0438\u0437\u043c\u0435\u043d\u0438\u0432 \u0441\u0432\u043e\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<pre><code class=\"python\">px.bar(my_df, x='my_x_column', y='my_y_column', title='My Chart Title&quot;)<\/code><\/pre>\n<p>  \u0415\u0441\u043b\u0438 \u0412\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c, \u0442\u043e \u0441\u0442\u043e\u0438\u0442 \u0432\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f \u043a \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u043c\u0443 \u0433\u0440\u0430\u0444\u0438\u043a\u0443 Plotly. \u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c, \u0412\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043a \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u043c \u0432 \u0433\u0438\u0441\u0442\u043e\u0433\u0440\u0430\u043c\u043c\u0435. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0412\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u0443\u044e \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0443 \u0438 \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0434\u0430\u043d\u043d\u044b\u0445. \u0412\u043e\u0442 \u043a\u0430\u043a \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c:<\/p>\n<pre><code class=\"python\">_my_fig = px.bar(my_df, x='my_x_column', y='my_y_column', title='My Chart Title') _my_fig.data[0].update(     text=my_df['my_y_column'],       textposition='inside',     textfont=dict(size=10) ) _my_fig.iplot()<\/code><\/pre>\n<p>  \u0412\u043d\u0438\u043c\u0430\u043d\u0438\u0435: \u044f \u043d\u0430\u0448\u0435\u043b <a href=\"https:\/\/www.plotly.express\/plotly_express\/\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e<\/a> Express! \u041e\u043d\u0430 \u043d\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u043b\u0430\u0441\u044c \u0443 \u043c\u0435\u043d\u044f \u043d\u0430 \u043f\u0435\u0440\u0432\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u043f\u043e\u0438\u0441\u043a\u0430 \u0432 \u0433\u0443\u0433\u043b\u0435, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u043d\u0435 \u0441\u0440\u0430\u0437\u0443 \u0441\u043c\u043e\u0433 \u0435\u0435 \u043f\u0440\u0438\u043a\u0440\u0435\u043f\u0438\u0442\u044c. \u0422\u0435\u043f\u0435\u0440\u044c \u043e\u043d\u0430 \u0435\u0441\u0442\u044c. \u0412\u0441\u0435\u0433\u0434\u0430 \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430! <br \/>  Express \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0431\u044b\u0441\u0442\u0440\u043e \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0440\u0430\u0437\u043d\u043e\u0433\u043e \u0432\u0438\u0434\u0430 \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b, \u043d\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043d\u0435 \u0442\u0435, \u0447\u0442\u043e \u0412\u0430\u043c \u0442\u0440\u0435\u0431\u0443\u044e\u0442\u0441\u044f. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u0443\u044e \u0433\u0438\u0441\u0442\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u0441 \u043d\u0430\u043a\u043e\u043f\u043b\u0435\u043d\u0438\u0435\u043c \u0432\u044b \u0441\u0435\u0439\u0447\u0430\u0441 \u0432\u0440\u044f\u0434\u043b\u0438 \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u043e\u0431\u0440\u0430\u0442\u044c. \u0410 \u0435\u0441\u043b\u0438 \u043e\u0447\u0435\u043d\u044c \u043d\u0430\u0434\u043e, \u0442\u043e \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u043f\u043e\u0434\u043d\u0438\u043c\u0430\u0442\u044c\u0441\u044f \u0432 \u0433\u043e\u0440\u0443 \u043f\u043e \u0434\u0440\u0443\u0433\u043e\u0439 \u0442\u0440\u043e\u043f\u0438\u043d\u043a\u0435 \u2014 \u0432 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u0441 Cufflinks.<\/p>\n<h3>Cufflinks<\/h3>\n<p>  <a href=\"https:\/\/github.com\/santosjorge\/cufflinks\">Cufflinks<\/a> \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u0445\u043e\u0436 \u043d\u0430 Express \u0442\u0435\u043c, \u0447\u0442\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0431\u0435\u0440\u0442\u043a\u043e\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 Plotly, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0435\u0439 \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 Pandas. Cufflinks \u2014 \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u044f\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0443\u0436\u0435 \u0431\u043e\u043b\u0435\u0435 \u0447\u0435\u0442\u044b\u0440\u0435\u0445 \u043b\u0435\u0442.<\/p>\n<p>  \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u0435\u0435 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <code>pip install cufflinks<\/code>.<\/p>\n<p>  \u0418\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0439\u0442\u0435 \u043c\u043e\u0434\u0443\u043b\u044c \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u0442\u0435 \u0444\u0430\u0439\u043b \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u043d\u043e\u043c\u043d\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f.<\/p>\n<pre><code class=\"python\">import cufflinks as cf cf.set_config_file(offline=True)<\/code><\/pre>\n<p>  \u0421 Cufflinks \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043c\u043d\u043e\u0433\u0438\u0445 \u0432\u0438\u0434\u043e\u0432 \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c \u043d\u0443\u0436\u043d\u0430 \u043b\u0438\u0448\u044c \u043e\u0434\u043d\u0430 \u0441\u0442\u0440\u043e\u0447\u043a\u0430 \u043a\u043e\u0434\u0430. \u041a \u043f\u0440\u0438\u043c\u0435\u0440\u0443, \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0433\u0438\u0441\u0442\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u0441 \u043d\u0430\u043a\u043e\u043f\u043b\u0435\u043d\u0438\u0435\u043c \u0441 \u044d\u0442\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u043e\u0439 \u043f\u0440\u043e\u0449\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e. <\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/eea\/b9a\/f2d\/eeab9af2d5ed526a082cf5f20de1f08f.gif\" alt=\"image\"><\/p>\n<p>  <i>\u041f\u0440\u0438\u043c\u0435\u0440 \u0433\u0438\u0441\u0442\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0441 \u043d\u0430\u043a\u043e\u043f\u043b\u0435\u043d\u0438\u0435\u043c, \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0439 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Cufflinks. <\/i><\/p>\n<p>  \u0410 \u0432\u043e\u0442 \u0438 \u0441\u0430\u043c \u043a\u043e\u0434:<\/p>\n<pre><code class=\"python\">df = pd.DataFrame(np.random.rand(6, 3), columns=['A', 'B', 'C']) df.iplot(kind='bar', barmode='stack', title='Stacked Bar Chart with Random Data')<\/code><\/pre>\n<p>  \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Cufflinks \u0412\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c <code>.iplot()<\/code>.<\/p>\n<p>  \u041a\u0430\u043a \u0438 Express, Cufflinks \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u0447\u0442\u043e\u0431\u044b \u0412\u044b \u043c\u043e\u0433\u043b\u0438 \u0432\u043d\u043e\u0441\u0438\u0442\u044c \u043c\u0435\u043b\u043a\u0438\u0435 \u043f\u043e\u043f\u0440\u0430\u0432\u043a\u0438. \u041d\u043e \u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 Cufflinks, \u0412\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0443\u0442\u043e\u0447\u043d\u0438\u0442\u044c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e <code>asFigure=True<\/code>, \u0447\u0442\u043e\u0431\u044b \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e. \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u0433\u0440\u0430\u0444\u0438\u043a \u0442\u043e\u0447\u043d\u043e \u0442\u0430\u043a \u0436\u0435, \u043a\u0430\u043a \u0432 Express. \u0412\u043e\u0442 \u043a\u0430\u043a \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c, \u0435\u0441\u043b\u0438 \u0412\u044b \u0437\u0430\u0445\u043e\u0442\u0438\u0442\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0438 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u043e\u0441\u0435\u0439. <\/p>\n<pre><code class=\"python\">my_fig = df.iplot(kind='bar', barmode='stack', title='Stacked Bar Chart with Random Data', asFigure=True) _fig.layout.yaxis = dict(title='Members', range=[0, 600]) <\/code><\/pre>\n<p>  \u0412\u043e\u0442 <a href=\"https:\/\/plot.ly\/ipython-notebooks\/cufflinks\/\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f<\/a> Cufflinks. <\/p>\n<p>  \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, Cufflinks \u0442\u043e\u0436\u0435 \u0438\u043c\u0435\u0435\u0442 \u0441\u0432\u043e\u0438 \u043b\u0438\u043c\u0438\u0442\u044b. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u044d\u0442\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u043d\u0435\u043b\u044c\u0437\u044f \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0433\u0440\u0430\u0444\u0438\u043a \u0440\u0430\u0441\u0441\u0435\u044f\u043d\u0438\u044f \u0441 \u0433\u0435\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430\u043c\u0438. <\/p>\n<h3>\u0421\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0442\u0440\u0435\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432<\/h3>\n<p>  \u0414\u0430\u043b\u0435\u0435 \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0442\u044c \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u0434\u0430 \u0441\u043e \u0441\u0445\u043e\u0436\u0435\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043e\u0439 \u0434\u043b\u044f \u0433\u0440\u0430\u0444\u0438\u043a\u043e\u0432, \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e plotly.py, Express \u0438 Cufflinks. <\/p>\n<h3>plotly.py<\/h3>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/a4c\/8dd\/e8d\/a4c8dde8d9e2541815144fb71bf6723e.png\" alt=\"image\"><\/p>\n<p>  \u041f\u0440\u0438\u043c\u0435\u0440 \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u0440\u0430\u0441\u0441\u0435\u044f\u043d\u0438\u044f, \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u043e\u0439 \u0441 plotly.py<\/p>\n<pre><code class=\"python\">fig = {     'data': [         {             'x': df2007.gdpPercap,              'y': df2007.lifeExp,              'text': df2007.country,              'mode': 'markers',              'name': '2007'},     ],     'layout': {         'title': &quot;Example Scatter Plot with Vanilla plotly.py&quot;     } } py.iplot(fig)<\/code><\/pre>\n<p>  <\/p>\n<h3>Express<\/h3>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/1c5\/107\/b12\/1c5107b123d59397496b3a5e6fbff6d3.png\" alt=\"image\"><\/p>\n<p>  <i>\u041f\u0440\u0438\u043c\u0435\u0440 \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u0440\u0430\u0441\u0441\u0435\u044f\u043d\u0438\u044f, \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u043e\u0439 \u0441 Plotly Express<\/i><\/p>\n<pre><code class=\"python\">px.scatter(     df2007,      x=&quot;gdpPercap&quot;,      y=&quot;lifeExp&quot;,      title='Example Scatter Plot with Plotly Express' )<\/code><\/pre>\n<p>  \u0412\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043f\u0440\u043e\u0441\u0442\u043e \u0438 \u043b\u0430\u043a\u043e\u043d\u0438\u0447\u043d\u043e! \u0424\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f, \u0430 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u043e\u0441\u0435\u0439 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438. \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u0432\u0437\u0433\u043b\u044f\u043d\u0443\u0442\u044c \u043d\u0430 \u0442\u043e\u0442 \u0436\u0435 \u0433\u0440\u0430\u0444\u0438\u043a \u0432 Cufflinks.<\/p>\n<h3>Cufflinks<\/h3>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/cb4\/b74\/4a1\/cb4b744a163b1f1d383e3c205ca51ade.png\" alt=\"image\"><\/p>\n<p>  <i>\u041f\u0440\u0438\u043c\u0435\u0440 \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u0440\u0430\u0441\u0441\u0435\u044f\u043d\u0438\u044f, \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u043e\u0439 \u0441 Cufflinks<\/i><\/p>\n<pre><code class=\"python\">df2007.iplot(     kind='scatter',      mode='markers',      x='gdpPercap',      y='lifeExp',      title='Example Scatter Plot with Cufflinks' )<\/code><\/pre>\n<p>  \u041a\u043e\u0434 \u043f\u043e\u0445\u043e\u0436 \u043d\u0430 Express, \u043d\u043e \u0443 \u0433\u0440\u0430\u0444\u0438\u043a\u0430 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0434\u0440\u0443\u0433\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e. \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e, \u0441 Express \u0438 Cufflinks \u0412\u0430\u043c \u043d\u0435 \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0447\u0430\u0441\u0430\u043c\u0438 \u0432\u044b\u0441\u0442\u0443\u043a\u0438\u0432\u0430\u0442\u044c \u043a\u043e\u0434\u044b, \u0447\u0442\u043e \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0432\u0430\u0436\u043d\u043e \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0431\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u0433\u0440\u0430\u0444\u0438\u043a\u043e\u0432. <\/p>\n<p>  \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0438 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c\u0441\u044f \u043a \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438.<\/p>\n<h3>\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0433\u0440\u0430\u0444\u0438\u043a\u043e\u0432 Cufflinks \u0438 Express<\/h3>\n<p>  \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u043a \u043c\u0430\u043a\u0435\u0442\u0443 \u0433\u0440\u0430\u0444\u0438\u043a\u0430, \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0441 Cufflinks, \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u043e\u0441\u0435\u0439. <\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/b1d\/26f\/e61\/b1d26fe61ad840068019fc1279db52bd.png\" alt=\"image\"><\/p>\n<p>  <i>\u041f\u0440\u0438\u043c\u0435\u0440 \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u0440\u0430\u0441\u0441\u0435\u044f\u043d\u0438\u044f, \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u043e\u0439 \u0441 Cufflinks \u2014 \u0414\u043e\u0441\u0442\u0443\u043f \u043a \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u043c\u0443 \u0433\u0440\u0430\u0444\u0438\u043a\u0443<\/i><\/p>\n<pre><code class=\"python\">fig = df2007.iplot(     kind='scatter',      mode='markers',      x='gdpPercap',      y='lifeExp',      asFigure=True,     title='Example Scatter Plot with Cufflinks - Access Underlying Figure' ) fig.layout.xaxis.title = &quot;GDP per Capita&quot; fig.layout.yaxis.title = &quot;Life Expectancy&quot; fig.iplot()<\/code><\/pre>\n<p>  \u0412\u043e\u0442 \u043a\u0430\u043a \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u0441 Express. \u041d\u0435 \u0437\u0430\u0431\u044b\u0432\u0430\u0439\u0442\u0435, \u0447\u0442\u043e \u0432 \u0434\u0430\u043d\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0435 \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0443\u0442\u043e\u0447\u043d\u044f\u0442\u044c <code>asFigure=True<\/code>.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/481\/f2d\/15d\/481f2d15d31c0e693d3b3daa6a942dc6.png\" alt=\"image\"><\/p>\n<p>  <i>\u041f\u0440\u0438\u043c\u0435\u0440 \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u0440\u0430\u0441\u0441\u0435\u044f\u043d\u0438\u044f, \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u043e\u0439 \u0441 Plotly Express \u2014 \u0414\u043e\u0441\u0442\u0443\u043f \u043a \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u043c\u0443 \u0433\u0440\u0430\u0444\u0438\u043a\u0443<\/i><\/p>\n<pre><code class=\"python\">fig = px.scatter(     df2007,      x=&quot;gdpPercap&quot;,      y=&quot;lifeExp&quot;,      title='Example Scatter Plot with Plotly Express - Access Underlying Figure' ) fig.layout.xaxis.title = &quot;GDP per Capita&quot; fig.layout.yaxis.title = &quot;Life Expectancy&quot; fig.iplot()<\/code><\/pre>\n<p>  \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c\u0441\u044f \u043a \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u0434\u0430\u043d\u043d\u044b\u043c, \u0447\u0442\u043e\u0431\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0435 \u043c\u0435\u0442\u043a\u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u0432\u0438\u0434\u0430:<\/p>\n<pre><code class=\"python\">fig.data[0].update( text=df2007['gdpPercap'], textposition=\u2019inside\u2019, textfont=dict(size=10) )<\/code><\/pre>\n<p>  <\/p>\n<h3>\u0427\u0442\u043e \u0432\u044b\u0431\u0440\u0430\u0442\u044c: Plotly.py, Express \u0438\u043b\u0438 Cufflinks<\/h3>\n<p>  \u0412\u044b\u0431\u0438\u0440\u0430\u0442\u044c \u0432\u0441\u0435\u0433\u0434\u0430 \u0441\u043b\u043e\u0436\u043d\u043e. \u041e\u0434\u0438\u043d \u0440\u0430\u0437 \u044f \u0434\u0443\u043c\u0430\u043b, \u0447\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u043b \u043d\u0430\u0434 \u0447\u0430\u0441\u0442\u044c\u044e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0432 Express, \u0430 \u043f\u043e\u0442\u043e\u043c \u043f\u043e\u043d\u044f\u043b, \u0447\u0442\u043e \u044d\u0442\u043e \u0431\u044b\u043b Cufflinks! <\/p>\n<p>  \u041c\u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044f \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0438\u0437 <a href=\"https:\/\/www.python.org\/dev\/peps\/pep-0020\/\">\u00abZen of Python\u00bb<\/a>: \u00ab\u0414\u043e\u043b\u0436\u0435\u043d \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u043e\u0434\u0438\u043d \u0438, \u0436\u0435\u043b\u0430\u0442\u0435\u043b\u044c\u043d\u043e, \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e.\u201d \u041a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u2014 \u043f\u043e\u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u0434\u043e\u043b\u0433\u043e\u0433\u043e \u043f\u043e\u0438\u0441\u043a\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438, \u0438 \u0443\u0441\u0442\u0430\u043b\u043e\u0441\u0442\u044c \u043e\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c, \u0438 \u043e\u0448\u0438\u0431\u043a\u0438.\u00bb<\/p>\n<p>  \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u043d\u0438 \u043e\u0434\u0438\u043d \u0432\u044b\u0441\u043e\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u0439 API \u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u043d\u0435 \u0434\u0430\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0433\u0440\u0430\u0444\u0438\u043a\u0438 \u043b\u044e\u0431\u043e\u0433\u043e \u0442\u0438\u043f\u0430. \u041e\u0434\u043d\u0430\u043a\u043e \u043b\u0438\u0447\u043d\u043e \u044f \u0442\u043e\u0447\u043d\u043e \u043f\u043e\u0441\u0442\u0430\u0440\u0430\u044e\u0441\u044c \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0438\u0437\u0431\u0435\u0433\u0430\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u00ab\u0432\u0430\u043d\u0438\u043b\u044c\u043d\u043e\u0433\u043e\u00bb python.py \u0438 \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0443 Cufflinks \u0438\u043b\u0438 Express. <\/p>\n<p>  \u0421\u043e\u0432\u0435\u0442\u0443\u044e \u043b\u0438\u0448\u043d\u0438\u0439 \u0440\u0430\u0437 \u0437\u0430\u0433\u043b\u044f\u043d\u0443\u0442\u044c \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e Express \u0438 Cufflinks, \u043f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0443. \u041d\u0435 \u0437\u0430\u0431\u044b\u0432\u0430\u0439\u0442\u0435, \u0447\u0442\u043e Express \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u00ab\u043e\u043f\u0440\u044f\u0442\u043d\u044b\u0435\u00bb \u0434\u0430\u0442\u0430\u0444\u0440\u0435\u0439\u043c\u044b, \u0432 \u0442\u043e \u0432\u0440\u0435\u043c\u044f \u043a\u0430\u043a Cufflinks \u0432 \u044d\u0442\u043e\u043c \u043f\u043b\u0430\u043d\u0435 \u0431\u043e\u043b\u0435\u0435 \u0433\u0438\u0431\u043a\u0438\u0439. \u041f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435\u0441\u044c \u0442\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u043e\u0439, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0412\u0430\u0448\u0438\u043c \u043f\u043e\u0442\u0440\u0435\u0431\u043d\u043e\u0441\u0442\u044f\u043c \u0438 \u043e\u0431\u043b\u0430\u0434\u0430\u0435\u0442 \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0434\u043b\u044f \u0412\u0430\u0441 \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u043c.<\/p>\n<p>  \u0424\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0443 \u0434\u0432\u0443\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u043c\u043e\u0436\u0435\u0442 \u0441\u0438\u043b\u044c\u043d\u043e \u043e\u0442\u043b\u0438\u0447\u0430\u0442\u044c\u0441\u044f. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441\u043e\u0437\u0434\u0430\u0432 \u0434\u0430\u0442\u0430\u0444\u0440\u0435\u0439\u043c \u0441\u043e \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0434\u043b\u044f \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 X, Y \u0438 Z \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043a\u043e\u0434, \u0432 Cufflinks \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0443:<\/p>\n<pre><code class=\"python\">df.iplot(kind=\u2019scatter\u2019, mode=\u2019markers\u2019, x=\u2019X\u2019, y=\u2019Y\u2019, title=\u2019Random Data\u2019, categories=\u2019Z\u2019)<\/code><\/pre>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/593\/66b\/fa3\/59366bfa3f5cec125a2aee5ae84943e6.png\" alt=\"image\"><\/p>\n<p>  <i>\u0414\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0430 \u0440\u0430\u0441\u0441\u0435\u044f\u043d\u0438\u044f \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0441 Cufflinks<\/i><\/p>\n<p>  \u0410 \u0432\u043e\u0442 \u0447\u0442\u043e \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0441 Express-\u043a\u043e\u0434\u043e\u043c:<\/p>\n<pre><code class=\"python\">px.scatter(df, x=\u2019X\u2019, y=\u2019Y\u2019, color=\u2019Z\u2019, title=\u2019Random Data\u2019)<\/code><\/pre>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/396\/4fd\/720\/3964fd720bc15f631b5b067442733b3a.png\" alt=\"image\"><\/p>\n<p>  <i>\u0414\u0440\u0443\u0433\u0438\u0435 \u043f\u0440\u0435\u0441\u0435\u0442\u044b \u0441 Express<\/i><\/p>\n<p>  \u0417\u0430\u043c\u0435\u0442\u043d\u0430\u044f \u0440\u0430\u0437\u043d\u0438\u0446\u0430!<\/p>\n<h3>\u0421\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u043e\u0432<\/h3>\n<p>  \u0417\u0430\u043a\u043e\u043d\u0447\u0438\u0432 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u043e\u0439, \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0430\u0432\u0435\u0441\u0442\u0438 \u043d\u0430 \u043d\u0435\u0435 \u043c\u044b\u0448\u043a\u0443 \u0438 \u0449\u0435\u043b\u043a\u043d\u0443\u0442\u044c \u043f\u043e \u0437\u043d\u0430\u0447\u043a\u0443 \u043a\u0430\u043c\u0435\u0440\u044b, \u0447\u0442\u043e\u0431\u044b \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0435\u0435 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 .png, \u0438\u043b\u0438 \u043d\u0430\u0436\u0430\u0442\u044c \u201c\u042d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 plot.ly, \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440 Plotly. \u041f\u043e\u043c\u0438\u043c\u043e \u044d\u0442\u043e\u0433\u043e, \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u0444\u0430\u0439\u043b\u044b \u0432 \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u043e\u043c HTML-\u0444\u043e\u0440\u043c\u0430\u0442\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<pre><code class=\"python\">py.offline.plot(my_fig, filename=\u2019my_example_file.html\u2019)<\/code><\/pre>\n<p>  \u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u044b \u0434\u0440\u0443\u0433\u0438\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u044b \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u0430\u043a\u0435\u0442\u043e\u043c <a href=\"https:\/\/github.com\/plotly\/orca\">orca<\/a> \u0438 \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u0442\u044c \u0444\u0430\u0439\u043b\u044b \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0430\u0445 .png, .jpg \u0438 .pdf. \u0414\u0430\u043d\u043d\u044b\u0439 \u043f\u0430\u043a\u0435\u0442 \u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u043d\u0430 pypi.org, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0435\u0433\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e pip \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043f\u0430\u043a\u0435\u0442\u043e\u043c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e conda \u0438\u043b\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u041e\u0421-\u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u043d\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e orca \u0441\u043e <a href=\"https:\/\/github.com\/plotly\/orca\">\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b GitHub<\/a>. \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0412\u0430\u043c \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 orca. \u0423\u0437\u043d\u0430\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435 orca \u043c\u043e\u0436\u043d\u043e <a href=\"https:\/\/plot.ly\/python\/static-image-export\/\">\u0437\u0434\u0435\u0441\u044c<\/a>.<\/p>\n<p>  \u0412\u043e\u0442 \u043a\u043e\u0434 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f png-\u0444\u0430\u0439\u043b\u0430 \u043f\u043e\u0441\u043b\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 orca:<\/p>\n<pre><code class=\"python\">import plotly as plotly plotly.io.write_image(fig, file='my_figure_file.png', format='png')<\/code><\/pre>\n<p>  \u041a\u0430\u043a \u0432\u0438\u0434\u0438\u0442\u0435, \u0432\u044b\u0442\u044f\u043d\u0443\u0442\u044c \u0441\u0432\u043e\u0438 \u0433\u0440\u0430\u0444\u0438\u043a\u0438 \u0438\u0437 Plotly \u043c\u043e\u0436\u043d\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u043c\u0438. <br \/>  \u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u043a\u0440\u0430\u0442\u043a\u043e \u043f\u0440\u043e\u0431\u0435\u0436\u0430\u0442\u044c\u0441\u044f \u043f\u043e \u0435\u0449\u0435 \u0434\u0432\u0443\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u043c \u044d\u043a\u043e\u0441\u0438\u0441\u0442\u0435\u043c\u044b Plotly, \u0447\u0442\u043e\u0431\u044b \u0412\u044b \u043f\u043e\u043d\u044f\u043b\u0438 \u0447\u0442\u043e \u0435\u0441\u0442\u044c \u0447\u0442\u043e. <\/p>\n<h3>Dash<\/h3>\n<p>  \u0421 Plotly <a href=\"http:\/\/dash%20is%20a%20python%20framework%20for%20building%20analytical%20web%20applications.\/\">Dash<\/a> \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u044b \u0434\u043b\u044f \u0441\u0432\u043e\u0435\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0438\u043b\u0438 \u0434\u043b\u044f \u0434\u0440\u0443\u0433\u0438\u0445 \u043b\u044e\u0434\u0435\u0439. \u0415\u0441\u0442\u044c \u0432\u0435\u0440\u0441\u0438\u044f \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u043a\u043e\u0434\u043e\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u0430, \u0443 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043a 1 \u043c\u0430\u044f 2019 \u0433\u043e\u0434\u0430 \u043d\u0430\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u043b\u043e\u0441\u044c \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 9000 \u0437\u0432\u0435\u0437\u0434 GitHub. Plotly \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u0446\u0435\u043b\u044b\u0439 \u0440\u044f\u0434 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0439. \u041c\u043e\u0436\u0435\u0442, \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043c \u044f \u043d\u0430\u043f\u0438\u0448\u0443 \u0441\u0442\u0430\u0442\u044c\u044e \u0438 \u043e\u0431 \u044d\u0442\u043e\u043c. \u041f\u043e\u0434\u043f\u0438\u0441\u044b\u0432\u0430\u0439\u0442\u0435\u0441\u044c, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c. <\/p>\n<h3>Chart Studio<\/h3>\n<p>  <a href=\"https:\/\/plot.ly\/online-chart-maker\/\">Plotly Chart Studio<\/a> \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043b\u0435\u0433\u043a\u043e \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0438 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0433\u0440\u0430\u0444\u0438\u043a\u0438 \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435. Plotly \u0440\u0435\u043a\u043b\u0430\u043c\u0438\u0440\u0443\u0435\u0442 \u0434\u0430\u043d\u043d\u0443\u044e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u043a\u0430\u043a \u201c\u0441\u0430\u043c\u044b\u0439 \u0443\u043c\u043d\u044b\u0439 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f D3.js- \u0438 WebGL-\u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c. \u041d\u0435 \u043d\u0430\u0434\u043e \u043d\u0438\u0447\u0435\u0433\u043e \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0440\u0443\u0447\u043d\u0443\u044e\u201d. \u0415\u0441\u0442\u044c \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f, \u043d\u043e \u0435\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0441\u0432\u043e\u0438 \u0433\u0440\u0430\u0444\u0438\u043a\u0438, \u0442\u043e \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u043e\u0442\u0434\u0430\u0442\u044c 99$ \u0437\u0430 \u0433\u043e\u0434 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f. <\/p>\n<p>  \u0410 \u0442\u0435\u043f\u0435\u0440\u044c, \u043a\u043e\u0433\u0434\u0430 \u043c\u044b \u0443\u0436\u0435 \u0434\u043e\u0431\u0440\u0430\u043b\u0438\u0441\u044c \u0434\u043e \u0432\u0435\u0440\u0448\u0438\u043d\u044b Plotly, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0431\u044b\u0441\u0442\u0440\u043e \u043f\u0440\u043e\u0431\u0435\u0436\u0438\u043c\u0441\u044f \u043f\u043e \u0434\u0440\u0443\u0433\u0438\u043c \u0433\u043e\u0440\u0430\u043c \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0435 Python.<\/p>\n<h3>\u0411\u043e\u043d\u0443\u0441: \u0434\u0440\u0443\u0433\u0438\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u043e\u0442 Python<\/h3>\n<p>  \u042f \u043d\u0435 \u0441\u043e\u0431\u0438\u0440\u0430\u043b\u0441\u044f \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043e\u0431\u043e \u0432\u0441\u0435\u0445 \u043d\u0430 \u0441\u0432\u0435\u0442\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430\u0445 \u0434\u043b\u044f \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445, \u043d\u043e \u0432\u0441\u0435 \u0436\u0435 \u0445\u043e\u0447\u0443 \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0432\u0430\u0436\u043d\u044b\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c, \u043e \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u044b \u043f\u043e \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0434\u043e\u043b\u0436\u043d\u044b \u0437\u043d\u0430\u0442\u044c. \u0422\u0430\u043a \u0412\u044b \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u043b\u043d\u043e \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u0442\u0435\u0440\u0440\u0438\u0442\u043e\u0440\u0438\u044f\u043c\u0438, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c. <\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/1ac\/678\/4ba\/1ac6784ba8596bb8f60214e6792b71b5.png\" alt=\"image\"><\/p>\n<p>  \u0425\u043e\u0442\u0438\u0442\u0435 \u0434\u0435\u043b\u0430\u0442\u044c \u0433\u0440\u0430\u0444\u0438\u043a\u0438 \u043f\u043e \u0441\u0442\u0430\u0440\u0438\u043d\u043a\u0435 \u2014 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435\u0441\u044c \u043a \u201c\u0432\u0430\u043d\u0438\u043b\u044c\u043d\u043e\u0439\u201d \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0435 <a href=\"https:\/\/matplotlib.org\/\">Matplotlib<\/a> API. <\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/b31\/206\/3cd\/b312063cd0376a2623d325dac49614a2.png\" alt=\"image\"><\/p>\n<p>  <a href=\"https:\/\/pandas.pydata.org\/pandas-docs\/stable\/user_guide\/visualization.html\">Pandas Matplotlib<\/a> \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043d\u0435\u043f\u043b\u043e\u0445\u0438\u0435 \u043f\u0440\u043e\u0441\u0442\u0435\u043d\u044c\u043a\u0438\u0435 \u0433\u0440\u0430\u0444\u0438\u043a\u0438. \u041c\u043e\u0436\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435 Matplotlib \u043e\u0431\u044a\u0435\u043a\u0442\u044b. <\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/074\/955\/a1d\/074955a1d556459ef1907c9d33336942.png\" alt=\"image\"><\/p>\n<p>  <a href=\"https:\/\/seaborn.pydata.org\/\">Seaborn<\/a> \u2014 \u043e\u0442\u043b\u0438\u0447\u043d\u0430\u044f \u0432\u044b\u0441\u043e\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u0430\u044f \u043e\u0431\u0435\u0440\u0442\u043a\u0430, \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u043d\u0430 Matplotlib, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0433\u0440\u0430\u0444\u0438\u043a\u0438 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445. \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u0438\u0437-\u0437\u0430 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e <a href=\"https:\/\/jakevdp.github.io\/blog\/2013\/03\/23\/matplotlib-and-the-future-of-visualization-in-python\/\">\u0441\u0442\u0430\u0440\u043e\u0439 \u0431\u0430\u0437\u044b Matplotlib<\/a>, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0435\u0435 \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u0443\u0434\u043e\u0431\u043d\u043e. <\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/2ac\/257\/619\/2ac2576190c0c20c670114c9c8cbc8e8.png\" alt=\"image\"><\/p>\n<p>  <a href=\"https:\/\/bokeh.pydata.org\/en\/latest\/\">Bokeh<\/a> \u2014 \u043a\u043e\u043d\u043a\u0443\u0440\u0435\u043d\u0442 Plotly. \u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c, \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u0430\u044f, \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441 Python. <\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/a39\/f2a\/43a\/a39f2a43a4f4d029d6482513da16f170.png\" alt=\"image\"><\/p>\n<p>  <a href=\"http:\/\/holoviews.org\/getting_started\/Introduction.html\">Holoviews <\/a> \u2014 \u0432\u044b\u0441\u043e\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u0430\u044f \u043e\u0431\u0435\u0440\u0442\u043a\u0430, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0430\u044f \u0441 Matplotlib, Bokeh, \u0430 \u0442\u0435\u043f\u0435\u0440\u044c \u0438 \u0441 Plotly. \u0417\u043d\u0430\u044e \u0440\u0435\u0431\u044f\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0438\u043c\u0435\u043d\u043d\u043e \u0435\u0439. <\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/f41\/10d\/397\/f4110d3973ce7a7f735cf41f03ca7ee7.png\" alt=\"image\"><\/p>\n<p>  \u0421\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u0430\u043c, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u043c \u0441 \u044f\u0437\u044b\u043a\u043e\u043c R, \u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c <a href=\"https:\/\/shiny.rstudio.com\/\">Shiny <\/a>\u043e\u0442 RStudio. \u041e\u043d\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c R \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u0432\u0435\u0431-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/a0e\/e77\/712\/a0ee77712f307dc4771f9dbd34ac3bf3.png\" alt=\"image\"><\/p>\n<p>  <a href=\"https:\/\/www.tableau.com\/\">Tableau<\/a> \u0438 <a href=\"https:\/\/powerbi.microsoft.com\/en-us\/\">Microsoft PowerBI<\/a> \u2014 \u0434\u0432\u0435 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0435 \u043e\u043f\u0446\u0438\u0438 \u0441 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 \u043f\u0435\u0440\u0435\u0442\u0430\u0441\u043a\u0438\u0432\u0430\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0441 Python. Tableau \u2014 \u043e\u0447\u0435\u043d\u044c \u0434\u0430\u0436\u0435 \u0445\u043e\u0440\u043e\u0448\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430, \u043d\u043e \u0437\u0430 \u043d\u0435\u0435 \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0437\u0430\u043f\u043b\u0430\u0442\u0438\u0442\u044c, \u0435\u0441\u043b\u0438 \u043d\u0435 \u0445\u043e\u0442\u0438\u0442\u0435, \u0447\u0442\u043e\u0431\u044b \u0412\u0430\u0448\u0430 \u0440\u0430\u0431\u043e\u0442\u0430 \u0431\u044b\u043b\u0430 \u0432 \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u0435. <\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/e26\/85e\/6d8\/e2685e6d81102e759c7d0de0a4483b68.png\" alt=\"image\"><\/p>\n<p>  \u041d\u0430 \u043c\u043e\u0439 \u0432\u0437\u0433\u043b\u044f\u0434, PowerBI \u043e\u0431\u043b\u0430\u0434\u0430\u0435\u0442 \u043c\u0435\u043d\u0435\u0435 \u0438\u043d\u0442\u0443\u0438\u0442\u0438\u0432\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u044b\u043c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u043c, \u043d\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0432\u0441\u0435 \u0440\u0430\u0432\u043d\u043e \u043e\u0447\u0435\u043d\u044c \u043c\u043e\u0449\u043d\u0430\u044f \u0438 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u0430\u044f.<\/p>\n<p>  \u0411\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u041f\u041e \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0445 \u0433\u0440\u0430\u0444\u0438\u043a\u043e\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 D3.js. \u041e\u043d\u0430 \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u0430.<\/p>\n<h3>\u0412\u044b\u0432\u043e\u0434\u044b \u0438 \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u044b<\/h3>\n<p>  \u0415\u0441\u043b\u0438 \u0412\u044b \u044f\u0432\u043b\u044f\u0435\u0442\u0435\u0441\u044c \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u043e\u043c \u043f\u043e \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438, \u0441\u043e\u0432\u0435\u0442\u0443\u044e \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 Plotly. \u042d\u0442\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043e\u0431\u043b\u0430\u0434\u0430\u0435\u0442 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u043c\u0438 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0445 \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c. \u0421 \u0432\u0435\u0440\u0448\u0438\u043d\u044b \u044d\u0442\u043e\u0439 \u0433\u043e\u0440\u044b \u043a\u0430\u0436\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0442\u0430\u043a\u0443\u044e \u043c\u043e\u0449\u043d\u0443\u044e \u043c\u0430\u0445\u0438\u043d\u0443, \u043a\u0430\u043a Plotly, \u0432 \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u0442\u043e\u0447\u043d\u043e \u043d\u0435 \u0441\u043c\u043e\u0436\u0435\u0442 \u043e\u0431\u043e\u0433\u043d\u0430\u0442\u044c. <\/p>\n<p>  \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043a\u043e\u0433\u0434\u0430-\u043d\u0438\u0431\u0443\u0434\u044c \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0430\u044f \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0432\u0441\u0435, \u0447\u0442\u043e \u0437\u0430\u0445\u043e\u0442\u0438\u0442\u0435, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0432\u044b\u0441\u043e\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u0435 API-\u043e\u043f\u0446\u0438\u0438 Plotly. \u0410 \u043f\u043e\u043a\u0430, \u0435\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435 \u0441\u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442\u044c \u0432\u0440\u0435\u043c\u044f \u0438 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043a\u0440\u0443\u0442\u044b\u0435 \u0433\u0440\u0430\u0444\u0438\u043a\u0438, \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u043e\u0431\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u043a Pandas \u0441 Cufflinks \u0438\u043b\u0438 Express.<\/p>\n<ul>\n<li><a href=\"https:\/\/medium.com\/u\/e2f299e30cb9?source=post_page-----b361e7d45dc6----------------------\">Will Koehrsen<\/a> \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 <a href=\"https:\/\/towardsdatascience.com\/the-next-level-of-data-visualization-in-python-dd6e99039d5e\">\u043a\u0430\u043a \u043d\u0430\u0447\u0430\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f<\/a> Cufflinks.<\/li>\n<li><a href=\"https:\/\/medium.com\/u\/91ccb2ee730e?source=post_page-----b361e7d45dc6----------------------\">Jon Mease<\/a> <a href=\"https:\/\/www.youtube.com\/watch?v=cuTMbGjN2GQ\">\u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442<\/a> \u0447\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441 plotly.py v3.0 \u043d\u0430 JupyterLab<\/li>\n<\/ul>\n<p>  \u0421\u043e\u0432\u0435\u0442: \u043a\u043e\u0433\u0434\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 \u0432 \u0433\u0440\u0430\u0444\u0438\u043a\u0430\u0445 \u0446\u0432\u0435\u0442, \u043d\u0435 \u0437\u0430\u0431\u044b\u0432\u0430\u0439\u0442\u0435 \u043f\u0440\u043e \u043b\u044e\u0434\u0435\u0439 \u0441 \u0434\u0430\u043b\u044c\u0442\u043e\u043d\u0438\u0437\u043c\u043e\u043c. \u0412\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435\u0441\u044c \u043f\u0430\u043b\u0438\u0442\u0440\u043e\u0439, \u0443\u0434\u043e\u0431\u043d\u043e\u0439 \u0434\u043b\u044f \u0434\u0430\u043b\u044c\u0442\u043e\u043d\u0438\u043a\u043e\u0432. \u042f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e \u043f\u0430\u043b\u0438\u0442\u0440\u0443 \u043e\u0442 <a href=\"http:\/\/www.cookbook-r.com\/Graphs\/Colors_(ggplot2)\/\">ggplot<\/a>.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/828\/252\/fb4\/828252fb4a8b4aa11a9f016718b05570.png\" alt=\"image\"><\/p>\n<p>  <i>\u041e\u0431\u0440\u0430\u0437\u0435\u0446 \u0446\u0432\u0435\u0442\u043e\u0432<\/i><\/p>\n<pre><code class=\"python\">color_list = [&quot;#E69F00&quot;, &quot;#56B4E9&quot;, &quot;#009E73&quot;, &quot;#F0E442&quot;, &quot;#D55E00&quot;, &quot;#0072B2&quot;,  &quot;#CC79A7&quot;]<\/code><\/pre>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/rd\/kl\/lr\/rdkllrbtrth_kdpceb-vxzrxl1o.jpeg\" alt=\"image\"><\/p>\n<p>  \u0423\u0437\u043d\u0430\u0439\u0442\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438, \u043a\u0430\u043a \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0432\u043e\u0441\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u044e \u0441 \u043d\u0443\u043b\u044f \u0438\u043b\u0438 Level Up \u043f\u043e \u043d\u0430\u0432\u044b\u043a\u0430\u043c \u0438 \u0437\u0430\u0440\u043f\u043b\u0430\u0442\u0435, \u043f\u0440\u043e\u0439\u0434\u044f \u043f\u043b\u0430\u0442\u043d\u044b\u0435 \u043e\u043d\u043b\u0430\u0439\u043d-\u043a\u0443\u0440\u0441\u044b SkillFactory:<\/p>\n<ul>\n<li><a href=\"https:\/\/skillfactory.ru\/ml-programma-machine-learning-online?utm_source=infopartners&amp;utm_medium=habr&amp;utm_campaign=ML&amp;utm_term=regular&amp;utm_content=25062001\">\u041a\u0443\u0440\u0441 \u043f\u043e Machine Learning (12 \u043d\u0435\u0434\u0435\u043b\u044c)<\/a><\/li>\n<li><a href=\"https:\/\/skillfactory.ru\/data-scientist?utm_source=infopartners&amp;utm_medium=habr&amp;utm_campaign=DST&amp;utm_term=regular&amp;utm_content=25062001\">\u041e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u0438 Data Science \u0441 \u043d\u0443\u043b\u044f<\/a> (12 \u043c\u0435\u0441\u044f\u0446\u0435\u0432)<\/li>\n<li><a href=\"https:\/\/skillfactory.ru\/analytics?utm_source=infopartners&amp;utm_medium=habr&amp;utm_campaign=SDA&amp;utm_term=regular&amp;utm_content=25062001\">\u041f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u044f \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0430 \u0441 \u043b\u044e\u0431\u044b\u043c \u0441\u0442\u0430\u0440\u0442\u043e\u0432\u044b\u043c \u0443\u0440\u043e\u0432\u043d\u0435\u043c<\/a> (9 \u043c\u0435\u0441\u044f\u0446\u0435\u0432)<\/li>\n<li><a href=\"https:\/\/skillfactory.ru\/python-for-web-developers?utm_source=infopartners&amp;utm_medium=habr&amp;utm_campaign=PWS&amp;utm_term=regular&amp;utm_content=25062001\">\u041a\u0443\u0440\u0441 \u00abPython \u0434\u043b\u044f \u0432\u0435\u0431-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438\u00bb (9 \u043c\u0435\u0441\u044f\u0446\u0435\u0432)<\/a><\/li>\n<\/ul>\n<p>  <br clear=\"left\">  <\/p>\n<h3>\u0427\u0438\u0442\u0430\u0442\u044c \u0435\u0449\u0435<\/h3>\n<p>  <\/p>\n<ul>\n<li><a href=\"https:\/\/habr.com\/ru\/company\/skillfactory\/blog\/507052\/\">\u041a\u0440\u0443\u0442\u044b\u0435 Data Scientist \u043d\u0435 \u0442\u0440\u0430\u0442\u044f\u0442 \u0432\u0440\u0435\u043c\u044f \u043d\u0430 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0443<\/a><\/li>\n<li><a href=\"https:\/\/habr.com\/ru\/company\/skillfactory\/blog\/507024\/\">\u041a\u0430\u043a \u0441\u0442\u0430\u0442\u044c Data Scientist \u0431\u0435\u0437 \u043e\u043d\u043b\u0430\u0439\u043d-\u043a\u0443\u0440\u0441\u043e\u0432<\/a><\/li>\n<li><a href=\"https:\/\/habr.com\/ru\/company\/skillfactory\/blog\/506888\/\">\u0428\u043f\u0430\u0440\u0433\u0430\u043b\u043a\u0430 \u043f\u043e \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0435 \u0434\u043b\u044f Data Science<\/a><\/li>\n<li><a href=\"https:\/\/habr.com\/ru\/company\/skillfactory\/blog\/506798\/\">Data Science \u0434\u043b\u044f \u0433\u0443\u043c\u0430\u043d\u0438\u0442\u0430\u0440\u0438\u0435\u0432: \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u00abdata\u00bb<\/a><\/li>\n<li><a href=\"https:\/\/habr.com\/ru\/company\/skillfactory\/blog\/506790\/\">Data Scien\u0441e \u043d\u0430 \u0441\u0442\u0435\u0440\u043e\u0438\u0434\u0430\u0445: \u0437\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u043e \u0441 Decision Intelligence<\/a><\/li>\n<\/ul>\n<\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/company\/skillfactory\/blog\/506974\/\"> https:\/\/habr.com\/ru\/company\/skillfactory\/blog\/506974\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/company\/skillfactory\/blog\/506974\/\">\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/9d1\/704\/22b\/9d170422b8002b362f7f894e6ed8177c.gif\" alt=\"image\"><\/div>\n<p>  \u0415\u0441\u043b\u0438 \u0412\u044b \u0432\u0441\u0435 \u0435\u0449\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 Matplotlib \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0433\u0440\u0430\u0444\u0438\u043a\u043e\u0432 \u0432 Python, \u0441\u0430\u043c\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0432\u0437\u0433\u043b\u044f\u043d\u0443\u0442\u044c \u043d\u0430 \u043c\u0438\u0440 \u0441 \u0432\u044b\u0441\u043e\u0442\u044b \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0439 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438.<\/p>\n<p>  Plotly \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043a\u0440\u0430\u0441\u0438\u0432\u044b\u0435, \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0435, \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c\u044b\u0435 \u0433\u0440\u0430\u0444\u0438\u043a\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0432\u0441\u0435\u0433\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0441\u0442\u0440\u043e\u043a \u043a\u043e\u0434\u0430. \u041e\u0434\u043d\u0430\u043a\u043e \u0431\u0435\u0437 \u043a\u0430\u0440\u0442\u044b \u043f\u043e\u0434\u044a\u0435\u043c \u0432 \u0433\u043e\u0440\u0443 Plotly \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u044b\u043c \u0438 \u043c\u0443\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c.<\/p>\n<p>  \u0412\u043e\u0442 \u043a\u0430\u043c\u043d\u0438 \u043f\u0440\u0435\u0442\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u044f\u0432\u0438\u0442\u044c\u0441\u044f \u043d\u0430 \u043f\u0443\u0442\u0438 \u0430\u0432\u0430\u043d\u0442\u044e\u0440\u0438\u0441\u0442\u043e\u0432, \u0440\u0435\u0448\u0438\u0432\u0448\u0438\u0445 \u043f\u043e\u043a\u043e\u0440\u0438\u0442\u044c \u044d\u0442\u0443 \u0433\u043e\u0440\u0443:<\/p>\n<ul>\n<li>\u043d\u0435\u043f\u043e\u043d\u044f\u0442\u043d\u0430\u044f \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u043e\u0444\u0444\u043b\u0430\u0439\u043d \u0431\u0435\u0437 \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430;<\/li>\n<li>\u043d\u0435\u0438\u043c\u043e\u0432\u0435\u0440\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0442\u0440\u043e\u043a \u043a\u043e\u0434\u0430;<\/li>\n<li>\u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0430\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f;<\/li>\n<li>\u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 Plotly, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0431\u043b\u0443\u0434\u0438\u0442\u044c\u0441\u044f (Dash, Express, Chart Studio \u0438 Cufflinks).<\/li>\n<\/ul>\n<p>  \u041d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437 \u043f\u043e\u043f\u044b\u0442\u0430\u0432\u0448\u0438\u0441\u044c \u0432\u0441\u043a\u0430\u0440\u0430\u0431\u043a\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u044d\u0442\u0443 \u0433\u043e\u0440\u0443, \u044f \u0432\u0441\u0435 \u0436\u0435 \u043d\u0430\u0448\u0435\u043b \u043a\u0430\u0440\u0442\u0443, \u0441\u043d\u0430\u0440\u044f\u0436\u0435\u043d\u0438\u0435 \u0438 \u043a\u043e\u0440\u043e\u0442\u043a\u0443\u044e \u0442\u0440\u043e\u043f\u0438\u043d\u043a\u0443 \u043a \u0432\u0435\u0440\u0448\u0438\u043d\u0435. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0443\u043a\u0430\u0436\u0443 \u0432\u0430\u043c \u043f\u0443\u0442\u044c, \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0432 \u043a\u0430\u043a \u043d\u0430\u0447\u0430\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0443 \u0432 \u043e\u0444\u0444\u043b\u0430\u0439\u043d-\u0440\u0435\u0436\u0438\u043c\u0435, \u043a\u0430\u043a \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0433\u0440\u0430\u0444\u0438\u043a\u0438, \u0430 \u043f\u043e\u0442\u043e\u043c \u0438\u0445 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u043a\u0443\u0434\u0430 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c\u0441\u044f \u0437\u0430 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0438 \u043a\u0430\u043a\u0438\u043c\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u043c\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f.   <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-305932","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/305932","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=305932"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/305932\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=305932"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=305932"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=305932"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}