{"id":267356,"date":"2015-11-03T09:39:02","date_gmt":"2015-11-03T06:39:02","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=267356"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=267356","title":{"rendered":"\u0412\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0438 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0441\u0435\u0442\u0435\u0439 \u043d\u0430 R, \u0447\u0430\u0441\u0442\u044c 7, \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f"},"content":{"rendered":"<p>       \u0412 <a href=\"http:\/\/habrahabr.ru\/company\/infopulse\/blog\/262079\/\">\u043f\u0435\u0440\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438<\/a>:  <\/p>\n<ul>\n<li>\u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0441\u0435\u0442\u0435\u0439: \u0437\u0430\u0447\u0435\u043c? \u043a\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c?<\/li>\n<li>\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438<\/li>\n<li>best practices \u2014 \u044d\u0441\u0442\u0435\u0442\u0438\u043a\u0430 \u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c<\/li>\n<li>\u0444\u043e\u0440\u043c\u0430\u0442\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430<\/li>\n<li>\u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043d\u0430\u0431\u043e\u0440\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0432 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u0445<\/li>\n<li>\u043d\u0430\u0447\u0430\u043b\u043e \u0440\u0430\u0431\u043e\u0442\u044b \u0441 igraph<\/li>\n<\/ul>\n<p>  \u0412\u043e <a href=\"http:\/\/habrahabr.ru\/company\/infopulse\/blog\/263947\/\">\u0432\u0442\u043e\u0440\u043e\u0439 \u0447\u0430\u0441\u0442\u0438<\/a>: \u0446\u0432\u0435\u0442\u0430 \u0438 \u0448\u0440\u0438\u0444\u0442\u044b \u0432 \u0433\u0440\u0430\u0444\u0438\u043a\u0430\u0445 R.<\/p>\n<p>  \u0412 <a href=\"http:\/\/habrahabr.ru\/company\/infopulse\/blog\/263953\/\">\u0442\u0440\u0435\u0442\u044c\u0435\u0439<\/a> \u0447\u0430\u0441\u0442\u0438: \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0433\u0440\u0430\u0444\u043e\u0432, \u0432\u0435\u0440\u0448\u0438\u043d \u0438 \u0440\u0435\u0431\u0435\u0440.<\/p>\n<p>  \u0412 <a href=\"http:\/\/habrahabr.ru\/company\/infopulse\/blog\/266199\/\">\u0447\u0435\u0442\u0432\u0435\u0440\u0442\u043e\u0439<\/a> \u0447\u0430\u0441\u0442\u0438: \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0441\u0435\u0442\u0438.<\/p>\n<p>  \u0412 <a href=\"http:\/\/habrahabr.ru\/company\/infopulse\/blog\/266285\/\">\u043f\u044f\u0442\u043e\u0439<\/a> \u0447\u0430\u0441\u0442\u0438: \u0430\u043a\u0446\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432 \u0441\u0435\u0442\u0438, \u0432\u0435\u0440\u0448\u0438\u043d, \u0440\u0435\u0431\u0435\u0440, \u043f\u0443\u0442\u0435\u0439.<\/p>\n<p>  \u0412 <a href=\"http:\/\/habrahabr.ru\/company\/infopulse\/blog\/268917\/\">\u0448\u0435\u0441\u0442\u043e\u0439<\/a> \u0447\u0430\u0441\u0442\u0438: \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u0430\u044f \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0441\u0435\u0442\u0435\u0439, \u0434\u0440\u0443\u0433\u0438\u0435 \u0441\u043f\u043e\u0441\u043e\u0431\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u0435\u0442\u0438.<\/p>\n<p>  \u0412 \u044d\u0442\u043e\u0439 \u0447\u0430\u0441\u0442\u0438: \u0430\u043d\u0438\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0441\u0435\u0442\u0435\u0439, \u044d\u0432\u043e\u043b\u044e\u0446\u0438\u044f \u0441\u0435\u0442\u0438 \u0432\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438.<br \/>  <a name=\"habracut\"><\/a>  <\/p>\n<h4>\u0418\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u0430\u044f \u0438 \u0430\u043d\u0438\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0441\u0435\u0442\u0438<\/h4>\n<p>  <\/p>\n<h4>\u0418\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0442\u0440\u0435\u0445\u043c\u0435\u0440\u043d\u044b\u0435 \u0441\u0435\u0442\u0438 \u0432 R<\/h4>\n<p>  \u0421\u0435\u0439\u0447\u0430\u0441 \u0432\u0441\u0435 \u043b\u0435\u0433\u0447\u0435 \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0433\u0440\u0430\u0444\u0438\u043a\u0438 R \u0432 html\/javascript. \u0415\u0441\u0442\u044c \u043c\u043d\u043e\u0433\u043e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a <code>rcharts<\/code> \u0438 <code>htmlwidgets<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0438\u0433\u043e\u0434\u044f\u0442\u0441\u044f \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0432\u0435\u0431-\u0433\u0440\u0430\u0444\u0438\u043a\u043e\u0432 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0438\u0437 R. \u041c\u044b \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 <a href=\"http:\/\/christophergandrud.github.io\/d3Network\/\">networkD3<\/a>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f, \u043a\u0430\u043a \u0432\u0438\u0434\u043d\u043e \u0438\u0437 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f, \u0441\u043e\u0437\u0434\u0430\u0435\u0442 \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 \u0441\u0435\u0442\u0435\u0439 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e javascript \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 D3.<\/p>\n<p>  \u0421\u043b\u0435\u0434\u0443\u0435\u0442 \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c, \u0447\u0442\u043e \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438, \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0435 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <code>networkD3<\/code>, \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u043b\u0435\u0437\u043d\u044b \u043a\u0430\u043a \u043e\u0442\u043f\u0440\u0430\u0432\u043d\u0430\u044f \u0442\u043e\u0447\u043a\u0430 \u0434\u043b\u044f \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u044b. \u0415\u0441\u043b\u0438 \u0432\u044b \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0435\u0442\u0435 javascript, \u043c\u043e\u0436\u043d\u043e \u0438\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u043a \u043f\u0435\u0440\u0432\u044b\u0439 \u0448\u0430\u0433 \u0438 \u0438\u0437\u043c\u0435\u043d\u044f\u0442\u044c \u0434\u043e \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0436\u0435\u043b\u0430\u0435\u043c\u043e\u0433\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430.<\/p>\n<p>  \u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u043d\u0435\u0442 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 <code>networkD3<\/code>, \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u0435\u0435:  <\/p>\n<pre><code class=\"python\">install.packages(&quot;networkD3&quot;) <\/code><\/pre>\n<p>  \u0414\u0430\u043d\u043d\u044b\u0435, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u044d\u0442\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u2014 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u0440\u0435\u0431\u0435\u0440 \u0441 \u043f\u0430\u0440\u043e\u0439 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439. \u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0432\u0441\u0435 \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e, \u043d\u0443\u0436\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b \u0432\u0435\u0440\u0448\u0438\u043d \u0431\u044b\u043b\u0438 \u0447\u0438\u0441\u043b\u043e\u0432\u044b\u043c\u0438 \u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u043b\u0438\u0441\u044c \u0441 \u043d\u0443\u043b\u044f. \u041b\u0435\u0433\u043a\u0438\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u044d\u0442\u043e\u0433\u043e \u2014 \u043f\u0440\u0435\u0432\u0440\u0430\u0442\u0438\u0442\u044c \u043d\u0430\u0448\u0438 \u0431\u0443\u043a\u0432\u0435\u043d\u043d\u044b\u0435 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b \u0432 \u0444\u0430\u043a\u0442\u043e\u0440\u043d\u0443\u044e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e, \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u2014 \u0432 \u0447\u0438\u0441\u043b\u043e, \u0438 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0442\u044c \u043d\u0443\u043c\u0435\u0440\u0430\u0446\u0438\u044e \u0441 \u043d\u0443\u043b\u044f \u0432\u044b\u0447\u0438\u0442\u0430\u043d\u0438\u0435\u043c \u0435\u0434\u0438\u043d\u0438\u0446\u044b.  <\/p>\n<pre><code class=\"python\">library(networkD3)  el &lt;- data.frame(from=as.numeric(factor(links$from))-1,                   to=as.numeric(factor(links$to))-1 ) <\/code><\/pre>\n<p>  \u0412\u0435\u0440\u0448\u0438\u043d\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0432 \u0442\u043e\u043c \u0436\u0435 \u043f\u043e\u0440\u044f\u0434\u043a\u0435, \u0447\u0442\u043e \u0438 \u043a\u043e\u043b\u043e\u043d\u043a\u0430-\u00ab\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u00bb \u0432 \u0441\u0432\u044f\u0437\u044f\u0445:  <\/p>\n<pre><code class=\"python\">nl &lt;- cbind(idn=factor(nodes$media, levels=nodes$media), nodes)  <\/code><\/pre>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435. \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 <code>Group<\/code> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0440\u0430\u0441\u043a\u0440\u0430\u0448\u0438\u0432\u0430\u043d\u0438\u044f \u0432\u0435\u0440\u0448\u0438\u043d. <code>Nodesize<\/code> \u2014 \u044d\u0442\u043e \u043d\u0435 \u0440\u0430\u0437\u043c\u0435\u0440 \u0432\u0435\u0440\u0448\u0438\u043d\u044b, \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u043f\u043e\u0434\u0443\u043c\u0430\u0442\u044c, \u0430 \u043d\u043e\u043c\u0435\u0440 \u043a\u043e\u043b\u043e\u043d\u043a\u0438 \u0432 \u0434\u0430\u043d\u043d\u044b\u0445 \u043e \u0432\u0435\u0440\u0448\u0438\u043d\u0430\u0445, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043d\u0443\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0437\u0430\u0434\u0430\u043d\u0438\u044f \u0440\u0430\u0437\u043c\u0435\u0440\u0430. \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 <code>charge<\/code> \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u043e\u0442\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u043d\u0438\u0435\u043c (\u043c\u0435\u043d\u044c\u0448\u0435 \u043d\u0443\u043b\u044f) \u0438\u043b\u0438 \u043f\u0440\u0438\u0442\u044f\u0436\u0435\u043d\u0438\u0435\u043c (\u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0443\u043b\u044f).  <\/p>\n<pre><code class=\"python\">forceNetwork(Links = el, Nodes = nl, Source=&quot;from&quot;, Target=&quot;to&quot;,                NodeID = &quot;idn&quot;, Group = &quot;type.label&quot;,linkWidth = 1,                linkColour = &quot;#afafaf&quot;, fontSize=12, zoom=T, legend=T,                Nodesize=6, opacity = 0.8, charge=-300,                 width = 600, height = 400) <\/code><\/pre>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/5fc\/a55\/2ea\/5fca552eafb245cf9f2a1da4780d3007.png\" width=\"50%\"\/><\/p>\n<h4>\u041f\u0440\u043e\u0441\u0442\u0430\u044f \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u044f \u0433\u0440\u0430\u0444\u0438\u043a\u043e\u0432 \u0432 R<\/h4>\n<p>  \u0415\u0441\u043b\u0438 \u0432\u044b \u0443\u0436\u0435 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u043b\u0438 ndtv, \u0443 \u0432\u0430\u0441 \u0442\u0430\u043a\u0436\u0435 \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u0442\u043e\u044f\u0442\u044c \u043f\u0430\u043a\u0435\u0442 animation. \u0415\u0441\u043b\u0438 \u0436\u0435 \u043d\u0435\u0442, \u0441\u0435\u0439\u0447\u0430\u0441 \u0441\u0430\u043c\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0435\u0433\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u2014 <code>install.packages('animation')<\/code>. \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u044d\u0442\u043e\u0442 \u043f\u0430\u043a\u0435\u0442 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0431\u0435\u0437 \u0442\u0440\u0443\u0434\u0430 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0440\u0430\u0437\u043d\u044b\u0435 (\u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0442\u043d\u043e\u0441\u044f\u0449\u0438\u0435\u0441\u044f \u043a \u0441\u0435\u0442\u044f\u043c) \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438 \u0432 R. \u042d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0442\u0430\u043a: \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0433\u0440\u0430\u0444\u0438\u043a\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u0442\u043e\u043c \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u044e\u0442\u0441\u044f \u0432 GIF.<\/p>\n<p>  \u041f\u043e\u0434\u0432\u043e\u0445 \u0437\u0434\u0435\u0441\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439: \u0447\u0442\u043e\u0431\u044b \u044d\u0442\u043e \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e, \u043d\u0443\u0436\u0435\u043d \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0430\u043a\u0435\u0442 R, \u043d\u043e \u0438 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 <a href=\"http:\/\/imagemagick.org\">ImageMagick<\/a>.  <\/p>\n<pre><code class=\"python\">library(animation)  library(igraph)  ani.options(&quot;convert&quot;) # \u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u043f\u0430\u043a\u0435\u0442 \u0437\u043d\u0430\u0435\u0442, \u0433\u0434\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f ImageMagick # \u0415\u0441\u043b\u0438 \u043d\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u0442, \u0443\u043a\u0430\u0436\u0438\u0442\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u043f\u0443\u0442\u044c \u0432 \u0432\u0430\u0448\u0435\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435. ani.options(convert=&quot;C:\/Program Files\/ImageMagick-6.8.8-Q16\/convert.exe&quot;)  <\/code><\/pre>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u043c\u044b \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c 4 \u0433\u0440\u0430\u0444\u0438\u043a\u0430 \u0441\u0435\u0442\u0438 (\u0442\u0435 \u0436\u0435, \u0447\u0442\u043e \u0438 \u0440\u0430\u043d\u044c\u0448\u0435), \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u044b <code>saveGIF<\/code>. \u0418\u043d\u0442\u0435\u0440\u0432\u0430\u043b \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c <code>interval<\/code>, \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 <code>movie.name<\/code> \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 gif-\u0444\u0430\u0439\u043b\u0430.   <\/p>\n<pre><code class=\"python\">l &lt;- layout.fruchterman.reingold(net)  saveGIF( {  col &lt;- rep(&quot;grey40&quot;, vcount(net))             plot(net, vertex.color=col, layout=l)                          step.1 &lt;- V(net)[media==&quot;Wall Street Journal&quot;]             col[step.1] &lt;- &quot;#ff5100&quot;             plot(net, vertex.color=col, layout=l)                          step.2 &lt;- unlist(neighborhood(net, 1, step.1, mode=&quot;out&quot;))             col[setdiff(step.2, step.1)] &lt;- &quot;#ff9d00&quot;             plot(net, vertex.color=col, layout=l)                           step.3 &lt;- unlist(neighborhood(net, 2, step.1, mode=&quot;out&quot;))             col[setdiff(step.3, step.2)] &lt;- &quot;#FFDD1F&quot;             plot(net, vertex.color=col, layout=l)  },           interval = .8, movie.name=&quot;network_animation.gif&quot; )    detach(package:igraph)  detach(package:animation <\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/0d4\/709\/512\/0d47095128824e0fbc15f167997c670c.gif\" width=\"50%\"\/><\/p>\n<h4>\u0418\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0441\u0435\u0442\u0438 \u0441 ndtv-d3<\/h4>\n<p>  <\/p>\n<h5>\u0418\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0433\u0440\u0430\u0444\u0438\u043a\u0438 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0441\u0435\u0442\u0435\u0439<\/h5>\n<p>  \u0412 \u044d\u0442\u043e\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u043c\u044b \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0431\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u044b\u0435 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0441 \u043f\u0430\u043a\u0435\u0442\u043e\u043c <code>ndtv<\/code>. \u0414\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0439 \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u041f\u041e. \u0415\u0441\u043b\u0438 \u0436\u0435 \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438 \u043a\u0430\u043a \u0432\u0438\u0434\u0435\u043e-\u0444\u0430\u0439\u043b\u044b (\u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 <code>?saveVideo<\/code>), \u0432\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u0432\u0438\u0434\u0435\u043e-\u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0435\u0440 <a href=\"http:\/\/ffmpg.org\">FFmpeg<\/a>. \u0427\u0442\u043e\u0431\u044b \u0443\u0437\u043d\u0430\u0442\u044c, \u043a\u0430\u043a\u043e\u0439 \u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0442\u043e\u0440 \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u0434\u043b\u044f \u0432\u0430\u0448\u0435\u0439 \u041e\u0421, \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u0435 <code>?install.ffmpeg<\/code>. \u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0432\u0430\u043c \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f Java.  <\/p>\n<pre><code class=\"python\">install.packages(&quot;ndtv&quot;, dependencies=T) <\/code><\/pre>\n<p>  \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u044d\u0442\u043e\u0442 \u043f\u0430\u043a\u0435\u0442 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0447\u0430\u0441\u0442\u044c Statnet, \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0438\u0437 \u043f\u0430\u043a\u0435\u0442\u0430 <code>network<\/code>, \u043a\u0430\u043a \u0442\u043e\u0442, \u0447\u0442\u043e \u043c\u044b \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u043b\u0438 \u0440\u0430\u043d\u044c\u0448\u0435.  <\/p>\n<pre><code class=\"python\">library(ndtv) net3  <\/code><\/pre>\n<p>  \u0411\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0438\u043c\u0435\u044e\u0442 \u0438\u043d\u0442\u0443\u0438\u0442\u0438\u0432\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u044b\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f (<code>bg<\/code> \u2014 \u0446\u0432\u0435\u0442 \u0444\u043e\u043d\u0430 \u0433\u0440\u0430\u0444\u0438\u043a\u0430). \u0414\u0432\u0430 \u043d\u043e\u0432\u044b\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0440\u0430\u043d\u044c\u0448\u0435 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u2014 <code>vertex.tooltip<\/code> \u0438 <code>edge.tooltip<\/code>. \u041e\u043d\u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c, \u043d\u0430\u0432\u0435\u0434\u044f \u043a\u0443\u0440\u0441\u043e\u0440 \u043c\u044b\u0448\u0438 \u043d\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0441\u0435\u0442\u0438. \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0434\u043b\u044f \u0432\u0441\u043f\u043b\u044b\u0432\u0430\u044e\u0449\u0438\u0445 \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u043e\u043a \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u044e\u0442 \u0442\u0435\u0433\u0438 html \u2014 \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0442\u0435\u0433 \u0440\u0430\u0437\u0440\u044b\u0432\u0430 \u0441\u0442\u0440\u043e\u043a\u0438 \u2014 <code>&lt;br&gt;<\/code>. \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 <code>launchBrowser<\/code> \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 R \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u043f\u043e\u043b\u0443\u0447\u0438\u0432\u0448\u0438\u0439\u0441\u044f \u0444\u0430\u0439\u043b \u0441 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439 (<code>filename<\/code>) \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435.  <\/p>\n<pre><code class=\"python\">render.d3movie(net3, usearrows = F, displaylabels = F, bg=&quot;#111111&quot;,         vertex.border=&quot;#ffffff&quot;, vertex.col =  net3 %v% &quot;col&quot;,        vertex.cex = (net3 %v% &quot;audience.size&quot;)\/8,         edge.lwd = (net3 %e% &quot;weight&quot;)\/3, edge.col = '#55555599',        vertex.tooltip = paste(&quot;&lt;b&gt;Name:&lt;\/b&gt;&quot;, (net3 %v% 'media') , &quot;&lt;br&gt;&quot;,                               &quot;&lt;b&gt;Type:&lt;\/b&gt;&quot;, (net3 %v% 'type.label')),        edge.tooltip = paste(&quot;&lt;b&gt;Edge type:&lt;\/b&gt;&quot;, (net3 %e% 'type'), &quot;&lt;br&gt;&quot;,                              &quot;&lt;b&gt;Edge weight:&lt;\/b&gt;&quot;, (net3 %e% &quot;weight&quot; ) ),        launchBrowser=F, filename=&quot;Media-Network.html&quot;, output.mode='inline')  <\/code><\/pre>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/4ff\/dc4\/daa\/4ffdc4daa2a94d9eb744512490c32674.png\" width=\"50%\"\/><\/p>\n<h5>\u0410\u043d\u0438\u043c\u0430\u0446\u0438\u044f \u044d\u0432\u043e\u043b\u044e\u0446\u0438\u0438 \u0441\u0435\u0442\u0438<\/h5>\n<p>  \u0410\u043d\u0438\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u2014 \u0445\u043e\u0440\u043e\u0448\u0438\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u044d\u0432\u043e\u043b\u044e\u0446\u0438\u044e \u0432\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0438\u043b\u0438 \u0441\u0440\u0435\u0434\u043d\u0435\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0441\u0435\u0442\u0438. \u041d\u0430 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442, <code>ndtv<\/code> \u2014 \u043b\u0443\u0447\u0448\u0438\u0439 \u043f\u0430\u043a\u0435\u0442 R, \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044b\u0439 \u0434\u043b\u044f \u044d\u0442\u043e\u0439 \u0446\u0435\u043b\u0438 \u2014 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u043d\u0435\u0434\u0430\u0432\u043d\u043e \u0431\u044b\u043b\u0430 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0442\u0440\u0435\u0445\u043c\u0435\u0440\u043d\u043e\u0439 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438. <\/p>\n<p>  \u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0435\u0439 \u0441\u0435\u0442\u0438 \u0432 <code>ndtv<\/code>, \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0444\u043e\u0440\u043c\u0430\u0442 \u0441\u0435\u0442\u0438 Statnet, \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0432 \u043f\u0430\u043a\u0435\u0442\u0435 <code>networkDynamic<\/code>. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u043e\u0434\u0438\u043d \u0438\u0437 \u043d\u0430\u0431\u043e\u0440\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445, \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u0439 \u0432 \u043f\u0430\u043a\u0435\u0442 \u043a\u0430\u043a \u043f\u0440\u0438\u043c\u0435\u0440:  <\/p>\n<pre><code class=\"python\">data(short.stergm.sim) short.stergm.sim  head(as.data.frame(short.stergm.sim)) <\/code><\/pre>\n<p>  <\/p>\n<pre><code class=\"diff\">##   onset terminus tail head onset.censored ## 1     0        1    3    5          FALSE ## 2    10       20    3    5          FALSE ## 3     0       25    3    6          FALSE ## 4     0        1    3    9          FALSE ## 5     2       25    3    9          FALSE ## 6     0        4    3   11          FALSE <\/code><\/pre>\n<p>  <\/p>\n<pre><code class=\"diff\">##   terminus.censored duration edge.id ## 1             FALSE        1       1 ## 2             FALSE       10       1 ## 3             FALSE       25       2 ## 4             FALSE        1       3 ## 5             FALSE       23       3 ## 6             FALSE        4       4 <\/code><\/pre>\n<p>  \u0417\u0434\u0435\u0441\u044c \u043c\u044b \u0432\u0438\u0434\u0438\u043c \u0441\u043f\u0438\u0441\u043e\u043a \u0440\u0435\u0431\u0435\u0440. \u041a\u0430\u0436\u0434\u043e\u0435 \u0440\u0435\u0431\u0440\u043e \u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0438\u0437 \u0432\u0435\u0440\u0448\u0438\u043d\u044b, \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u043a\u043e\u043b\u043e\u043d\u043a\u0435 <code>tail<\/code>, \u0438 \u0432\u0445\u043e\u0434\u0438\u0442 \u0432 \u0432\u0435\u0440\u0448\u0438\u043d\u0443 \u0441 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u043c \u0432 \u043a\u043e\u043b\u043e\u043d\u043a\u0435 <code>head<\/code>. \u0420\u0435\u0431\u0440\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043e\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u043e\u0442\u043c\u0435\u0442\u043a\u0438 <code>onset<\/code> \u0434\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u043e\u0442\u043c\u0435\u0442\u043a\u0438 <code>terminus<\/code>. Onset \u0438 terminus, \u043f\u043e\u043c\u0435\u0447\u0435\u043d\u043d\u044b\u0435 <i>censored<\/i>, \u043e\u0437\u043d\u0430\u0447\u0430\u044e\u0442 \u043d\u0430\u0447\u0430\u043b\u043e \u0438 \u043a\u043e\u043d\u0435\u0446 \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044f \u0437\u0430 \u0441\u0435\u0442\u044c\u044e, \u0430 \u043d\u0435 \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u0438\u0441\u0447\u0435\u0437\u043d\u043e\u0432\u0435\u043d\u0438\u0435 \u0441\u0432\u044f\u0437\u0435\u0439.<\/p>\n<p>  \u041c\u043e\u0436\u043d\u043e \u043b\u0435\u0433\u043a\u043e \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0441\u0435\u0442\u044c, \u043d\u0435 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u044f \u0432\u043e \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u0435\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0443\u044e (\u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u0432 \u0432\u0441\u0435 \u043a\u043e\u0433\u0434\u0430-\u043b\u0438\u0431\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u0432\u0435\u0440\u0448\u0438\u043d\u044b \u0438 \u0440\u0435\u0431\u0440\u0430):  <\/p>\n<pre><code class=\"python\">plot(short.stergm.sim)  <\/code><\/pre>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/cf7\/114\/c96\/cf7114c9654b4d28867570ac32e71789.png\" width=\"50%\"\/><\/p>\n<p>  \u041f\u043e\u0441\u0442\u0440\u043e\u0438\u043c \u0441\u0435\u0442\u044c \u0432 \u043c\u043e\u043c\u0435\u043d\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 1:  <\/p>\n<pre><code class=\"python\">plot( network.extract(short.stergm.sim, at=1) ) <\/code><\/pre>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/571\/16d\/fcd\/57116dfcd4c44286bfbcab1c34765d5d.png\" width=\"50%\"\/><\/p>\n<p>  \u041f\u043e\u0441\u0442\u0440\u043e\u0438\u043c \u0432\u0435\u0440\u0448\u0438\u043d\u044b \u0438 \u0440\u0435\u0431\u0440\u0430, \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0441 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043f\u043e \u043f\u044f\u0442\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0438:  <\/p>\n<pre><code class=\"python\">plot( network.extract(short.stergm.sim, onset=1, terminus=5, rule=&quot;all&quot;) ) <\/code><\/pre>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/4bd\/b65\/bf3\/4bdb65bf3b9c421691d69bb63fd7d1f5.png\" width=\"50%\"\/><\/p>\n<p>  \u041f\u043e\u0441\u0442\u0440\u043e\u0438\u043c \u0432\u0435\u0440\u0448\u0438\u043d\u044b \u0438 \u0440\u0435\u0431\u0440\u0430, \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0441 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043f\u043e \u0434\u0435\u0441\u044f\u0442\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0438:  <\/p>\n<pre><code class=\"python\">plot( network.extract(short.stergm.sim, onset=1, terminus=10, rule=&quot;any&quot;) )  <\/code><\/pre>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/8db\/156\/317\/8db156317cb7455d9bf34f1c35d36ab5.png\" width=\"50%\"\/><\/p>\n<p>  \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u043a\u043e\u0440\u043e\u0442\u043a\u0443\u044e \u0442\u0440\u0435\u0445\u043c\u0435\u0440\u043d\u0443\u044e \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u044e \u0441\u0435\u0442\u0438 \u0438\u0437 \u043f\u0440\u0438\u043c\u0435\u0440\u0430:  <\/p>\n<pre><code class=\"python\">render.d3movie(short.stergm.sim,displaylabels=TRUE)  <\/code><\/pre>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u043c\u044b \u0433\u043e\u0442\u043e\u0432\u044b \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0438 \u0430\u043d\u0438\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0432\u043e\u044e \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u0443\u044e \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0441\u0435\u0442\u044c. \u041e\u0431\u044a\u0435\u043a\u0442-\u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0441\u0435\u0442\u044c \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u043c\u0438: \u0438\u0437 \u043d\u0430\u0431\u043e\u0440\u0430 \u0441\u0435\u0442\u0435\u0439 \/ \u043c\u0430\u0442\u0440\u0438\u0446, \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0445 \u0440\u0430\u0437\u043d\u044b\u0435 \u043c\u043e\u043c\u0435\u043d\u0442\u044b \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u0438\u0437 \u043c\u0430\u0442\u0440\u0438\u0446 \/ \u043d\u0430\u0431\u043e\u0440\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441\u043e \u0441\u043f\u0438\u0441\u043a\u0430\u043c\u0438 \u0432\u0435\u0440\u0448\u0438\u043d \u0438 \u0440\u0435\u0431\u0435\u0440, \u0433\u0434\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u043e, \u043a\u043e\u0433\u0434\u0430 \u043e\u043d\u0438 \u0430\u043a\u0442\u0438\u0432\u043d\u044b \u0438\u043b\u0438 \u043a\u043e\u0433\u0434\u0430 \u043c\u0435\u043d\u044f\u044e\u0442 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435. \u0411\u043e\u043b\u044c\u0448\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e \u0432 <code>?networkDynamic<\/code>.<\/p>\n<p>  \u0414\u043e\u0431\u0430\u0432\u0438\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0432 \u043d\u0430\u0448 \u043f\u0440\u0438\u043c\u0435\u0440 \u0441\u043e \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043c\u0438 \u043c\u0430\u0441\u0441\u043e\u0432\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438. \u041a\u043e\u0434 \u043d\u0438\u0436\u0435 \u0431\u0435\u0440\u0435\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b \u043e\u0442 0 \u0434\u043e 50 \u0438 \u0434\u0435\u043b\u0430\u0435\u0442 \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u043c\u0438 \u0432\u0435\u0440\u0448\u0438\u043d\u044b \u0441\u0435\u0442\u0438 \u0432\u0441\u0435 \u044d\u0442\u043e \u0432\u0440\u0435\u043c\u044f. \u0420\u0435\u0431\u0440\u0430 \u043f\u043e\u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043e\u0434\u043d\u043e \u0437\u0430 \u0434\u0440\u0443\u0433\u0438\u043c, \u043a\u0430\u0436\u0434\u043e\u0435 \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0441 \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u043e 50-\u0433\u043e \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0442\u0430\u043a\u0443\u044e \u0441\u0435\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <code>networkDynamic<\/code>, \u0432\u0440\u0435\u043c\u044f \u0434\u043b\u044f \u0432\u0435\u0440\u0448\u0438\u043d \u2014 <code>node.spelss<\/code>, \u0434\u043b\u044f \u0440\u0435\u0431\u0435\u0440 \u2014 <code>edge.spells<\/code>.  <\/p>\n<pre><code class=\"python\">vs &lt;- data.frame(onset=0, terminus=50, vertex.id=1:17) es &lt;- data.frame(onset=1:49, terminus=50,                   head=as.matrix(net3, matrix.type=&quot;edgelist&quot;)[,1],                  tail=as.matrix(net3, matrix.type=&quot;edgelist&quot;)[,2])  net3.dyn &lt;- networkDynamic(base.net=net3, edge.spells=es, vertex.spells=vs) <\/code><\/pre>\n<p>  \u0415\u0441\u043b\u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u044b\u0442\u0430\u0442\u044c\u0441\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c networkDynamic-\u0441\u0435\u0442\u044c, \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u043a\u043e\u043c\u0431\u0438\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0441\u0435\u0442\u044c \u0437\u0430 \u0432\u0435\u0441\u044c \u043f\u0435\u0440\u0438\u043e\u0434 \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044f, \u0442.\u0435. \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u0441\u043e \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043c\u0438 \u043c\u0430\u0441\u0441\u043e\u0432\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438.  <\/p>\n<pre><code class=\"python\">plot(net3.dyn, vertex.cex=(net3 %v% &quot;audience.size&quot;)\/7, vertex.col=&quot;col&quot;) <\/code><\/pre>\n<p>  \u041e\u0434\u0438\u043d \u0438\u0437 \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u0432 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u044d\u0432\u043e\u043b\u044e\u0446\u0438\u044e \u0441\u0435\u0442\u0438 \u0432\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u2014 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438 \u0434\u043b\u044f \u0440\u0430\u0437\u043d\u044b\u0445 \u043c\u043e\u043c\u0435\u043d\u0442\u043e\u0432 \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u0425\u043e\u0442\u044f \u043c\u043e\u0436\u043d\u043e \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0445 \u043f\u043e \u043e\u0434\u043d\u043e\u0439, \u043a\u0430\u043a \u043c\u044b \u0434\u0435\u043b\u0430\u043b\u0438 \u0432\u044b\u0448\u0435, <code>ndtv<\/code> \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u0431\u043e\u043b\u0435\u0435 \u043b\u0435\u0433\u043a\u0438\u0439 \u0441\u043f\u043e\u0441\u043e\u0431. \u041a\u043e\u043c\u0430\u043d\u0434\u0430 \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u2014 <code>filmstrip<\/code>. \u041a\u0430\u043a \u0438 \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <code>par()<\/code>, \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0435\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438 \u0433\u0440\u0430\u0444\u0438\u043a\u043e\u0432 R, \u0437\u0434\u0435\u0441\u044c <code>mfrow<\/code> \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0442\u0440\u043e\u043a \u0438 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u043d\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0433\u0440\u0430\u0444\u0438\u043a\u043e\u0432.  <\/p>\n<pre><code class=\"python\">filmstrip(net3.dyn, displaylabels=F, mfrow=c(1, 5),           slice.par=list(start=0, end=49, interval=10,                           aggregate.dur=10, rule='any')) <\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/672\/4e9\/894\/6724e9894b424970b729d44c9972d964.png\"\/><\/p>\n<p>  \u041c\u043e\u0436\u043d\u043e \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438 (\u0432 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u043d\u0438 \u0441\u0447\u0438\u0442\u0430\u044e\u0442\u0441\u044f \u0432 \u043c\u043e\u043c\u0435\u043d\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438). \u0417\u0434\u0435\u0441\u044c <code>animation.mode<\/code> \u2014 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u2014 \u043e\u0434\u0438\u043d \u0438\u0437 \u00abkamadakawai\u00bb, \u00abMDSJ\u00bb, \u00abGraphviz\u00bb \u0438 \u00abuseAttribute\u00bb (\u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b, \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c).  <\/p>\n<pre><code class=\"python\">compute.animation(net3.dyn, animation.mode = &quot;kamadakawai&quot;,                   slice.par=list(start=0, end=50, interval=1,                           aggregate.dur=1, rule='any'))  render.d3movie(net3.dyn, usearrows = F,         displaylabels = F, label=net3 %v% &quot;media&quot;,        bg=&quot;#ffffff&quot;, vertex.border=&quot;#333333&quot;,        vertex.cex = degree(net3)\/2,          vertex.col = net3.dyn %v% &quot;col&quot;,        edge.lwd = (net3.dyn %e% &quot;weight&quot;)\/3,         edge.col = '#55555599',        vertex.tooltip = paste(&quot;&lt;b&gt;Name:&lt;\/b&gt;&quot;, (net3.dyn %v% &quot;media&quot;) , &quot;&lt;br&gt;&quot;,                               &quot;&lt;b&gt;Type:&lt;\/b&gt;&quot;, (net3.dyn %v% &quot;type.label&quot;)),        edge.tooltip = paste(&quot;&lt;b&gt;Edge type:&lt;\/b&gt;&quot;, (net3.dyn %e% &quot;type&quot;), &quot;&lt;br&gt;&quot;,                              &quot;&lt;b&gt;Edge weight:&lt;\/b&gt;&quot;, (net3.dyn %e% &quot;weight&quot; ) ),        launchBrowser=T, filename=&quot;Media-Network-Dynamic.html&quot;,        render.par=list(tween.frames = 30, show.time = F),        plot.par=list(mar=c(0,0,0,0)), output.mode='inline' ) <\/code><\/pre>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/9ea\/006\/2bb\/9ea0062bba454e2f9c93f05f4df6c3d4.png\"\/><\/p>\n<p>  \u0412 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043a \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0432\u0435\u0440\u0448\u0438\u043d\u0430\u043c \u0438 \u0440\u0435\u0431\u0440\u0430\u043c ndtv \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b. \u041c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0438\u0445 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432 \u043d\u0430\u0431\u043e\u0440\u044b \u0434\u0430\u043d\u043d\u044b\u0445 es \u0438 vs \u0432\u044b\u0448\u0435. \u0411\u043e\u043b\u0435\u0435 \u0442\u043e\u0433\u043e, \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0438 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, function(slice) { \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0441\u043e slice } \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u0442 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0432 \u0442\u0435\u043a\u0443\u0449\u0435\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u043c \u0441\u0440\u0435\u0437\u0435, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044f \u0442\u0435\u043c \u0441\u0430\u043c\u044b\u043c \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438 \u0438\u0437\u043c\u0435\u043d\u044f\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b. \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0440\u0430\u0437\u043c\u0435\u0440 \u0432\u0435\u0440\u0448\u0438\u043d \u043d\u0438\u0436\u0435:  <\/p>\n<pre><code class=\"python\">compute.animation(net3.dyn, animation.mode = &quot;kamadakawai&quot;,                   slice.par=list(start=0, end=50, interval=4,                           aggregate.dur=1, rule='any'))  render.d3movie(net3.dyn, usearrows = F,         displaylabels = F, label=net3 %v% &quot;media&quot;,        bg=&quot;#000000&quot;, vertex.border=&quot;#dddddd&quot;,        vertex.cex = function(slice){ degree(slice)\/2.5 },          vertex.col = net3.dyn %v% &quot;col&quot;,        edge.lwd = (net3.dyn %e% &quot;weight&quot;)\/3,         edge.col = '#55555599',         vertex.tooltip = paste(&quot;&lt;b&gt;Name:&lt;\/b&gt;&quot;, (net3.dyn %v% &quot;media&quot;) , &quot;&lt;br&gt;&quot;,                               &quot;&lt;b&gt;Type:&lt;\/b&gt;&quot;, (net3.dyn %v% &quot;type.label&quot;)),        edge.tooltip = paste(&quot;&lt;b&gt;Edge type:&lt;\/b&gt;&quot;, (net3.dyn %e% &quot;type&quot;), &quot;&lt;br&gt;&quot;,                              &quot;&lt;b&gt;Edge weight:&lt;\/b&gt;&quot;, (net3.dyn %e% &quot;weight&quot; ) ),        launchBrowser=T, filename=&quot;Media-Network-even-more-Dynamic.html&quot;,        render.par=list(tween.frames = 15, show.time = F), output.mode='inline') <\/code><\/pre>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/25b\/df2\/710\/25bdf271007d4005ab43c30d8c598f54.png\"\/>       <\/p>\n<div class=\"clear\"><\/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=\"http:\/\/habrahabr.ru\/post\/268979\/\"> http:\/\/habrahabr.ru\/post\/268979\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>       \u0412 <a href=\"http:\/\/habrahabr.ru\/company\/infopulse\/blog\/262079\/\">\u043f\u0435\u0440\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438<\/a>:  <\/p>\n<ul>\n<li>\u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0441\u0435\u0442\u0435\u0439: \u0437\u0430\u0447\u0435\u043c? \u043a\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c?<\/li>\n<li>\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438<\/li>\n<li>best practices \u2014 \u044d\u0441\u0442\u0435\u0442\u0438\u043a\u0430 \u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c<\/li>\n<li>\u0444\u043e\u0440\u043c\u0430\u0442\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430<\/li>\n<li>\u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043d\u0430\u0431\u043e\u0440\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0432 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u0445<\/li>\n<li>\u043d\u0430\u0447\u0430\u043b\u043e \u0440\u0430\u0431\u043e\u0442\u044b \u0441 igraph<\/li>\n<\/ul>\n<p>  \u0412\u043e <a href=\"http:\/\/habrahabr.ru\/company\/infopulse\/blog\/263947\/\">\u0432\u0442\u043e\u0440\u043e\u0439 \u0447\u0430\u0441\u0442\u0438<\/a>: \u0446\u0432\u0435\u0442\u0430 \u0438 \u0448\u0440\u0438\u0444\u0442\u044b \u0432 \u0433\u0440\u0430\u0444\u0438\u043a\u0430\u0445 R.<\/p>\n<p>  \u0412 <a href=\"http:\/\/habrahabr.ru\/company\/infopulse\/blog\/263953\/\">\u0442\u0440\u0435\u0442\u044c\u0435\u0439<\/a> \u0447\u0430\u0441\u0442\u0438: \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0433\u0440\u0430\u0444\u043e\u0432, \u0432\u0435\u0440\u0448\u0438\u043d \u0438 \u0440\u0435\u0431\u0435\u0440.<\/p>\n<p>  \u0412 <a href=\"http:\/\/habrahabr.ru\/company\/infopulse\/blog\/266199\/\">\u0447\u0435\u0442\u0432\u0435\u0440\u0442\u043e\u0439<\/a> \u0447\u0430\u0441\u0442\u0438: \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0441\u0435\u0442\u0438.<\/p>\n<p>  \u0412 <a href=\"http:\/\/habrahabr.ru\/company\/infopulse\/blog\/266285\/\">\u043f\u044f\u0442\u043e\u0439<\/a> \u0447\u0430\u0441\u0442\u0438: \u0430\u043a\u0446\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432 \u0441\u0435\u0442\u0438, \u0432\u0435\u0440\u0448\u0438\u043d, \u0440\u0435\u0431\u0435\u0440, \u043f\u0443\u0442\u0435\u0439.<\/p>\n<p>  \u0412 <a href=\"http:\/\/habrahabr.ru\/company\/infopulse\/blog\/268917\/\">\u0448\u0435\u0441\u0442\u043e\u0439<\/a> \u0447\u0430\u0441\u0442\u0438: \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u0430\u044f \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0441\u0435\u0442\u0435\u0439, \u0434\u0440\u0443\u0433\u0438\u0435 \u0441\u043f\u043e\u0441\u043e\u0431\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u0435\u0442\u0438.<\/p>\n<p>  \u0412 \u044d\u0442\u043e\u0439 \u0447\u0430\u0441\u0442\u0438: \u0430\u043d\u0438\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0441\u0435\u0442\u0435\u0439, \u044d\u0432\u043e\u043b\u044e\u0446\u0438\u044f \u0441\u0435\u0442\u0438 \u0432\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438.  <\/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-267356","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/267356","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=267356"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/267356\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=267356"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=267356"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=267356"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}