Я обычно считаю Octave самым простым в использовании инструментом для оценки данных, но громоздким для визуализации данных.
С другой стороны, я считаю Gnuplot самым простым в использовании инструментом для визуализации данных из-за
- его очень целенаправленного характера,
- его мощная библиотека демонстрационных примеров и
- его всеобъемлющие интерактивные функции справки.
Эти преимущества сводятся на нет путем помещения любой языковой оболочки между gnuplot и пользователем, но В чистом gnuplot (намеренно) отсутствуют возможности для выполнения какой-либо нетривиальной предварительной обработки (например, численного исчисления).
Octave может использовать gnuplot в качестве бэкэнда, но для сохранения преимуществ я бы предпочел напрямую использовать команды gnuplot, например :
dx = 0.1;
x = 0:dx:2*pi;
y = sin(x);
y2 = cumsum(y)*dx;
outputFileName = "sin.pdf"
# Contains mockup syntax:
gp set term pdfcairo size 30cm,20cm noenhanced
gp set output '${outputFileName}'
gp plot ${x,y} using 1:2 with lines title "The sin(x) function", \
gp ${x,y2} using 1:2 with lines title "Integrated sin(x) function", \
gp cos(x) title "The cos(x) function"
gprun
Написать базовую c реализацию этой утилиты «gp» было бы достаточно просто, хотя интерполяцию переменных пришлось бы заменить явной gp(["set output '" outputFileName "'"])
за счет удобства чтения. Однако не так просто было бы создать файл таблицы ${x,y}
.
Есть ли какой-нибудь простой способ получить аналогичную функциональность?
По иронии судьбы, некоторые много более старые версии октавы (примерно до 2005, 2006) имели эту возможность (gset
, graw
, ...), но понижали их до уровня внутренней реализации. В некоторых старых обсуждениях я нахожу ссылки, например, на __graw__
, которого также больше не существует, а на некоторых устаревших сайтах документации упоминается gplot
, который все еще существует, но с совершенно другой целью.