График в Gnuplot с условиями: conditional data plotting in Gnuplot

Как известно, одна картинка стоит тысячи слов. Вместо длинного и занудного изложения лучше привести график и его прокомментировать. Сложность в том, что иногда в график нужно запихнуть много данных, и дизайн графика превращается в самостоятельную задачу. Одна из таких задач - построение точек на графике в зависимости от условий (conditional data plotting).


Проще говоря, при построении графика нужно, например, игнорировать точки в данных при условии, что они меньше какого-то порога. Или нужно сделать так, чтобы размер точки на графике зависел от самих данных. Это несколько экзотический случай, но иногда нужный.


Условное построение графиков и зачем это надо
Один из примеров приведён на сайте Гнуплота: в данном случае график иллюстрирует населённость городов на карте мира.



То есть точка на графике становится больше или меньше в зависимости от данных в файле. Достигается это так:
plot 'dataFile.dat' u 1:2:3 w points lt 1 pt 10 ps variable

Весь трюк в том, чтобы размер точки (ps) сделать изменяемым (variable), причём размер теперь будет задаваться (в этом примере) колонкой номер 3 в файле данных.

Это одно из проявлений гибкости gnuplot, которую можно использовать в своих корыстных целях.

Условия при построении графиков
Gnuplot куда более гибкий, чем кажется на первый взгляд. Помимо возможности задать переменные размеры точек, можно заставить Gnuplot строить графики с условием. Вот пример:
($1 <=3 ? $2 : 1/0)
Это означает:
если текущее число в первом столбце ($ 1) меньше 3, следует строить данные из второй колонки ($ 2), в противном случае ничего не строить вообще".  
Так можно строить сложные графики, особенно когда данных много и график нужно строить с разной подробностью.

Например, вот такая конструкция:

plot "./data.txt" using  4:($7>0.7  ? ($5*10**3) : 1/0):(1.2*$7) title "actuators DM" with points pt 6 ps variable lc rgb "cyan" 
означает, что если данные из седьмой колонки ($7) больше, чем 0.7, то строить данные из пятой колонки ($5) умноженные на 1000 (собственно, $5*10**3). Дальше идёт трюк с переменным размером точки: размер точки на графике будет меняться (ps variable) в зависимости от данных в седьмой колонке, помноженные на коэффициент 1.2, то есть   (1.2*$7)


Реальный график с переменным размером точки
Всё это выглядит, конечно, очень круто, но пока не понятно, зачем всё это нужно. Тем не менее, это было продиктовано необходимостью выразить на одном графике многое. А именно:
Есть оптимизационный алгоритм, и он решает ограниченную задачу квадратичной оптимизации (Constrained Convex Quadratic Programming). Хочется посмотреть, как растёт время вычисления в зависимости от того, сколько ограничений нарушено. Если ограничений не нарушено, всё решается быстро, но когда ограничения активны, время растёт - и самое неприятное то, что у этого времени вычисления появляется некий разброс. Распределение вероятности наперёд неизвестно.
Кроме того, хочется на одном графике сравнить несколько наборов, для каждого набора - зависимость времени вычисления от нарушенных ограничений. При этом у времени есть некий разброс, и его хочется показать.

Есть вариант построить распределение вероятности для каждого случая, и это будет выглядеть вот так:

но тогда графиков получится очень много и их задолбаешься описывать в статье.

Долгие муки творчества породили следующий инфернальный график:

Теперь о том, что всё это значит и зачем это выдавать на один график.

Как говорилось выше, здесь показан разброс времени, которое занимает расчёт некой оптимизационной задачи с ограничениями для нескольких наборов сразу (каждый набор показан своим цветом с разной формой точек).
Грубо говоря, если вы посмотрите на распределение вероятности (probability density) сверху - вы как раз что-то подобное и увидите. Чем более вероятнее событие, тем крупнее для него точка. И так на одном графике можно увидеть, как растёт не только время вычисления, но и его разброс.

Так что если помедитировать над графиком после всех этих объяснений, то становится в общем понятно, что автор хотел сказать и до некоторой степени эпатировать публику. По крайней мере это стало понятно аудитории, на которой это было бесчеловечно испытано.

Вот gnuplot код для того ``инфернального'' графика:

1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#! /usr/bin/gnuplot -persist
 set terminal postscript "NimbusSanL-Regu" eps color enhanced fontfile "/usr/share/texmf-texlive/fonts/type1/urw/helvetic/uhvr8a.pfb"
 set key top left
 set ytics 0.5 
 set xtics 5 
 set mxtics 5
 set mytics 5

 set output "./plot.ps"

 set yrange [0:7]
 set xrange [-0.5:40]

 set grid xtics ytics  
 set bmargin 4
 set key top right 

 set xlabel "Active constraints, percent \% of all constraints" font "NimbusSanL-Regu,18"
 set ylabel "Distribution of the computation time, milliseconds" font "NimbusSanL-Regu,18"

 statthresh=0.6

 plot "./stat_forplant25.data" using  4:($7>statthresh  ? ($5*10**3) : 1/0):(1.0*$7) title "5x5 actuators DM" with points pt 6 ps variable lc rgb "cyan",
"./stat_forplant36.data" using  4:($7>statthresh  ? ($5*10**3) : 1/0):(1.3*$7) title "6x6 actuators DM" with points  pt 9 ps variable lc rgb "magenta",
"./stat_forplant49.data" using  4:($7>statthresh  ? ($5*10**3) : 1/0):(1.3*$7) title "7x7 actuators DM" with points  pt 11 ps variable lc rgb "green",
"./stat_forplant64.data" using  4:($7>statthresh  ? ($5*10**3) : 1/0):(1.3*$7) title "8x8 actuators DM" with points  pt 7 ps variable lc rgb "red",
"./stat_forplant81.data" using  4:($7>statthresh  ? ($5*10**3) : 1/0):(1.3*$7) title "9x9 actuators DM" with points  pt 15 ps variable lc rgb "blue",
"./stat_forplant100.data" using  4:($7>statthresh  ? ($5*10**3) : 1/0):(1.3*$7) title "10x10 actuators DM" with points  pt 13 ps variable lc rgb "orange"

Собственно, ничего в нём особо страшного нет, просто дизайн графика и организация для него данных, мягко скажем, нетривиальны.

Самый смак в том, что при построении графика можно задать параметр:
statthresh=0.6
который управляет подробностью выдачи распределения точек:
using  4:($7>statthresh  ? ($5*10**3) : 1/0):(1.0*$7) 
На самом деле, в столбце $7 содержатся данные о вероятности (точнее, о частоте появления) того или иного временного интервала в данных. Чем больше порог, тем подробнее распределение точек на графике можно увидеть.


Альтернативные решения
Если захотеть приключений, то можно вспомнить про такой тип графиков, как candlesticks (ай донт ноу хау ит из ин рашн сорри):


Код для него отсюда:


1
2
3
4
5
6
7
# set terminal pngcairo  transparent enhanced font "arial,10" fontscale 1.0 size 500, 350 
# set output 'candlesticks.5.png'
set boxwidth 0.2 absolute
set title "box-and-whisker plot adding median value as bar" 
set xrange [ 0.00000 : 11.0000 ] noreverse nowriteback
set yrange [ 0.00000 : 10.0000 ] noreverse nowriteback
plot 'candlesticks.dat' using 1:3:2:6:5 with candlesticks lt 3 lw 2 title 'Quartiles',      ''                 using 1:4:4:4:4 with candlesticks lt -1 lw 2 notitle

Насколько мне известно, такие графики используются для биржевых котировок и на торгах ценными бумагами. Вышеозначенную проблему отображения данных можно решить и так, но:
  1. мне не хотелось тащить график из финансового мира в инженерию;
  2. candlesticks скрывают истинное распределение в данных, а этого бы как раз и не хотелось;
  3. проблему загромождения (cluttered?) графика это всё равно не решает.
В общем, этот адский график был рождён муками творчества длительностью в пару дней. Мне он нравится и я его использую - пока альтернативы ему не найдено.

Пища для размышлений
Собственно в том, что с помощью Gnuplot можно отстрелить себе ногу, яйца и голову одним выстрелом, я думаю, сомнений ни у кого уже не осталось :-)

Если серьёзнее, то данные по жизни имеют сложную структуру, и хотелось бы это отобразить наглядно и компактно. Иначе придётся вместо такого графика приводить 7 страниц таблиц, что ясности изложения не способствует.

Рецептура для графика была почерпнута из разных источников и с миру по нитке.

19 комментариев: |высказаться!| RSS-лента дискуссии.|
Владимир Смирнов комментирует...

Побольше бы статей о Gnuplot, а то инструмент мощный, но толковых руководств мало и решение сколько-то сложных задач зачастую превращается в часовые гугления на тему того, как это сделать.

cielchercheur комментирует...

Как построить точки разного размера в зависимости от $4й колонки данных и при этом сделать их цветными по $5й? А если нужно не строго от $4й, а от 1/$4 (или сложнеее выражение)? По отдельности все относительно просто, но не понятно как вместе скомбинировать... Реально вставала такая задача, решение придумать не удалось.

Анонимный комментирует...

О том, что все это можно сделать, написано в официальном руководстве по gnuplot, причем это СОВСЕМ НЕТРУДНО найти, если в него заглянуть.
На официальном сайте в галерее примеров также совсем нетрудно найти то, что нужно:
http://gnuplot.sourceforge.net/demo_4.6/
Если нет совсем уж конкретного примера, то легко можно сконструировать из того, что имеется.
Мне кажется, что здесь обитают люди, имеющие некоторый навык интеллектуальных усилий. Прошу прощения за некоторую резкость. (Мне за 50. Пользуюсь LaTeX'ом (свободно), gnuplot'ом, Asymptote, NumPy, SciPy, Matplotlib, и еще много чем другим.)

virens комментирует...

@Владимир Смирнов комментирует...
Побольше бы статей о Gnuplot, а то инструмент мощный, но толковых руководств мало
Вон там Анонимус ниже посылает нас всех читать 225-страничный мануал по гнуплоту :-)

решение сколько-то сложных задач зачастую превращается в часовые гугления на тему того, как это сделать.
В этих словах много правды: толковых руководств не очень много. Вот это - чуть ли не единственное. И оно с недавних пор только в веб-архиве. Кстати, многие мои посты здесь - перевод статей оттуда.


@cielchercheur комментирует...
Как построить точки разного размера в зависимости от $4й колонки данных и при этом сделать их цветными по $5й?

plot "./file.dat" u 1:2:3 with points palette

Подробности здесь.

А если нужно не строго от $4й, а от 1/$4 (или сложнеее выражение)?
Ноу проблемс: ставим скобки типа 1/($4) и должно работать. Я так логарифм прицепил к размеру точек - всё играет и поёт. Гнуплот 4.4, если что.


@Анонимный комментирует...
О том, что все это можно сделать, написано в официальном руководстве по gnuplot, причем это СОВСЕМ НЕТРУДНО найти
Конечно, Анонимус, всё это написано в официальном руководстве, да. То, что описано конкретно в этом посте, приведено на стр.52 раздела 40 официального мануала. И вот что там написано:

40 Points
with points ps variable
The points style displays a small symbol at each
point. The command set pointsize may be used to
change the default size of the points. 1 or 2 columns
of basic input data are required in 2D plots; 1 or 3
columns are required if 3D plots. See style lines
(p. 52).


Опубликованный пост, как бы это Анонимусу помягче сказать, несколько более подробен и толков.

На официальном сайте в галерее примеров также совсем нетрудно найти то, что нужно

А я привёл оттуда график - это всё, что в этой галерее есть. Но приведённый график от моего отличается весьма разительно, и догадаться, что можно сделать и вот так - ни разу не просто.

Мне кажется, что здесь обитают люди, имеющие некоторый навык интеллектуальных усилий. Прошу прощения за некоторую резкость.

Я тоже прошу прощения за некоторую резкость, но мне кажется, что здесь обитают Анонимусы, не знающие о том, что такое tutorial. Так вот это он и есть.

Скажу более: вот именно из-за такого подхода в стиле "читай доки, нуб!" куча годных опенсорсных программ собирает пыль со sourceforge, а люди платят деньги за разные Origin и прочие Excell. Знаешь почему, Анонимус? Для этих продуктов есть хорошие туториалы. А для опенсорца - нет.

cielchercheur комментирует...

virens, Вы не правильно прочитали вопрос). Я знаю как сделать цветные точки (действительно, строчкой из Вашего комментария). И теперь знаю из Вашего поста, как сделать их разного размера. Вопрос состоял в том, как сделать ОБА варианта (цветные точки разного размера) в одну строку.
И он все еше в силе).

ivlis комментирует...

По моему скромному мнению matplotlib куда гибче и удобнее. Просто программа на питоне, соответственно можно обработать данные каким угодно способом.

Анонимный комментирует...

Напрасно Вы, Михаил, кипятитесь.

Что такое хороший tutorial, я, полагаю, представляю.

Я не писал "прочитать мануал по гнуплоту", а написал "заглянуть". Есть существенная разница. Не надо читать все для того, чтобы понять, как рисовать окружности разного диаметра, и что такая возможность есть.

Чем "разительно" отличается Ваш график от того, что есть в галерее, я не понял:
http://gnuplot.sourceforge.net/demo_4.6/pointsize.html

Про "нуба" написали Вы, я ничего такого не писал и не думал.

Действительно, есть проблема opensourse документации. Но ведь люди тратят свое время, чтобы написать программу, часто бесплатно. А другие бесплатно пользуются. Я для СЕБЯ решил, что за свободу надо платить: либо вы (не в смысле Вы, Михаил, поэтому с маленькой буквы) платите деньгами, либо временем.

Но точно так же есть проблема, по-моему не меньшая, пользователей, которые не хотят прикладывать (почти) никаких усилий, чтобы что-то освоить. "Сделайте мне красиво". Я среагировал на "часовые гугления". По-моему, лучше (гораздо эффективнее) потратить несколько часов, читая документацию, чем это же время жать на клавиши. "Математику учат, решая задачи, а не наблюдая за тем, как это делают другие". Это же относится и ко всему прочему. Хотя, конечно, хороший преподаватель и хороший учебник будут только в плюс.

Ваш пост для многих полезен, несомненно. Но Вы написали, как сделать что-то конкретное, и тут же появился вопрос: а как сделать чуть иначе (скомбинировать)?

С уважением,

Анонимус (пусть будет с большой буквы, я не против)

Дмитрий комментирует...

Вон там Анонимус ниже посылает нас всех читать 225-страничный мануал по гнуплоту :-)

По-вашему это много для подобного инструмента?


Опубликованный пост, как бы это Анонимусу помягче сказать, несколько более подробен и толков.

Вовсе нет. Ваши статьи слишком поверхностны, и я не устану Вам это повторять. Легче и полезнее один раз прочитать документацию.

virens комментирует...

@cielchercheur комментирует...
Вопрос состоял в том, как сделать ОБА варианта (цветные точки разного размера) в одну строку.
И он все еше в силе).


Ну, cielchercheur, я как бы пост написал, в комментариях подсказал - эт самое, там выше Анонимус намекает на интеллектуальные усилия. И я Анонимуса в этом плане как бы поддерживаю :-)

@ivlis комментирует...
По моему скромному мнению matplotlib куда гибче и удобнее.
А чем он круче гнуплота? Можно какую-нибудь киллерфичу в студию? Не флейма ради, а расширения кругозора для.


@Анонимный комментирует...
Напрасно Вы, Михаил, кипятитесь.
Анонимус, меня огорчает подход "идите читайте доки". Тем более, что иногда просто не знаешь, в какую сторону копать и что читать.

Действительно, есть проблема opensourse документации. Но ведь люди тратят свое время, чтобы написать программу

А программа не нужна без документации. Это как nip2 - хорошая идея с паршивой документацией. Но с туториалом, поясняющими марсианский интерфейс программы, оно может и пригодиться.


Я для СЕБЯ решил, что за свободу надо платить: либо вы (не в смысле Вы, Михаил, поэтому с маленькой буквы) платите деньгами, либо временем.

Мне не нужна "свобода", если она не работает. Мне не нужна Octave с багами на самых видных местах. Я пользуюсь MATLAB и Maple, а Debian - пускалка для них.

Но точно так же есть проблема, по-моему не меньшая, пользователей, которые не хотят прикладывать (почти) никаких усилий, чтобы что-то освоить.

Для того, чтобы построить сравнительно простой график, мне в 2012 году не кажется оправданием необходимость перечитывать томик квантовой физики. Это личная позиция. Убунта, например, вообще собрала свою userbase с помощью отличного форума и кучи блогов.

По-моему, лучше (гораздо эффективнее) потратить несколько часов, читая документацию

Ну, удачи. Если знаете, что читать. Просто если Анонимус поинтересуется, почему вдруг Octave и Scilab никому не нужны, а народ выбирает платный MATLAB, то ответ прост: документация и туториалы. С этим у опенсорса плохо, а пока не станет лучше - Линукс будет пускалкой проприетарщины.

Но Вы написали, как сделать что-то конкретное
Там чуть выше поста поясняется, что этот сайт на самом деле не Комсомольская правда и не The Times, а:

В этом блоге публикуются заметки и решения...

Это просто блог. Мой личный блог. Я что-то решил для себя и оставил это здесь. И в общем-то это всё. Я просто пользователь Дебиана, который пытается из этой дурно документированной и часто глючно работающей свалки поделий сделать рабочую систему.

Если бы у опенсорца была документация, как у нормальных платных программ, этого блога бы вообще не было.


@Дмитрий комментирует...
По-вашему это много для подобного инструмента?
Это много для того, чтобы построить сравнительно простой график.

Ваши статьи слишком поверхностны, и я не устану Вам это повторять.

Дмитрий, ну так кто ж заставляет насильно вас их читать?! Я что-то сделал, выложил заметку для себя и поделился. Это мой личный блог. Я сам его читаю очень часто - поиск там не зря висит.

И вообще, Дмитрий, по поводу ``поверхностности’’: раз, два, три, четыре, пять. И только за этот год. На всякий случай, блог не является моей работой. Это просто полезное развлечение.

Так что пишите свои посты, братья и сёстры: хорошие, объёмные, и с невероятной глубиною. А то на словах вы все Львы Толстые, а на деле... :-)

ivlis комментирует...

Киллер-фича в том, что питонячий язык для скриптов. То есть не нужно изучать какой-то там дикий синтаксис по 200 страничному мануалу. Можно хоть простенький расчёт запихнуть в скрипт или выбрку по критерию. Главное не переусердствовать.

Ну и если что-то нереализованно у API опять же matplotlib на том же питоне, то есть можно внутри что-то поправить, если не нравится. А случае гнуплота поправить что-то внутри практически не реально за разумное время.

К недостаткам следует отнести плохие доки и большой порог вхождения.

Анонимный комментирует...

Михаил! Вы передергиваете!

Это тем более, печально, что Вы научный работник и, возможно, преподаватель (как, впрочем, и я). Вы не обижайтесь, я к Вам с уважением отношусь, но в данном случае Вы передергиваете. Это стиль из совсем других сфер.

Я не писал "идите, читайте доки". Имеет место не какая-то абстрактная ("Ну, удачи. Если знаете, что читать."), а вполне конкретная ситуация: Пользователь знает, что есть гнуплот, знает, что есть его сайт, знает, что есть документация. Но он, вместо того, чтобы ВЗГЛЯНУТЬ туда и найти решение задачи (это и проблемой то назвать нельзя), причем несложное, "гуглит часами". Разумеется, вообще говоря, может быть так, что в документации нет простого ответа или его нет вообще, но рассматриваемый случай не такой. Ответ сравнительно просто найти. Это не тот случай, когда "не знаешь, в какую сторону копать и что читать". Вы же сами ответили на тот заданный вопрос, что меня "как бы поддерживаете". Я о том же.

Что "народ выбирает платный MATLAB", и почему, я в курсе. Думаю, что народ будет всегда его выбирать. Это непростой вопрос. Обычный (нормальный) человек обычно стремится к минимизации услилий. Наверное это нормально (естественно, в смысле this is natural). Такова природа человека, это не хорошо и не плохо.

Я и читаю Ваш блог для того, чтобы быть в курсе того, что есть, а не (только и не столько) для того, чтобы узнать конкретные решения конкретных задач. Такие решения я могу и сам найти.

Гнуплот и Matplotlib это разные средства, для одного хорош первый, для другого - второй.

"Для того, чтобы построить сравнительно простой график, мне в 2012 году не кажется оправданием необходимость перечитывать томик квантовой физики". Передергиваете. Томик квантовой физики перечитывать не надо, и даже все руководство по гнуплот не надо. "Сравнительно простой график" строится довольно быстро.

Про то, что представляет собой Ваш блог, я в курсе, я инструкции читаю.

С уважением,

тот же Анонимус.

iv_vl комментирует...

virens, я тебя с подобными постами всячески поддерживаю, потому что местные комментаторы-аналитики даже не представляют, каких усилий стоит регулярное ведение даже такого скромного блога! Ведь не то что вдохновения, но даже лишних полчаса улучить, ой, как не просто! Я побывал в Зазеркалье Записок Дебианщика, поэтому скажу только: (пилите, Шура, пилите)^W пишите, Михаил, пишите!

Но после того, как ты со всем разберёшься и разжуёшь в блоге, аудитория здесь подбирается не способная на интеллектуальные усилия.

P.S. Ожидаю новый пост у себя в блоге через пару дней. Здесь долго не появлялся, поскольку, признаться, ты сильно задел своим недавним постом. Похоже, что не только меня, но и Dr.AKULAvich с Minoru.

virens комментирует...

@ivlis комментирует...

Киллер-фича в том, что питонячий язык для скриптов. То есть не нужно изучать какой-то там дикий синтаксис по 200 страничному мануалу.

Питон меня не радует вот этим (по ссылке запрос "python upgrade pain in the ass" выдаёт 2 млн результатов). А синтаксис у гнуплота вполне гуманоидный, в отличие от других исчадий опенсорса.

Ну и если что-то нереализованно у API опять же matplotlib на том же питоне, то есть можно внутри что-то поправить
ivlis, так оно графики строит или как? :-)
Шутки-шутками, а оно весьма даже и ничего.

К недостаткам следует отнести плохие доки
Ну, этим нас не удивишь. Хотя быстрый гуглёж выдал вполне годные туториалы для быстрого старта. Как раз ковбоям типа меня :-)

Спасибо, ivlis, что поделился. Если в загашниках есть какие-то ценные ссылки по matplotlib, их тут можно оставить.


@Анонимный комментирует...
Михаил! Вы передергиваете!

Я немного тролю. Потом, почему Линусу Торвальдсу в рассылке гнома можно, а мне нельзя? :-)

Пользователь знает, что есть гнуплот, знает, что есть его сайт, знает, что есть документация.

Это хорошо, если он про gnuplot знает - откуда, кстати?

Но он, вместо того, чтобы ВЗГЛЯНУТЬ туда и найти решение задачи (это и проблемой то назвать нельзя), причем несложное, "гуглит часами".

Анонимус, это несколько однобоко. Слишком часто нужно конкретное решение конкретного вопроса, а не документация целиком. Я поясню.

Вот, например, я сейчас программирую на C и BLAS алгоритмы для quadratic programming. Я загуглил на тему библиотек и нашёл BLAS. У него есть до некоторой степени съедобная документация. Но есть доки от IBM, которые лучше - и я сижу и читаю всё это. Никаких проблем - мне нужно понять, как с этим работать. Наличие 2-3 туториалов сильно сокращают время, нужное для понимания, собственно, документации.

Обратный пример (намного более частый). Мне надо построить график, который я привёл в этом посте. В галерее я ничего не нашёл - а ответ нашёл на stackoverflow. Это сэкономило мне кучу времени на перечитывание доков, которые по этому вопросу (см. цитату выше) не сильно помогают.

Я к тому, что посредственную (если не сказать жёстче) опенсорсную документацию выгодно дополняют посты типа этого. Я поясню: я не за отмену документации, я за её дополнение туториалами и конкретными постами в стиле "куда лошадь запрягать". Согласитесь, Анонимус, что теоретическая книга с примерами и пояснениями выгодно дополняет теорию. Я не за то, чтобы превращать, скажем, книгу по линейной алгебре в книжку-раскраску, но за то, чтобы к этой книге были туториалы и примеры.

Что "народ выбирает платный MATLAB", и почему, я в курсе. Думаю, что народ будет всегда его выбирать. Это непростой вопрос.

По мне так вопрос как раз простой: народ выбирает качественный, рабочий софт, отличную документацию и прекрасные туториалы. А не глюкодром c 2.5 корявыми функциями, без внятной документаци, графического интерфейса и профайлера.

Передергиваете. Томик квантовой физики перечитывать не надо, и даже все руководство по гнуплот не надо.
Возможно. Просто этот пост - рецептик для себя, ни на что более фундаментальное не претендующий. Просто у меня такие графики сейчас в ходу, и чтобы не искать их каждый раз, я запостил инструкцию сюда.

virens комментирует...

@iv_vl комментирует...

virens, я тебя с подобными постами всячески поддерживаю
Да ну? :-)

комментаторы-аналитики даже не представляют, каких усилий стоит регулярное ведение даже такого скромного блога
Кстати, не таких больших усилий - если работу хостингу и всему техноливеру переложить на Гугл. Кстати, я тут по секрету вырубил капчу на блоге - спам-комментарии отсеиваются на удивление хорошо. Даже думаю оставить выключенной капчу.

Ведь не то что вдохновения, но даже лишних полчаса улучить, ой, как не просто
Сейчас меня потянет троллить iv_vl-я с его емаксом, гентой и маркдауном с октопрессом, и раскручивать вентилятор на тему того, что с дебианом и блогспотом как раз время и появляется, но я не стану этого делать. Не стану, нет. Ой... ;-)

Я побывал в Зазеркалье Записок Дебианщика
Не уходи, побудь со мною,
Здесь так отрадно, так све-етло.
(c) романс %-)

Серьёзно, если есть желание залудить очередной бессмертный шедевр - буду только рад. Посты в маркдауне принимаются, да :-)

аудитория здесь подбирается не способная на интеллектуальные усилия.
Не виноватая я, он сам пришёл! (с) Бриллиантовая рука ;-)

Серьёзно, iv_vl, я часто пишу заметки для себя, а народ пытается прозревать в этом какой-то особо глубинный фундаментальный смысл. Скоро должен появиться пост про запись DVD - там тоже ничего такого. Просто я для себя нашёл рецептик, а чтобы не забылся - на бложик.

ты сильно задел своим недавним постом.
Я этого не хотел. А критика (по возможности, конструктивная) была направлена на то, что такой годный инструмент, как markdown, подают через емакс и, скажем так, блогодвижки, не сильно повёрнутые лицом к простому пользователю.

Пост про маркдаун имел целью показать, что его можно использовать и для других целей. Ну и чтобы ссылки по материалам нашей переписки не пропали.


Да, вот что. Пока мы здесь сегодня собрались - что у нас там ещё человеческого для построения графиков, окромя гнуплота, матплотлиба и опенофиса? Чёньть гламурно-графическое (но при этом работящее) есть? :-)

green18281828 комментирует...

> Чёньть гламурно-графическое

qtiplot, вестимо.

green18281828 комментирует...

Да, ещё veusz, grace с его форками - qtgrace и gracegtk...

iv_vl комментирует...

@virens комментирует…
у нас там ещё человеческого для построения графиков, окромя гнуплота, матплотлиба и опенофиса?
Аналогов гнуплота я не вижу, уж больно быстро там всё рисуется, но лично я использую Asymptote. Он годится как для построения графиков, так и для любых рисунков. Здесь в статье, например, все рисунки выполнены именно Asymptote. Gnuplot графики от произвольных данных строит или по точкам (что сливает, когда этих точек за сотню), или поверхность, если только точки расположены на линиях уровня. У меня же Asymptote строит произвольные поверхности от произвольных данных (в статье все графики именно такие). Ты опять можешь сказать, что всё это есть, например, в Matlab, но Asymptote намного гибче и позволяет реализовать любую задумку. Но для быстрого создания графиков я бы его не использовал.

Анонимный комментирует...

В R еще можно красивые графики строить. Сейчас осваиваю.... Надеюсь хватит сил и терпения.

Dmitry Shamov комментирует...

> candlesticks (ай донт ноу хау ит из ин рашн сорри)

Свечи, же...

Отправить комментарий

Подписаться на RSS-ленту комментариев к этому посту.