<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://wiki.soulruins.ru/lib/exe/css.php?s=feed" type="text/css"?>
<rss version="2.0">
    <channel xmlns:g="http://base.google.com/ns/1.0">
        <title>Philip Wiki - docs:blog:2020:10</title>
        <description>Персональный wiki-сайт</description>
        <link>https://wiki.soulruins.ru/</link>
        <lastBuildDate>Fri, 17 Apr 2026 19:44:18 +0000</lastBuildDate>
        <generator>FeedCreator 1.8</generator>
        <image>
            <url>https://wiki.soulruins.ru/_media/wiki/dokuwiki.svg</url>
            <title>Philip Wiki</title>
            <link>https://wiki.soulruins.ru/</link>
        </image>
        <item>
            <title>Генерируем график (в PoSh как пример)</title>
            <link>https://wiki.soulruins.ru/docs/blog/2020/10/generate_chart?rev=1609795116&amp;do=diff</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;generiruem_grafik_v_posh_kak_primer&quot;&gt;Генерируем график (в PoSh как пример)&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Тут появилась задача генерировать график. Решить её было желательно оперативно и малой кровью. Беглый поиск готовых модулей для PowerShell (например для работы с google charts), внезапно ничего толкового не дал. «Встроенные» варианты из .NET с &lt;code&gt;System.Windows.Forms.DataVisualization&lt;/code&gt; в PowerShell Core банально потеряли совместимость (не стал глубоко рыть и решать проблему). Поэтому нашел во всех смыслах универсальное решение – &lt;a href=&quot;http://gnuplot.sourceforge.net&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://gnuplot.sourceforge.net&quot; rel=&quot;ugc nofollow noopener&quot;&gt;gnuplot&lt;/a&gt;.
&lt;/p&gt;
&lt;div id=&quot;plugin__gallery_f5d7&quot; class=&quot;plugin-gallery align-full&quot;&gt;&lt;div class=&quot;gallery-page&quot; id=&quot;gallery__f5d7_0&quot; style=&quot;grid-template-columns: repeat(auto-fill, minmax(800px, 1fr))&quot;&gt;&lt;figure class=&quot;gallery-image&quot;&gt;&lt;a href=&quot;https://wiki.soulruins.ru/_detail/docs/blog/2020/10/pasted/20201011-135730.png?id=docs%3Ablog%3A2020%3A10%3Agenerate_chart&quot; title=&quot;20201011-135730&quot; data-caption=&quot;&amp;lt;b&amp;gt;20201011-135730&amp;lt;/b&amp;gt;&quot; class=&quot;lightbox JSnocheck&quot; rel=&quot;lightbox[gal-322eb76e6970e66289b6a049fa36]&quot; data-url=&quot;https://wiki.soulruins.ru/_media/docs/blog/2020/10/pasted/20201011-135730.png&quot;&gt;&lt;img width=&quot;800&quot; height=&quot;300&quot; src=&quot;https://wiki.soulruins.ru/_media/docs/blog/2020/10/pasted/20201011-135730.png?w=800&amp;amp;h=300&amp;amp;tok=264981&quot; alt=&quot;20201011-135730.png&quot; loading=&quot;lazy&quot; /&gt;&lt;/a&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;strong&gt;gnuplot&lt;/strong&gt; решил все мои задачи – генерировал необходимого вида график и сохранял его в формате png для дальнейшего использования. Написан он на Qt, так что вопросов по мультиплатформенности нет. Поставил его на Windows и следующим способом подключил к скрипту PowerShell:
&lt;/p&gt;
&lt;pre class=&quot;code powershell&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;Set-Alias&lt;/span&gt; GnuPlot &lt;span class=&quot;st0&quot;&gt;&#039;C:\Program Files\gnuplot\bin\gnuplot.exe&#039;&lt;/span&gt; &lt;span class=&quot;kw5&quot;&gt;-Scope&lt;/span&gt; Script&lt;/pre&gt;

&lt;p&gt;
Утилита gnuplot невероятно гибкая, лично для себя выбрал вариант с описанием всего, что нужно, во внешнем конфигурационном файле и подключением (вызовом) его.
&lt;/p&gt;
&lt;pre class=&quot;code powershell&quot;&gt;GnuPlot &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;c &lt;span class=&quot;st0&quot;&gt;&amp;quot;c:\temp\data\covid.cfg&amp;quot;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
Пример файла конфигурации:
&lt;/p&gt;
&lt;dl class=&quot;file&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wiki.soulruins.ru/_export/code/docs/blog/2020/10/generate_chart?codeblock=2&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_cfg&quot;&gt;covid.cfg&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code file ini&quot;&gt;set termoption enhanced
set terminal png font &lt;span class=&quot;st0&quot;&gt;&#039;Cascadia Mono&#039;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt; size &lt;span class=&quot;nu0&quot;&gt;800&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;300&lt;/span&gt;
set output &lt;span class=&quot;st0&quot;&gt;&#039;c:\temp\data\covid.png&#039;&lt;/span&gt;
set xdata time
set timefmt &lt;span class=&quot;st0&quot;&gt;&amp;quot;%d.%m.%Y&amp;quot;&lt;/span&gt;
set format x &lt;span class=&quot;st0&quot;&gt;&amp;quot;%d-%m&amp;quot;&lt;/span&gt;
set grid
set encoding utf8
set title &lt;span class=&quot;st0&quot;&gt;&amp;quot;Статистика новых заражений&amp;quot;&lt;/span&gt;
set xlabel &lt;span class=&quot;st0&quot;&gt;&#039;Дата&#039;&lt;/span&gt;
set ylabel &lt;span class=&quot;st0&quot;&gt;&#039;Случаев&#039;&lt;/span&gt;
plot &lt;span class=&quot;st0&quot;&gt;&#039;c:\temp\data\covid.dat&#039;&lt;/span&gt; using &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;:&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt; with lines lw &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt; notitle
unset output&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Пример файла с данными для графика:
&lt;/p&gt;
&lt;dl class=&quot;file&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wiki.soulruins.ru/_export/code/docs/blog/2020/10/generate_chart?codeblock=3&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_dat&quot;&gt;covid.dat&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code file plain&quot;&gt;...
06.10.2020 11615
07.10.2020 11115
08.10.2020 11493
...&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0413\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c \u0433\u0440\u0430\u0444\u0438\u043a (\u0432 PoSh \u043a\u0430\u043a \u043f\u0440\u0438\u043c\u0435\u0440)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;generiruem_grafik_v_posh_kak_primer&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-2472&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;obnovlenie_ot_23102020&quot;&gt;Обновление от 23.10.2020&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
В котором я решил немного изменить внешний вид графика:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Добавить разделители визуально упрощающие восприятие (по шкале Y)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Изменить разделитель при отображении даты (по шкале X)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Заменить линию на график с заливкой&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Другие небольшие визуальные изменения&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div id=&quot;plugin__gallery_51c4&quot; class=&quot;plugin-gallery align-full&quot;&gt;&lt;div class=&quot;gallery-page&quot; id=&quot;gallery__51c4_0&quot; style=&quot;grid-template-columns: repeat(auto-fill, minmax(800px, 1fr))&quot;&gt;&lt;figure class=&quot;gallery-image&quot;&gt;&lt;a href=&quot;https://wiki.soulruins.ru/_detail/docs/blog/2020/10/pasted/20201023-202118.png?id=docs%3Ablog%3A2020%3A10%3Agenerate_chart&quot; title=&quot;20201023-202118&quot; data-caption=&quot;&amp;lt;b&amp;gt;20201023-202118&amp;lt;/b&amp;gt;&quot; class=&quot;lightbox JSnocheck&quot; rel=&quot;lightbox[gal-322eb76e6970e66289b6a049fa36]&quot; data-url=&quot;https://wiki.soulruins.ru/_media/docs/blog/2020/10/pasted/20201023-202118.png&quot;&gt;&lt;img width=&quot;800&quot; height=&quot;300&quot; src=&quot;https://wiki.soulruins.ru/_media/docs/blog/2020/10/pasted/20201023-202118.png?w=800&amp;amp;h=300&amp;amp;tok=b01c9c&quot; alt=&quot;20201023-202118.png&quot; loading=&quot;lazy&quot; /&gt;&lt;/a&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;
Обновленный файл конфигурации:
&lt;/p&gt;
&lt;dl class=&quot;file&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wiki.soulruins.ru/_export/code/docs/blog/2020/10/generate_chart?codeblock=4&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_cfg&quot;&gt;covid.cfg&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code file ini&quot;&gt;set decimal locale
set termoption enhanced
set terminal png truecolor font &lt;span class=&quot;st0&quot;&gt;&#039;Consolas&#039;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt; size &lt;span class=&quot;nu0&quot;&gt;800&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;300&lt;/span&gt;
set output &lt;span class=&quot;st0&quot;&gt;&#039;c:\temp\data\covid.png&#039;&lt;/span&gt;
set xdata time
set timefmt &lt;span class=&quot;st0&quot;&gt;&amp;quot;%d.%m.%Y&amp;quot;&lt;/span&gt;
set format x &lt;span class=&quot;st0&quot;&gt;&amp;quot;%d.%m&amp;quot;&lt;/span&gt;
set format y &lt;span class=&quot;st0&quot;&gt;&amp;quot;%&#039;g&amp;quot;&lt;/span&gt;
set grid xtics mxtics ytics mytics
set encoding utf8
set title &lt;span class=&quot;st0&quot;&gt;&amp;quot;Статистика новых заражений&amp;quot;&lt;/span&gt;
set xlabel &lt;span class=&quot;st0&quot;&gt;&#039;Дата&#039;&lt;/span&gt;
set ylabel &lt;span class=&quot;st0&quot;&gt;&#039;Случаев&#039;&lt;/span&gt;
set style fill transparent solid &lt;span class=&quot;nu0&quot;&gt;0.7&lt;/span&gt;
plot &lt;span class=&quot;st0&quot;&gt;&#039;c:\temp\data\covid.dat&#039;&lt;/span&gt; using &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;:&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt; w filledcurves x1 notitle
unset output&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;


&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://wiki.soulruins.ru/tags/powershell?do=showtag&amp;amp;tag=powershell&quot; class=&quot;wikilink1&quot; title=&quot;tags:powershell&quot; rel=&quot;tag&quot;&gt;powershell&lt;/a&gt;,
	&lt;a href=&quot;https://wiki.soulruins.ru/tags/gnuplot?do=showtag&amp;amp;tag=gnuplot&quot; class=&quot;wikilink1&quot; title=&quot;tags:gnuplot&quot; rel=&quot;tag&quot;&gt;gnuplot&lt;/a&gt;,
	&lt;a href=&quot;https://wiki.soulruins.ru/tags/chart?do=showtag&amp;amp;tag=chart&quot; class=&quot;wikilink1&quot; title=&quot;tags:chart&quot; rel=&quot;tag&quot;&gt;chart&lt;/a&gt;,
	&lt;a href=&quot;https://wiki.soulruins.ru/tags/script?do=showtag&amp;amp;tag=script&quot; class=&quot;wikilink1&quot; title=&quot;tags:script&quot; rel=&quot;tag&quot;&gt;script&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u043e\u0442 23.10.2020&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;obnovlenie_ot_23102020&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:4,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;2473-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 04 Jan 2021 21:18:36 +0000</pubDate>
        </item>
    </channel>
</rss>
