{"id":285867,"date":"2017-05-03T20:31:03","date_gmt":"2017-05-03T16:31:03","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=285867"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=285867","title":{"rendered":"RMarkdown, R \u0438 ggplot"},"content":{"rendered":"<h1 id=\"rmarkdown-r-i-ggplot\">RMarkdown, R \u0438 ggplot<\/h1>\n<p>  <\/p>\n<p>\u0414\u0430\u043d\u043d\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f <strong>\u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f<\/strong> \u043d\u0438 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0435\u0439, <strong>\u043d\u0438 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442<\/strong> \u0447\u0442\u043e-\u0442\u043e \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0438\u0430\u043b\u044c\u043d\u043e \u043d\u043e\u0432\u043e\u0435, \u0435\u0451 \u0441\u0442\u043e\u0438\u0442 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u043a\u0430\u043a \u043e\u0431\u0437\u043e\u0440\u043d\u0443\u044e \u0438\u043b\u0438 \u043a\u0430\u043a <em>\u0448\u043f\u0430\u0440\u0433\u0430\u043b\u043a\u0443<\/em>.<\/p>\n<p>  <\/p>\n<h2 id=\"preambula\">\u041f\u0440\u0435\u0430\u043c\u0431\u0443\u043b\u0430<\/h2>\n<p>  <\/p>\n<p>\u041a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044f \u044d\u0442\u043e \u043f\u0440\u0435\u0436\u0434\u0435 \u0432\u0441\u0435\u0433\u043e \u0434\u043e\u043a\u043b\u0430\u0434\u044b, \u0438 \u0434\u0430\u043b\u0435\u043a\u043e \u043d\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u043c\u0435\u0441\u0442\u043e \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u0442\u043e, \u043a\u0430\u043a \u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u044b \u0441\u043b\u0430\u0439\u0434\u044b \u0434\u043e\u043a\u043b\u0430\u0434\u0430.<\/p>\n<p>  <\/p>\n<p><em>\u0411\u0435\u0437\u0443\u0441\u043b\u043e\u0432\u043d\u043e<\/em>, \u0435\u0441\u0442\u044c <a href=\"https:\/\/twitter.com\/shipilev\">\u0434\u043e\u043a\u043b\u0430\u0434\u0447\u0438\u043a\u0438<\/a>, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0433\u0443\u0442 \u043d\u0435 \u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0438 \u043d\u0430 \u0447\u0442\u043e, \u043f\u0440\u043e\u0432\u0435\u0441\u0442\u0438 \u0434\u043e\u043a\u043b\u0430\u0434 \u0434\u0430\u0436\u0435 \u0431\u0435\u0437 \u0435\u0434\u0438\u043d\u043e\u0433\u043e \u0441\u043b\u0430\u0439\u0434\u0430, \u043d\u043e \u0432\u0441\u0451 \u0436\u0435 \u043e\u043d\u0438 \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u0445\u043e\u0440\u043e\u0448\u043e \u0434\u043e\u043f\u043e\u043b\u043d\u044f\u044e\u0442 \u043f\u043e\u0432\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0435. <a href=\"https:\/\/twitter.com\/jbaruch\">\u041e\u0434\u043d\u0438\u043c<\/a> \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043d\u0430\u043a\u0438\u0434\u0430\u0442\u044c \u043c\u0435\u043c\u0430\u0441\u0438\u043a\u043e\u0432 \u0432 \u0434\u043e\u043a\u043b\u0430\u0434 \u0438 \u0434\u0435\u043b\u043e \u0433\u043e\u0442\u043e\u0432\u043e, <a href=\"https:\/\/twitter.com\/iwan0www\">\u0434\u0440\u0443\u0433\u0438\u043c<\/a> \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0430\u0434\u043e \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043a\u043e\u0434, \u043f\u0440\u0438\u0447\u0451\u043c \u043d\u0430 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0435 (\u043a\u0442\u043e \u043d\u0435 \u0432 \u043a\u0443\u0440\u0441\u0435 \u0435\u0449\u0451 \u2014 <a href=\"https:\/\/jpoint.ru\/\">JPoint<\/a> \u2014 \u044d\u0442\u043e \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044f \u043f\u043e java), \u0438 \u0435\u0441\u0442\u044c \u0435\u0449\u0451 \u0442\u0435, \u043a\u043e\u043c\u0443 \u043d\u0430\u0434\u043e \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0433\u0440\u0430\u0444\u0438\u043a\u0438. \u0412\u043f\u0440\u043e\u0447\u0435\u043c \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442\u0441\u044f \u0438 \u0438\u0445 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u044f.<\/p>\n<p>  <\/p>\n<p>\u041f\u043e\u0436\u0430\u043b\u0443\u0439 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0435 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0441\u043b\u0430\u0439\u0434\u043e\u0432 \u044d\u0442\u043e:<\/p>\n<p>  <\/p>\n<ul>\n<li>PowerPoint, \u0438 \u0432\u0430\u0440\u0438\u0430\u0446\u0438\u0438 \u0432 \u043b\u0438\u0446\u0435 LibreOffice Impress, Apple KeyNote<\/li>\n<li>\u043e\u0431\u043b\u0430\u0447\u043d\u044b\u0435 \u0432\u0430\u0440\u0438\u0430\u0446\u0438\u0438 \u0441 \u0442\u0435\u043c \u0436\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u043e\u043c \u2014 <a href=\"https:\/\/www.google.com\/slides\">Google Slides<\/a><\/li>\n<li><a href=\"https:\/\/www.latex-project.org\/\">LaTeX<\/a><\/li>\n<li>\u0438 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u043e\u0432\u044b\u0439 (\u0434\u043b\u044f \u043c\u0435\u043d\u044f) <a href=\"http:\/\/rmarkdown.rstudio.com\/\">RMarkdown<\/a><\/li>\n<\/ul>\n<p>  <a name=\"habracut\"><\/a>  <\/p>\n<p>\u0418 \u0435\u0441\u043b\u0438 \u043f\u0435\u0440\u0432\u044b\u0435 \u0434\u0432\u0430 \u043f\u043e \u0441\u0432\u043e\u0435\u0439 \u0441\u0443\u0442\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u044b, \u0430 \u043e\u0431\u043b\u0430\u0447\u043d\u044b\u0435 <a href=\"https:\/\/www.google.com\/slides\">Google Slides \u0438 \u043a\u043e <\/a> \u0435\u0449\u0451 \u0442\u0440\u0435\u0431\u0443\u044e\u0442 \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0430, \u0447\u0442\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043d\u0435\u043f\u0440\u0438\u044f\u0442\u043d\u044b\u043c \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435\u043c (\u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043f\u043e\u0435\u0437\u0434\u043e\u043a \u0438 \u043f\u0435\u0440\u0435\u043b\u0451\u0442\u043e\u0432), \u0442\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u0434\u0432\u0430 \u2014 \u0438 \u043e\u0444\u0444\u043b\u0430\u0439\u043d\u043e\u0432\u044b\u0435, \u0438 \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0435, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442 \u043c\u043e\u0436\u043d\u043e \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0438\u0441\u0442\u043e\u0440\u0438\u044e \u0432\u0441\u0435\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0432 git\/hg\/\u043d\u0430 \u0432\u0430\u0448 \u0432\u043a\u0443\u0441. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u043e\u0431\u043b\u0430\u0441\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043b\u0435\u043a\u043e \u043d\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043b\u0430\u0439\u0434\u0430\u043c\u0438.<\/p>\n<p>  <\/p>\n<p><strong>LaTeX<\/strong> \u0444\u043e\u0440\u043c\u0430\u0442 \u0441 \u0438\u0441\u0442\u043e\u0440\u0438\u0435\u0439 \u2014 \u043c\u043d\u043e\u0433\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u0438 \u0441\u043a\u0430\u0437\u0430\u043d\u043e, \u0430 \u0432\u043e\u0442 RMarkdown \u043c\u043e\u043b\u043e\u0434\u043e\u0439, \u0434\u0430\u0436\u0435 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0445\u0438\u043f\u0441\u0442\u0435\u0440\u0441\u043a\u0438\u0439, \u043d\u043e \u0431\u0435\u0437 \u043f\u043e\u0434\u0432\u043e\u0440\u043e\u0442\u043e\u0432.<\/p>\n<p>  <\/p>\n<h3 id=\"markdown\">Markdown<\/h3>\n<p>  <\/p>\n<p>Markdown \u044d\u0442\u043e \u043e\u0431\u043b\u0435\u0433\u0447\u0435\u043d\u043d\u044b\u0439 \u044f\u0437\u044b\u043a \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0438, \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u0441 \u0446\u0435\u043b\u044c\u044e \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0447\u0438\u0442\u0430\u0435\u043c\u043e\u0433\u043e \u0438 \u0443\u0434\u043e\u0431\u043d\u043e\u0433\u043e \u0434\u043b\u044f \u043f\u0440\u0430\u0432\u043a\u0438 \u0442\u0435\u043a\u0441\u0442\u0430. Markdown \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0438 \u043b\u0451\u0433\u043a\u0438\u043c \u0434\u043b\u044f \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f, \u0438 \u043b\u0435\u0433\u043a\u0438\u043c \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f \u0434\u0430\u0436\u0435 <em>\u0431\u0435\u0437 \u043a\u0430\u043a\u0438\u0445-\u043b\u0438\u0431\u043e \u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0439<\/em>.<\/p>\n<p>  <\/p>\n<p>\u0421\u0440\u0430\u0432\u043d\u0438\u0442\u0435 \u0441\u0430\u043c\u0438: <code>_\u043a\u0443\u0440\u0441\u0438\u0432_<\/code> \u044d\u0442\u043e <em>\u043a\u0443\u0440\u0441\u0438\u0432<\/em>, <code>**\u0441\u0438\u043b\u044c\u043d\u043e\u0435 \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u0435**<\/code> \u044d\u0442\u043e <strong>\u0441\u0438\u043b\u044c\u043d\u043e\u0435 \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u0435<\/strong>, \u0438 \u043c\u043d\u043e\u0433\u043e\u0435 \u0434\u0440\u0443\u0433\u043e\u0435 \u2014 \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u043e \u0432 <a href=\"https:\/\/github.com\/adam-p\/markdown-here\/wiki\/Markdown-Cheatsheet\">Markdown cheatsheet<\/a>.<\/p>\n<p>  <\/p>\n<p>Markdown \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442 github, habrahabr, sublime, jira (\u0438\u043c\u0435\u0435\u0442 \u0441\u0445\u043e\u0436\u0438\u0439 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441), \u0438 \u043c\u043d\u043e\u0433\u0438\u0435 \u0434\u0440\u0443\u0433\u0438\u0435.<\/p>\n<p>  <\/p>\n<h3 id=\"r\">R<\/h3>\n<p>  <\/p>\n<p><a href=\"https:\/\/www.r-project.org\/\">R<\/a> \u2014 \u044f\u0437\u044b\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u043b\u044f \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0433\u0440\u0430\u0444\u0438\u043a\u043e\u0439.<\/p>\n<p>  <\/p>\n<p>\u041a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u044d\u0442\u043e \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u2014 \u044d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u0441\u043b\u043e\u0436\u043d\u043e, \u044d\u0442\u043e \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0430, \u0438 \u044d\u0442\u043e \u043d\u0435 \u043d\u0430\u0434\u043e \u2014 \u043d\u043e \u043d\u0438\u043a\u0442\u043e \u0436\u0435 \u0437\u0430\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u044e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c, \u043f\u043e\u0436\u0430\u043b\u0443\u0439 \u0441\u0430\u043c\u044b\u0439 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0438 \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u044b\u0439 \u2014 \u044d\u0442\u043e \u0433\u0440\u0430\u0444\u0438\u043a\u0438 \u0438 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f.<\/p>\n<p>  <\/p>\n<blockquote><p>\u0425\u043e\u0442\u044f \u0447\u0430\u0441\u0442\u043e \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043a\u0430\u043a\u043e\u0439-\u043b\u0438\u0431\u043e \u0433\u0440\u0430\u0444\u0438\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 Excel, \u043e\u043d \u0441 \u0431\u043e\u043b\u044c\u0448\u0438\u043c \u0442\u0440\u0443\u0434\u043e\u043c \u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f, \u043a\u043e\u0433\u0434\u0430 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0440\u0438\u0431\u043b\u0438\u0436\u0430\u0435\u0442\u0441\u044f \u0443\u0436\u0435 \u043a \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u0443. \u0422\u043e\u0433\u0434\u0430 \u043a\u0430\u043a \u0434\u043b\u044f R \u044d\u0442\u043e \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u0441\u043b\u043e\u0436\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0435\u0439.<\/p><\/blockquote>\n<p>  <\/p>\n<h4 id=\"dannye-i-grafiki\">\u0414\u0430\u043d\u043d\u044b\u0435 \u0438 \u0433\u0440\u0430\u0444\u0438\u043a\u0438<\/h4>\n<p>  <\/p>\n<blockquote><p>\u041e\u0441\u0442\u0430\u0432\u0438\u043c \u0437\u0430 \u043a\u0430\u0434\u0440\u043e\u043c \u0431\u0430\u0442\u0430\u043b\u0438\u044e, \u0447\u0442\u043e \u0436\u0435 \u043b\u0443\u0447\u0448\u0435 \u2014 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0438\u043b\u0438 \u0433\u0440\u0430\u0444\u0438\u043a\u0438. \u0412\u043e\u043f\u0440\u043e\u0441 \u0432\u043a\u0443\u0441\u0430.<\/p><\/blockquote>\n<p>\u0414\u043b\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u0433\u0440\u0430\u0444\u0438\u043a\u043e\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 <a href=\"http:\/\/ggplot2.tidyverse.org\/index.html\">ggplot2<\/a>.<\/p>\n<p>  <\/p>\n<p>\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043c\u043e\u0434\u0443\u043b\u044c \u0434\u043b\u044f <em>R<\/em> :<\/p>\n<p>  <\/p>\n<pre><code>install.packages(&quot;ggplot2&quot;)<\/code><\/pre>\n<p>  <\/p>\n<p>\u041d\u043e \u0447\u0442\u043e\u0431\u044b \u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0433\u0440\u0430\u0444\u0438\u043a\u0438 \u043d\u0443\u0436\u043d\u044b \u0434\u0430\u043d\u043d\u044b\u0435, \u0438 \u0440\u0430\u0437\u0443\u043c\u043d\u043e \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0438\u0445 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u043e\u0442 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432 csv \u0444\u043e\u0440\u043c\u0430\u0442\u0435 \u2014 \u043e\u043f\u044f\u0442\u044c \u0436\u0435 \u2014 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442.<\/p>\n<p>  <\/p>\n<blockquote><p>\u041c\u043e\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u2014 \u044d\u0442\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0435 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 <a href=\"http:\/\/openjdk.java.net\/projects\/code-tools\/jmh\">jmh<\/a> \u0434\u043b\u044f \u043c\u043e\u0435\u0433\u043e \u0434\u043e\u043a\u043b\u0430\u0434\u0430 <a href=\"https:\/\/jpoint.ru\/talks\/through-the-keyhole-of-hashcode-into-vm\/\">\u0412\u043d\u0443\u0442\u0440\u044c VM \u0441\u043a\u0432\u043e\u0437\u044c \u0437\u0430\u043c\u043e\u0447\u043d\u0443\u044e \u0441\u043a\u0432\u0430\u0436\u0438\u043d\u0443 hashCode<\/a>. \u041c\u043d\u0435 \u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044f \u0441\u0442\u0438\u043b\u044c, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0439 \u0410\u043b\u0435\u043a\u0441\u0435\u0435\u043c \u0428\u0438\u043f\u0438\u043b\u0451\u0432\u044b\u043c: \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b benchmark&#8217;\u0430 \u0432 \u0432\u0438\u0434\u0435 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u0444\u0430\u0439\u043b\u0430 \u2014 <strong>grep-n-sed<\/strong> \u0438 \u043c\u044b \u0438\u043c\u0435\u0435\u043c csv-\u0444\u0430\u0439\u043b.<\/p><\/blockquote>\n<p>\u0434\u0430\u043d\u043d\u044b\u0435 <code>csv\/allocations.csv<\/code>:<\/p>\n<p>  <\/p>\n<pre><code>pos,alloc,value,error 10,single-threaded,2.836,0.285 20,java,9.878,2.676 28,epsilon,75.289,23.667 30,sync,186.672,21.195 40,cas,74.721,0.192 50,tlab,8.506,1.849 55,javaHashCode,60.270,12.318 57,readHashCode,7.296,0.316<\/code><\/pre>\n<p>  <\/p>\n<p>\u0424\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u043c <em>\u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0434\u0430\u043d\u043d\u044b\u0445<\/em> (<em>data frame<\/em>) \u0438\u0437 csv-\u0444\u0430\u0439\u043b\u0430 \u2014 \u043f\u043e-\u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0432 \u0444\u0430\u0439\u043b\u0435 \u0435\u0441\u0442\u044c \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u2014 \u044d\u0442\u043e \u043d\u0430\u043c \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438 \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0438 \u043a \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u043c \u043a\u043e\u043b\u043e\u043d\u043a\u0430\u043c<\/p>\n<p>  <\/p>\n<pre><code>```{r} df = read.csv(file = &quot;csv\/allocations.csv&quot;) ```<\/code><\/pre>\n<p>  <\/p>\n<p>\u0435\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u043c \u043e\u0442\u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432\u0430\u0442\u044c, \u043d-\u0440, \u043f\u043e \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c \u0432 \u043a\u043e\u043b\u043e\u043d\u043a\u0435 <strong>alloc<\/strong><\/p>\n<p>  <\/p>\n<pre><code>df &lt;- subset(df, alloc == &quot;cas&quot; | alloc == &quot;java&quot; | alloc == &quot;sync&quot; | alloc == &quot;tlab&quot; )<\/code><\/pre>\n<p>  <\/p>\n<h3 id=\"bary--stolbiki\">\u0411\u0430\u0440\u044b \/ \u0441\u0442\u043e\u043b\u0431\u0438\u043a\u0438<\/h3>\n<p>  <\/p>\n<p>\u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0437\u0430\u0434\u0430\u0442\u044c <em>\u0441\u0445\u0435\u043c\u0443 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445<\/em> (<strong>aes<\/strong>) \u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u2014 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c \u0431\u0443\u0434\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043e\u0442 \u0442\u0438\u043f\u0430, \u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0442\u0438\u043f\u0430 \u0430\u043b\u043b\u043e\u043a\u0430\u0446\u0438\u0438, \u0446\u0432\u0435\u0442 \u0431\u0430\u0440\u0430 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0431\u0440\u0430\u043d \u0442\u0430\u043a\u0436\u0435 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0442\u0438\u043f\u0430 \u0430\u043b\u043b\u043e\u043a\u0430\u0446\u0438\u0438.<\/p>\n<p>  <\/p>\n<pre><code>ggplot(data=df, aes(x=alloc, y=value, fill=alloc))<\/code><\/pre>\n<p>  <\/p>\n<p>\u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c \u0431\u0443\u0434\u0435\u043c \u0432 \u0432\u0438\u0434\u0435 \u0441\u0442\u043e\u043b\u0431\u0438\u043a\u043e\u0432 ( <em>bar chart<\/em> ) <strong>+ geom_bar()<\/strong><\/p>\n<p>  <\/p>\n<pre><code>ggplot(data=df, aes(x=alloc, y=value, fill=alloc)) + geom_bar(stat=&quot;identity&quot;)<\/code><\/pre>\n<p>  <\/p>\n<p>\u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:<br \/>  <img decoding=\"async\" src=\"https:\/\/vladimirdolzhenko.github.io\/hashCodeLegend\/images\/rmd\/allocations-st-sync0.svg\"\/><\/p>\n<p>  <\/p>\n<p>\u043f\u043e\u0432\u0435\u0440\u043d\u0451\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 (\u0438\u0437 \u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0432 \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0431\u0430\u0440\u044b) \u043e\u043f\u0446\u0438\u0435\u0439 <strong>+ coord_flip()<\/strong><\/p>\n<p>  <\/p>\n<pre><code>ggplot(data=df, aes(x=alloc, y=value, fill=alloc)) + geom_bar(stat=&quot;identity&quot;) + coord_flip()<\/code><\/pre>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/vladimirdolzhenko.github.io\/hashCodeLegend\/images\/rmd\/allocations-st-sync1.svg\"\/><\/p>\n<p>  <\/p>\n<p>\u0434\u043e\u0431\u0430\u0432\u0438\u043c \u043e\u0448\u0438\u0431\u043a\u0443 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 <strong>+ geom_errorbar()<\/strong> (\u043f\u043e\u043c\u043d\u0438\u0442\u0435, \u0443 \u043d\u0430\u0441 \u0432 csv-\u0444\u0430\u0439\u043b\u0435 \u0435\u0441\u0442\u044c \u043a\u043e\u043b\u043e\u043d\u043a\u0430 <strong>error<\/strong>):<\/p>\n<p>  <\/p>\n<pre><code>ggplot(data=df, aes(x=alloc, y=value, fill=alloc)) + geom_bar(stat=&quot;identity&quot;) + coord_flip() + geom_errorbar(aes(ymin = value - error, ymax = value + error), width=0.5, alpha=0.5)<\/code><\/pre>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/vladimirdolzhenko.github.io\/hashCodeLegend\/images\/rmd\/allocations-st-sync2.svg\"\/><\/p>\n<p>  <\/p>\n<p>\u0434\u043b\u044f \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e\u0441\u0442\u0438 \u0441\u0442\u043e\u0438\u0442 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0440\u044f\u0434\u043e\u043c \u0441 \u0431\u0430\u0440\u043e\u043c <strong>+ geom_text()<\/strong> (\u043b\u043e\u0433\u0438\u0447\u043d\u043e, \u0447\u0442\u043e \u0442\u0435\u043a\u0441\u0442\u043e\u043c \u0431\u0443\u0434\u0435\u0442 <strong>value<\/strong>)<\/p>\n<p>  <\/p>\n<pre><code>ggplot(data=df, aes(x=alloc, y=value, fill=alloc)) + geom_bar(stat=&quot;identity&quot;) + coord_flip() + geom_errorbar(aes(ymin = value - error, ymax = value + error),  width=0.5, alpha=0.5) + geom_text(aes(label=value))<\/code><\/pre>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/vladimirdolzhenko.github.io\/hashCodeLegend\/images\/rmd\/allocations-st-sync3.svg\"\/><\/p>\n<p>  <\/p>\n<p>\u0434\u043e\u0431\u0430\u0432\u0438\u043c \u043b\u043e\u0441\u043a\u0430 \u043f\u043e\u0434\u043f\u0438\u0441\u0438 <strong>+ geom_text()<\/strong>:<\/p>\n<p>  <\/p>\n<ul>\n<li>\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0434\u043b\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043f\u043e\u0434\u043f\u0438\u0441\u0438 <em>\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u00b1 \u043e\u0448\u0438\u0431\u043a\u0430<\/em> \u2014 <strong>label=base::sprintf(&quot;%0.2f \u00b1 %0.2f&quot;, value, error)<\/strong> (\u043f\u0440\u0438\u0432\u0435\u0442 \u0441\u0442\u0430\u0440\u044b\u0439 \u0434\u043e\u0431\u0440\u044b\u0439 <em>sprintf<\/em> \u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f <em>%f<\/em>!)<\/li>\n<li>\u043f\u043e\u0438\u0433\u0440\u0430\u0435\u043c\u0441\u044f \u0441 \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u043c <strong>hjust<\/strong> \u0438 \u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u043c <strong>vjust<\/strong> \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c \u043f\u043e\u0434\u043f\u0438\u0441\u0438<\/li>\n<li>\n<p>\u0438\u0437\u043c\u0435\u043d\u0438\u043c \u0440\u0430\u0437\u043c\u0435\u0440 \u0448\u0440\u0438\u0444\u0442\u0430 <strong>size<\/strong> \u0438 \u043d\u0430\u0447\u0435\u0440\u0442\u0430\u043d\u0438\u0435 <strong>fontface<\/strong> \u043f\u043e\u0434\u043f\u0438\u0441\u0438<\/p>\n<p>  <\/p>\n<p>ggplot(data=df, aes(x=alloc, y=value, fill=alloc)) +<br \/>  geom_bar(stat=&quot;identity&quot;) +<br \/>  coord_flip() +<br \/>  geom_errorbar(aes(ymin = value \u2014 error, ymax = value + error), width=0.5, alpha=0.5) +<br \/>  geom_text(aes(label=base::sprintf(&quot;%0.2f \u00b1 %0.2f&quot;, value, error)), hjust=-0.1, vjust=-0.4, size=5, fontface = &quot;bold&quot;)<\/p>\n<p>  <\/li>\n<\/ul>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/vladimirdolzhenko.github.io\/hashCodeLegend\/images\/rmd\/allocations-st-sync4.svg\"\/><\/p>\n<p>  <\/p>\n<ul>\n<li>\u043f\u043e\u0434\u043a\u0440\u0443\u0442\u0438\u043c \u0442\u0435\u043c\u0443 <strong>+ theme_classic()<\/strong><\/li>\n<li>\u0443\u0431\u0435\u0440\u0451\u043c \u043b\u0435\u0433\u0435\u043d\u0434\u0443 <strong>+ theme(legend.position=&quot;none&quot;)<\/strong><\/li>\n<li>\n<p>\u0434\u043e\u0431\u0430\u0432\u0438\u043c \u043f\u043e\u0434\u043f\u0438\u0441\u0438 <strong>+ labs(title =\u2026, x =\u2026, y = ..)<\/strong> \u0438 \u0448\u0440\u0438\u0444\u0442\u044b \u0434\u043b\u044f \u043e\u0441\u0435\u0439 <strong>+ theme(axis.text.y = ..)<\/strong><\/p>\n<p>  <\/p>\n<p>ggplot(data=df, aes(x=alloc, y=value, fill=alloc)) +<br \/>  geom_bar(stat=&quot;identity&quot;) +<br \/>  coord_flip() +<br \/>  geom_errorbar(aes(ymin = value \u2014 error, ymax = value + error), width=0.5, alpha=0.5) +<br \/>  geom_text(aes(label=base::sprintf(&quot;%0.2f \u00b1 %0.2f&quot;, value, error)), hjust=-0.1, vjust=-0.4, size=5, fontface = &quot;bold&quot;) +<br \/>  labs(title = &quot;@Threads( 4 )&quot;, x = &quot;&quot;, y = &quot;ns\/op&quot;) +<br \/>  theme_classic() +<br \/>  theme(axis.text.y = element_text(size = 16, face = &quot;bold&quot;)) +<br \/>  theme(axis.title = element_text(size = 16, face = &quot;bold&quot;)) +<br \/>  theme(legend.position=&quot;none&quot;)<\/p>\n<p>  <\/li>\n<\/ul>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/vladimirdolzhenko.github.io\/hashCodeLegend\/images\/rmd\/allocations-st-sync5.svg\"\/><\/p>\n<p>  <\/p>\n<p>\u0438 \u0434\u043b\u044f \u043f\u0440\u0438\u0434\u0430\u043d\u0438\u044f \u0444\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043b\u043e\u0441\u043a\u0430<\/p>\n<p>  <\/p>\n<ul>\n<li>\u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0446\u0438\u0440\u0443\u0435\u043c \u0446\u0432\u0435\u0442\u0430 <strong>+ scale_fill_manual()<\/strong><\/li>\n<li>\u0443\u0434\u0430\u043b\u0438\u043c \u0437\u0430\u0437\u043e\u0440 \u043c\u0435\u0436\u0434\u0443 \u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u043e\u0441\u044c\u044e \u0438 \u0431\u0430\u0440\u043e\u043c <strong>+ scale_y_continuous()<\/strong> \u0438 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u0438\u043c \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439, \u0447\u0442\u043e\u0431\u044b \u0438 \u043e\u0448\u0438\u0431\u043a\u0430 \u043f\u043e\u043c\u0435\u0449\u0430\u043b\u0430\u0441\u044c, \u0438 \u043f\u043e\u0434\u043f\u0438\u0441\u044c<\/li>\n<li>\u0438 \u0435\u0449\u0451 \u0437\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u0443\u0435\u043c \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0431\u0430\u0440\u043e\u0432, \u0441\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u043a\u043e\u043b\u043e\u043d\u043a\u0435 <strong>pos<\/strong>: <strong>x=reorder(alloc, -pos)<\/strong><\/li>\n<\/ul>\n<pre><code>ggplot(data=df, aes(x=reorder(alloc, -pos), y=value, fill=alloc)) + geom_bar(stat=&quot;identity&quot;) + coord_flip() + geom_errorbar(aes(ymin = value - error, ymax = value + error),  width=0.5, alpha=0.5) + geom_text(aes(label=base::sprintf(&quot;%0.2f \u00b1 %0.2f&quot;, value, error)), hjust=-0.1, vjust=-0.4, size=5, fontface = &quot;bold&quot;) + scale_fill_manual(values=c(java'='#a9a518','sync'='#fa8074', 'cas'='#00b3f6', 'tlab'='#e67bf3')) + labs(title = &quot;@Threads( 4 )&quot;, x = &quot;&quot;, y = &quot;ns\/op&quot;) + theme_classic() + scale_y_continuous(limits=c(0, max(df$value) + 40), expand = c(0, 0)) + theme(axis.text.y = element_text(size = 16, face = &quot;bold&quot;)) + theme(axis.title = element_text(size = 16, face = &quot;bold&quot;)) + theme(legend.position=&quot;none&quot;)<\/code><\/pre>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/vladimirdolzhenko.github.io\/hashCodeLegend\/images\/rmd\/allocations-st-sync.svg\"\/><\/p>\n<p>  <\/p>\n<p><em>tip<\/em>: \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0433\u0440\u0430\u0444\u0438\u043a \u0432 \u0444\u0430\u0439\u043b <strong>+ ggsave(&quot;allocations.svg&quot;)<\/strong>, \u043d\u043e \u043d\u0435 \u0441\u0442\u043e\u0438\u0442 \u0437\u043b\u043e\u0443\u043f\u043e\u0442\u0440\u0435\u0431\u043b\u044f\u0442\u044c \u0432\u0435\u043a\u0442\u043e\u0440\u043d\u044b\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u043c, \u0435\u0441\u043b\u0438 \u043d\u0430 \u0433\u0440\u0430\u0444\u0438\u043a\u0435 \u043c\u043d\u043e\u0433\u043e \u0442\u043e\u0447\u0435\u043a \u2014 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0439\u0442\u0435 \u0432 \u0440\u0430\u0441\u0442\u0440, \u043d-\u0440 <strong>png<\/strong>.<\/p>\n<p>  <\/p>\n<pre><code>install.packages(&quot;svglite&quot;)<\/code><\/pre>\n<p>  <\/p>\n<blockquote><p>\u041e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0441\u0442\u043e\u0438\u0442 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c \u0446\u0432\u0435\u0442\u043e\u0432\u0443\u044e \u043f\u0430\u043b\u0438\u0442\u0440\u0443, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0443\u044e \u043f\u043e-\u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e: \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c\u044b\u0435 \u0446\u0432\u0435\u0442\u0430 \u0445\u043e\u0440\u043e\u0448\u043e \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u043c\u044b \u0434\u0430\u0436\u0435 \u0434\u043b\u044f \u043b\u044e\u0434\u0435\u0439 \u0441 \u043e\u0441\u043b\u0430\u0431\u043b\u0435\u043d\u044b\u043c \u0446\u0432\u0435\u0442\u043e\u0432\u043e\u0441\u043f\u0440\u0438\u044f\u0442\u0438\u0435\u043c.<\/p>\n<p>  \u041d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0441\u043e\u0447\u0435\u0442\u0430\u043d\u0438\u0435 \u043a\u0440\u0430\u0441\u043d\u044b\u0439\/\u0437\u0435\u043b\u0451\u043d\u044b\u0439 \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0432\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 \u0432\u0441\u0435\u0433\u043e \u0434\u0432\u0430 \u0446\u0432\u0435\u0442\u0430, \u0447\u0442\u043e\u0431\u044b \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c, \u0447\u0442\u043e \u043b\u0443\u0447\u0448\u0435\/\u0445\u0443\u0436\u0435 \u2014 \u044d\u0442\u0438 \u0446\u0432\u0435\u0442\u0430 \u0441\u043b\u0430\u0431\u043e \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u043c\u044b \u0434\u043b\u044f \u043b\u044e\u0434\u0435\u0439 \u0441 \u043e\u0441\u043b\u0430\u0431\u043b\u0435\u043d\u044b\u043c \u0446\u0432\u0435\u0442\u043e\u0432\u043e\u0441\u043f\u0440\u0438\u044f\u0442\u0438\u0435\u043c.<\/p><\/blockquote>\n<p><em>tip<\/em>: <a href=\"http:\/\/colorbrewer2.org\/#type=diverging&amp;scheme=RdBu&amp;n=6\">colorbrewer2<\/a> \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0432 \u0442.\u0447. <em>\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u0435<\/em> \u0446\u0432\u0435\u0442\u0430.<\/p>\n<p>  <\/p>\n<h4 id=\"tochki\">\u0422\u043e\u0447\u043a\u0438<\/h4>\n<p>  <\/p>\n<p>\u0415\u0441\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0430\u0434\u0440\u0435\u0441\u043e\u0432 \u043f\u043e \u043d\u0438\u0442\u044f\u043c<\/p>\n<p>  <\/p>\n<pre><code>step,thread,address 1,thread-0,807437816 1,thread-1,807437784 1,thread-2,807437800 ..........<\/code><\/pre>\n<p>  <\/p>\n<ul>\n<li>\n<p>\u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u043c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u043f\u043e \u0442\u043e\u0447\u043a\u0430\u043c <strong>+ geom_point<\/strong><\/p>\n<p>  <\/p>\n<ul>\n<li>\u0447\u0442\u043e\u0431\u044b \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u0442\u044c \u043e\u0434\u043d\u0443 \u043d\u0438\u0442\u044c \u043e\u0442 \u0434\u0440\u0443\u0433\u043e\u0439, \u0443\u043a\u0430\u0436\u0435\u043c \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0446\u0432\u0435\u0442\u043e\u0432\u0443\u044e <strong>aes(&#8230;, colour = thread,&#8230;)<\/strong> \u0434\u0438\u0444\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0430\u0446\u0438\u044e, \u043d\u043e \u0438 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 <a href=\"http:\/\/www.cookbook-r.com\/Graphs\/Shapes_and_line_types\/\"><em>\u0444\u043e\u0440\u043c\u044b<\/em> \u043c\u0430\u0440\u043a\u0435\u0440\u0430<\/a> <strong>aes(&#8230;, shape = thread,&#8230;)<\/strong> \u2014 <\/li>\n<\/ul>\n<p>  <\/p>\n<p>ggplot(data=df, aes(x = address, y = index, group=thread, colour=thread, shape=thread)) +<br \/>  geom_point(size=2)<\/p>\n<p>  <\/li>\n<\/ul>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/vladimirdolzhenko.github.io\/hashCodeLegend\/images\/rmd\/hashCodes.png\"\/><\/p>\n<p>  <\/p>\n<p>\u041f\u0435\u0440\u0432\u043e\u0435, \u0447\u0442\u043e \u0431\u0440\u043e\u0441\u0430\u0435\u0442\u0441\u044f \u0432 \u0433\u043b\u0430\u0437\u0430 (\u043a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043c\u043d\u043e\u0433\u043e \u0434\u0430\u043d\u043d\u044b\u0445) \u2014 \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0430\u0434\u0440\u0435\u0441\u043e\u0432 \u0432 \u043d\u0430\u0443\u0447\u043d\u043e\u0439 \u043d\u043e\u0442\u0430\u0446\u0438\u0438. \u041a\u0430\u043a-\u0442\u043e \u043f\u0440\u0438\u0432\u044b\u0447\u043d\u0435\u0439 \u0438\u043c\u0435\u0442\u044c \u0434\u0435\u043b\u043e \u0441 \u0430\u0434\u0440\u0435\u0441\u0430\u043c\u0438 \u0432 16-\u0442\u0438\u0440\u0438\u0447\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435: \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043f\u043e \u043e\u0441\u0438 X <strong>+scale_x_continuous()<\/strong>:<\/p>\n<p>  <\/p>\n<pre><code>ggplot(data=df, aes(x = address, y = index, group=thread, colour=thread, shape=thread)) + geom_point(size=2) + scale_x_continuous(     labels = function(n){base::sprintf(&quot;0x%X&quot;, as.integer(n))} )<\/code><\/pre>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/vladimirdolzhenko.github.io\/hashCodeLegend\/images\/rmd\/hashCodes1.png\"\/><\/p>\n<p>  <\/p>\n<p>\u041b\u0443\u0447\u0448\u0435, \u043d\u043e \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u043a\u0430\u043a-\u0442\u043e \u0441\u043b\u043e\u0436\u043d\u043e \u0438 \u043c\u0430\u043b\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u043e.<\/p>\n<p>  <\/p>\n<p>\u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0437\u0430\u0434\u0430\u0432\u0430\u0442\u044c \u043b\u044e\u0431\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e, \u0442\u043e \u043f\u043e\u0447\u0435\u043c\u0443 \u0431\u044b \u043d\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0431\u0430\u0437\u043e\u0432\u043e\u0433\u043e, \u043d-\u0440 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e, \u0430\u0434\u0440\u0435\u0441\u0430:<\/p>\n<p>  <\/p>\n<pre><code>min_address = min(df$address)  ggplot(data=df, aes(x = address, y = index, group=thread, colour=thread, shape=thread)) + geom_point(size=2) + scale_x_continuous(     labels = function(n){base::sprintf(&quot;+ %d MiB&quot;, as.integer((n - min_address)\/1024\/1024))} )<\/code><\/pre>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/vladimirdolzhenko.github.io\/hashCodeLegend\/images\/rmd\/hashCodes2.png\"\/><\/p>\n<p>  <\/p>\n<p>\u041e\u043f\u044f\u0442\u044c \u0436\u0435 \u0432 \u0441\u0438\u043b\u0443 \u043f\u0440\u0438\u0432\u044b\u0447\u043a\u0438 \u2014 \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u043c \u043c\u0435\u0442\u043a\u0438 (<strong>breaks =<\/strong>) \u043f\u043e <em>\u0446\u0435\u043b\u044b\u043c<\/em> \u0447\u0438\u0441\u043b\u0430\u043c \u2014 \u0430 \u0438\u043c\u0435\u043d\u043d\u043e 16, 32, 48, 64\u041c\u0431:<\/p>\n<p>  <\/p>\n<pre><code>ggplot(data=df, aes(x = address, y = index, group=thread, colour=thread, shape=thread)) + geom_point(size=2) + scale_x_continuous(     labels = function(n){ifelse(n == min_address,  base::sprintf(&quot;base&quot;), base::sprintf(&quot;+ %d MiB&quot;, as.integer((n - min_address)\/1024\/1024)))},     breaks=c(min_address, min_address + 16*1024*1024, min_address +  32*1024*1024,  min_address + 48*1024*1024,  min_address + 64*1024*1024) )<\/code><\/pre>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/vladimirdolzhenko.github.io\/hashCodeLegend\/images\/rmd\/hashCodes3.png\"\/><\/p>\n<p>  <\/p>\n<p>\u0414\u0430\u043d\u043d\u044b\u0445 \u043c\u043d\u043e\u0433\u043e \u2014 \u0445\u043e\u0442\u0438\u043c \u0432\u0437\u0433\u043b\u044f\u043d\u0443\u0442\u044c \u043d\u0430 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0435\u0451 \u0447\u0430\u0441\u0442\u044c<\/p>\n<p>  <\/p>\n<ul>\n<li>\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u043c \u043d\u0430\u0431\u043e\u0440 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0443 <strong>nrows<\/strong> \u043f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 <strong>read.csv(&#8230;)<\/strong><\/li>\n<li>\n<p>\u0434\u043e\u0431\u0430\u0432\u0438\u043c \u043c\u0435\u0442\u043a\u0438 \u0432 \u043d\u0443\u0436\u043d\u044b\u0445 \u043c\u0435\u0441\u0442\u0430\u0445 \u043d\u0430 \u043e\u0441\u0438 <strong>Y<\/strong>: <strong>+ scale_y_continuous(breaks = c(&#8230;))<\/strong><\/p>\n<p>  <\/p>\n<p>df = read.csv(file = &quot;csv\/hashCodesNoTLAB.csv&quot;, nrows = 36, header = TRUE)<\/p>\n<p>  <\/p>\n<p>min_address = min(df$address)<\/p>\n<p>  <\/p>\n<p>ggplot(data=df, aes(x = address, y = index, group=thread, colour=thread, shape=thread)) +<br \/>  geom_point(size=4) +<br \/>  scale_x_continuous(<br \/>  labels = function(n){ifelse(n == min_address, base::sprintf(&quot;base&quot;), base::sprintf(&quot;+ %d&quot;, as.integer((n \u2014 min_address))))},<br \/>  breaks=c(min_address, min_address + 16<em>10, min_address + 2<\/em>16<em>10, min_address + 3<\/em>16<em>10, min_address + 4<\/em>16<em>10, min_address + 5<\/em>16*10)<br \/>  ) +<br \/>  scale_y_continuous( breaks = c(1,2,3,4,5,6,7,8,9,10) ) +<\/p>\n<p>  <\/li>\n<\/ul>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/vladimirdolzhenko.github.io\/hashCodeLegend\/images\/rmd\/hashCodesNoTLAB0.png\"\/><\/p>\n<p>  <\/p>\n<h4 id=\"gistogramma\">\u0413\u0438\u0441\u0442\u043e\u0433\u0440\u0430\u043c\u043c\u0430<\/h4>\n<p>  <\/p>\n<p>\u0418 \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0436\u0435 \u2014 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/\u0413\u0438\u0441\u0442\u043e\u0433\u0440\u0430\u043c\u043c\u0430\">\u0433\u0438\u0441\u0442\u043e\u0433\u0440\u0430\u043c\u043c\u0430<\/a>, \u0447\u0430\u0441\u0442\u043e\u0442\u043d\u043e\u0435 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435. \u041e\u0447\u0435\u043d\u044c \u0433\u0440\u0443\u0431\u043e \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043e\u043f\u0438\u0441\u0430\u0442\u044c \u043a\u0430\u043a \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043f\u043e\u043f\u0430\u0434\u0430\u044e\u0449\u0438\u0445 \u0432 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439. \u041d-\u0440, \u0434\u043b\u044f \u0440\u044f\u0434\u0430 [1, 2, 3, 1, 1] \u2014 \u0433\u0438\u0441\u0442\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u043a\u0430\u043a [3, 1, 1] \u2014 \u0442.\u043a \u044d\u043b\u0435\u043c\u0435\u043d\u0442 <em>1<\/em> \u0432\u0441\u0442\u0440\u0435\u0442\u0438\u043b\u0441\u044f 3 \u0440\u0430\u0437\u0430, \u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b <em>2<\/em> \u0438 <em>3<\/em> \u043f\u043e \u043e\u0434\u043d\u043e\u043c\u0443 \u0440\u0430\u0437\u0443.<\/p>\n<p>  <\/p>\n<pre><code>addressHashCode = read.csv(file = &quot;csv\/addressHashCode.csv&quot;) defaultHashCode = read.csv(file = &quot;csv\/defaultHashCode.csv&quot;)  ggplot() + geom_histogram(data=addressHashCode, aes(x=hashCode, fill=&quot;address&quot;), alpha=0.7, bins = 500) + geom_histogram(data=defaultHashCode, aes(x=hashCode, fill=&quot;MXSRng&quot;), alpha=0.7, bins = 500) +<\/code><\/pre>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/vladimirdolzhenko.github.io\/hashCodeLegend\/images\/rmd\/addressHashCode1.png\"\/><\/p>\n<p>  <\/p>\n<p>\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0443\u0436\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0435 \u043e\u043f\u0446\u0438\u0438 \u0434\u043e \u043f\u0440\u0438\u0434\u0430\u043d\u0438\u044f \u043d\u0443\u0436\u043d\u043e\u0433\u043e \u0432\u0438\u0434\u0430:<\/p>\n<p>  <\/p>\n<pre><code>ggplot() + geom_histogram(data=addressHashCode, aes(x=hashCode, fill=&quot;address&quot;), alpha=0.7, bins = 500) + geom_histogram(data=defaultHashCode, aes(x=hashCode, fill=&quot;MXSRng&quot;), alpha=0.7, bins = 500) + scale_fill_manual(name=&quot;\u0442\u0438\u043f hashCode:&quot;, labels=c(&quot;address&quot;=&quot;\u0430\u0434\u0440\u0435\u0441&quot;, &quot;MXSRng&quot;=&quot;MXS-\u0433\u043f\u0441\u0447&quot;), values=c(&quot;address&quot; =&quot;#003dae&quot;, &quot;MXSRng&quot; = &quot;#ae003d&quot;)) + labs(title =      sprintf(&quot;\u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043a\u043e\u043b\u043b\u0438\u0437\u0438\u0439 \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443: %s k, \u043f\u043e MXS-\u0433\u043f\u0441\u0447: %s k&quot;,              round( sum(duplicated(addressHashCode)) \/ 1000, 1),              round( sum(duplicated(defaultHashCode)) \/ 1000, 1)),    x = &quot;hashCode&quot;) + theme_classic() + theme(axis.title.y=element_blank()) + scale_y_continuous(labels = function(n){format(n, big.mark = &quot;_&quot;, scientific = FALSE)}, expand = c(0, 0)) + scale_x_continuous(labels = function(n){format(n, big.mark = &quot;_&quot;, scientific = FALSE)}, expand = c(0, 0)) + theme(axis.title = element_text(size = 16, face = &quot;bold&quot;)) + theme(axis.text.y = element_text(size = 14, face = &quot;bold&quot;)) + theme(axis.text.x = element_text(size = 14, face = &quot;bold&quot;)) + theme(axis.title = element_text(size = 16, face = &quot;bold&quot;)) + theme(axis.title.x=element_text(margin=margin(t=20))) + theme(legend.text = element_text(size = 14, face = &quot;bold&quot;)) + theme(title = element_text(size = 16, face = &quot;bold&quot;)) +<\/code><\/pre>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/vladimirdolzhenko.github.io\/hashCodeLegend\/images\/rmd\/addressHashCode2.png\"\/><\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/twitter.com\/shipilev\/status\/857311629847015425\">\u0410 \u043f\u043e\u043d\u0438<\/a>? \u0417\u0430\u043f\u0440\u043e\u0441\u0442\u043e!<\/p>\n<p>  <\/p>\n<ul>\n<li>\u043d\u0443\u0436\u0435\u043d \u043f\u0430\u043a\u0435\u0442 <strong>png<\/strong>: <code>install.packages('png')<\/code><\/li>\n<li><strong>img &lt;- readPNG(&quot;images\/pony.png&quot;)<\/strong><\/li>\n<li><em>\u043e\u0442\u0440\u0435\u043d\u0434\u0435\u0440\u0438\u043c<\/em> \u0432\u043e \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0439 \u0431\u0443\u0444\u0435\u0440 <strong>g &lt;- rasterGrob(img)<\/strong><\/li>\n<li>\u0434\u043e\u0431\u0430\u0432\u0438\u043c \u043f\u043e\u043d\u0438 \u043a\u0430\u043a \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044e <strong>+ annotation_custom()<\/strong>:<\/li>\n<\/ul>\n<p>  <\/p>\n<pre><code># install.packages('png')  img &lt;- readPNG(&quot;images\/pony.png&quot;) g &lt;- rasterGrob(img, interpolate=TRUE, x = 0.1, y = 0.9, width = 0.2, height = 0.2)    ggplot() +   annotation_custom(g, xmin=-Inf, ymin = -Inf, xmax=Inf, ymax=Inf) +   geom_histogram(data=addressHashCode, aes(x=hashCode, fill=&quot;address&quot;), alpha=0.7, bins = 500) +   geom_histogram(data=defaultHashCode, aes(x=hashCode, fill=&quot;MXSRng&quot;), alpha=0.7, bins = 500) <\/code><\/pre>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/vladimirdolzhenko.github.io\/hashCodeLegend\/images\/rmd\/addressHashCode3.png\"\/><\/p>\n<p>  <\/p>\n<p>\u041d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0445 \u0441\u0441\u044b\u043b\u043e\u043a: <a href=\"https:\/\/github.com\/jennybc\/ggplot2-tutorial\">ggplot2 tutorial<\/a> \u0438 \u0435\u0449\u0451 \u043e\u0434\u0438\u043d \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0439 \u0431\u043b\u043e\u0433 <a href=\"http:\/\/stat545.com\/topics.html\">Data wrangling, exploration, and analysis with R<\/a><\/p>\n<p>  <\/p>\n<h3 id=\"rmarkdown\">RMarkdown<\/h3>\n<p>  <\/p>\n<p>\u041d\u0435 \u043d\u0430\u0434\u043e \u0431\u044b\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0438\u043c \u043a\u0430\u043f\u0438\u0442\u0430\u043d\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c, \u0447\u0442\u043e <strong><a href=\"http:\/\/rmarkdown.rstudio.com\/\">RMarkdown<\/a><\/strong> \u044d\u0442\u043e <strong>R<\/strong> + <strong>Markdown<\/strong>.<\/p>\n<p>  <\/p>\n<p>\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043c\u043e\u0434\u0443\u043b\u044c \u0434\u043b\u044f <em>R<\/em> :<\/p>\n<p>  <\/p>\n<pre><code>install.packages(&quot;rmarkdown&quot;)<\/code><\/pre>\n<p>  <\/p>\n<p>\u0418 \u0441\u043e \u0441\u043b\u043e\u0432\u0430\u043c\u0438 <strong>HTML \u0437\u043d\u0430\u044e, LaTeX \u043b\u044e\u0431\u043b\u044e<\/strong> \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u043c <strong>RMarkdown<\/strong>:<\/p>\n<p>  <\/p>\n<blockquote><p>rmarkdown::render(&quot;path_to_file.Rmd&quot;, encoding = &quot;UTF-8&quot;)<\/p><\/blockquote>\n<p>  <\/p>\n<ul>\n<li>\u0432\u043e\u0437\u043c\u043e\u0436\u0435\u043d \u0432\u044b\u0432\u043e\u0434 \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u044b:<br \/> \n<ul>\n<li><strong><a href=\"http:\/\/rmarkdown.rstudio.com\/html_document_format.html\">html<\/a><\/strong><\/li>\n<li><strong><a href=\"http:\/\/rmarkdown.rstudio.com\/pdf_document_format.html\">pdf<\/a><\/strong><\/li>\n<li>\u0438 \u0434\u0430\u0436\u0435 \u0432 <strong><a href=\"http:\/\/rmarkdown.rstudio.com\/word_document_format.html\">doc<\/a><\/strong><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u0412 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0435 \u0434\u043e\u0441\u0430\u0442\u043e\u0447\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<p>  <\/p>\n<blockquote><p>output: pdf_document<\/p><\/blockquote>\n<p>  <\/p>\n<ul>\n<li>\u0441\u043b\u0430\u0439\u0434\u044b\/\u043f\u0440\u0435\u0437\u0435\u043d\u0442\u0430\u0446\u0438\u044f:<br \/> \n<ul>\n<li><strong><a href=\"http:\/\/rmarkdown.rstudio.com\/ioslides_presentation_format.html\">HTML5<\/a><\/strong> \u0438 \u0443\u043f\u0430\u0440\u044b\u0432\u0430\u0442\u044c\u0441\u044f <strong>javascript<\/strong> \/ <strong>css<\/strong> \/ <strong>html5<\/strong>, \u0445\u043e\u0442\u044f \u0434\u0430\u043b\u0435\u043a\u043e \u043d\u0435 \u0432\u0441\u0435 \u043e\u0434\u043e\u0431\u0440\u044f\u044e\u0442 <em>html<\/em>-\u043f\u0440\u0435\u0437\u0435\u043d\u0442\u0430\u0446\u0438\u0438<\/li>\n<li><strong><a href=\"http:\/\/rmarkdown.rstudio.com\/beamer_presentation_format.html\">PDF<\/a><\/strong> \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432 \u0442.\u0447. \u043c\u0430\u043a\u0440\u043e\u0441\u044b <strong>LaTeX<\/strong><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0432 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0435 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c <strong>output<\/strong>:<\/p>\n<p>  <\/p>\n<blockquote><p>output: ioslides_presentation<\/p><\/blockquote>\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:\/\/habrahabr.ru\/post\/327912\/\"> https:\/\/habrahabr.ru\/post\/327912\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<h1 id=\"rmarkdown-r-i-ggplot\">RMarkdown, R \u0438 ggplot<\/h1>\n<p>  <\/p>\n<p>\u0414\u0430\u043d\u043d\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f <strong>\u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f<\/strong> \u043d\u0438 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0435\u0439, <strong>\u043d\u0438 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442<\/strong> \u0447\u0442\u043e-\u0442\u043e \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0438\u0430\u043b\u044c\u043d\u043e \u043d\u043e\u0432\u043e\u0435, \u0435\u0451 \u0441\u0442\u043e\u0438\u0442 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u043a\u0430\u043a \u043e\u0431\u0437\u043e\u0440\u043d\u0443\u044e \u0438\u043b\u0438 \u043a\u0430\u043a <em>\u0448\u043f\u0430\u0440\u0433\u0430\u043b\u043a\u0443<\/em>.<\/p>\n<p>  <\/p>\n<h2 id=\"preambula\">\u041f\u0440\u0435\u0430\u043c\u0431\u0443\u043b\u0430<\/h2>\n<p>  <\/p>\n<p>\u041a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044f \u044d\u0442\u043e \u043f\u0440\u0435\u0436\u0434\u0435 \u0432\u0441\u0435\u0433\u043e \u0434\u043e\u043a\u043b\u0430\u0434\u044b, \u0438 \u0434\u0430\u043b\u0435\u043a\u043e \u043d\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u043c\u0435\u0441\u0442\u043e \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u0442\u043e, \u043a\u0430\u043a \u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u044b \u0441\u043b\u0430\u0439\u0434\u044b \u0434\u043e\u043a\u043b\u0430\u0434\u0430.<\/p>\n<p>  <\/p>\n<p><em>\u0411\u0435\u0437\u0443\u0441\u043b\u043e\u0432\u043d\u043e<\/em>, \u0435\u0441\u0442\u044c <a href=\"https:\/\/twitter.com\/shipilev\">\u0434\u043e\u043a\u043b\u0430\u0434\u0447\u0438\u043a\u0438<\/a>, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0433\u0443\u0442 \u043d\u0435 \u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0438 \u043d\u0430 \u0447\u0442\u043e, \u043f\u0440\u043e\u0432\u0435\u0441\u0442\u0438 \u0434\u043e\u043a\u043b\u0430\u0434 \u0434\u0430\u0436\u0435 \u0431\u0435\u0437 \u0435\u0434\u0438\u043d\u043e\u0433\u043e \u0441\u043b\u0430\u0439\u0434\u0430, \u043d\u043e \u0432\u0441\u0451 \u0436\u0435 \u043e\u043d\u0438 \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u0445\u043e\u0440\u043e\u0448\u043e \u0434\u043e\u043f\u043e\u043b\u043d\u044f\u044e\u0442 \u043f\u043e\u0432\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0435. <a href=\"https:\/\/twitter.com\/jbaruch\">\u041e\u0434\u043d\u0438\u043c<\/a> \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043d\u0430\u043a\u0438\u0434\u0430\u0442\u044c \u043c\u0435\u043c\u0430\u0441\u0438\u043a\u043e\u0432 \u0432 \u0434\u043e\u043a\u043b\u0430\u0434 \u0438 \u0434\u0435\u043b\u043e \u0433\u043e\u0442\u043e\u0432\u043e, <a href=\"https:\/\/twitter.com\/iwan0www\">\u0434\u0440\u0443\u0433\u0438\u043c<\/a> \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0430\u0434\u043e \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043a\u043e\u0434, \u043f\u0440\u0438\u0447\u0451\u043c \u043d\u0430 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0435 (\u043a\u0442\u043e \u043d\u0435 \u0432 \u043a\u0443\u0440\u0441\u0435 \u0435\u0449\u0451 \u2014 <a href=\"https:\/\/jpoint.ru\/\">JPoint<\/a> \u2014 \u044d\u0442\u043e \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044f \u043f\u043e java), \u0438 \u0435\u0441\u0442\u044c \u0435\u0449\u0451 \u0442\u0435, \u043a\u043e\u043c\u0443 \u043d\u0430\u0434\u043e \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0433\u0440\u0430\u0444\u0438\u043a\u0438. \u0412\u043f\u0440\u043e\u0447\u0435\u043c \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442\u0441\u044f \u0438 \u0438\u0445 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u044f.<\/p>\n<p>  <\/p>\n<p>\u041f\u043e\u0436\u0430\u043b\u0443\u0439 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0435 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0441\u043b\u0430\u0439\u0434\u043e\u0432 \u044d\u0442\u043e:<\/p>\n<p>  <\/p>\n<ul>\n<li>PowerPoint, \u0438 \u0432\u0430\u0440\u0438\u0430\u0446\u0438\u0438 \u0432 \u043b\u0438\u0446\u0435 LibreOffice Impress, Apple KeyNote<\/li>\n<li>\u043e\u0431\u043b\u0430\u0447\u043d\u044b\u0435 \u0432\u0430\u0440\u0438\u0430\u0446\u0438\u0438 \u0441 \u0442\u0435\u043c \u0436\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u043e\u043c \u2014 <a href=\"https:\/\/www.google.com\/slides\">Google Slides<\/a><\/li>\n<li><a href=\"https:\/\/www.latex-project.org\/\">LaTeX<\/a><\/li>\n<li>\u0438 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u043e\u0432\u044b\u0439 (\u0434\u043b\u044f \u043c\u0435\u043d\u044f) <a href=\"http:\/\/rmarkdown.rstudio.com\/\">RMarkdown<\/a><\/li>\n<\/ul>\n<p>  <\/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-285867","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/285867","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=285867"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/285867\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=285867"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=285867"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=285867"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}