Исходя из того, что вы говорите, язык сценариев общего назначения является, вероятно, вашим лучшим выбором, если он имеет какую-то графическую возможность, к которой вы можете получить доступ (встроенный или импортированный).
В этом ключе MATLAB будет работать, хотя вам придется играть с шириной линий, символами и осями для графиков качества презентации. Учитывая ваши критерии, я бы сказал, что большая слабость MATLAB заключается в детальной математической верстке; MATLAB может использовать некоторые ярлыки TeX, но есть некоторые команды LaTeX, которые он не может обработать, поэтому я помню, что мне нужно было возвращаться назад и вырезать и вставлять некоторые ярлыки LaTeX из PDF в Adobe Illustrator.
Python + NumPy будет работать для импорта данных, потому что numpy.loadtxt
делает импорт текстовых данных безболезненным. На этом этапе вы можете выбирать между matplotlib и Gnuplot (у которого есть интерфейс Python через Gnuplot.py ; с 2008 года нет активной разработки интерфейса, но опять же, Gnuplot меняет все так сильно, даже если он продолжает добавлять релизы? ). Оболочка Pythesy от MatthewEmmett также может работать, в зависимости от того, что вы хотите сделать. Matplotlib обладает отличной математической версткой (как отмечает Barron), и манипуляции с данными могут выполняться с использованием NumPy, SciPy или любого другого пакета Python, который вы хотите добавить в свои данные.
Проблема, с которой я столкнулся с gnuplot, заключается в том, что он действительно построен только для печати. Мне было непонятно, как манипулировать данными на языке сценариев gnuplot. Я по существу сделал все свои манипуляции с данными заранее, прежде чем выводить их в текст, потому что я не мог понять, как это сделать иначе. Вы можете использовать gnuplot для оценки формул и выполнять некоторые манипуляции, но для меня Python имеет гораздо более естественный синтаксис и имеет большую общую полезность, чем gnuplot. Я не хочу изучать другой язык только для того, чтобы сделать что-то одно, если только это не действительно естественный, легкий для изучения язык. (Или если меня не заставят.)
Tecplot 360 имеет аналогичную проблему. Tecplot 360 производит удивительные сюжеты, особенно в 3D. Есть вещи, которые вы можете сделать с Tecplot 360, используя относительно простой в освоении графический интерфейс, который вам, вероятно, будет трудно сделать в другом пакете печати. Последний раз я использовал Tecplot 6 или 7 лет назад; видимо, они добавили много функциональности с тех пор. Манипулирование данными может осуществляться с помощью индексации, нарезки или создания зон. Производные величины могут быть рассчитаны с использованием уравнений. Вы также можете взять преобразование Фурье своих данных, выполнить интерполяцию (или кригинг) и сделать ряд других вещей. Не понятно, как делать математическую верстку. Я думаю, вы могли бы взломать вывод HTML из Tecplot и добавить MathJax или MathML? На мой взгляд, недостатки Tecplot заключаются в том, что он не бесплатный (что означает, что в качестве инструмента возможно, вы не сможете взять его с собой на работу), а также на сложные математические наборы и на то, что для написания сложных манипуляций с данными требуется изучение макроязыка Tecplot. Основным преимуществом является то, что его способность к трехмерному построению значительно превосходит matplotlib и MATLAB. Можно пакетировать данные графика с использованием языка макросов / сценариев Tecplot и вызывать внешние сценарии Python (с некоторыми ограниченными функциями). Также, как и в MATLAB, есть графический интерфейс, к которому можно обратиться, если вы не хотите изучать скрипты Tecplot. (GUI Tecplot гораздо более полнофункциональный, чем MATLAB.) Основным преимуществом является то, что его способность к трехмерному построению значительно превосходит matplotlib и MATLAB. Можно пакетировать данные графика с использованием языка макросов / сценариев Tecplot и вызывать внешние сценарии Python (с некоторыми ограниченными функциями). Также, как и в MATLAB, есть графический интерфейс, к которому можно обратиться, если вы не хотите изучать скрипты Tecplot. (GUI Tecplot гораздо более полнофункциональный, чем MATLAB.) Основным преимуществом является то, что его способность к трехмерному построению значительно превосходит matplotlib и MATLAB. Можно пакетировать данные графика с использованием языка макросов / сценариев Tecplot и вызывать внешние сценарии Python (с некоторыми ограниченными функциями). Также, как и в MATLAB, есть графический интерфейс, к которому можно обратиться, если вы не хотите изучать скрипты Tecplot. (GUI Tecplot гораздо более полнофункциональный, чем MATLAB.)
Инструменты на основе LaTeX, такие как TikZ и PGFPlots, похоже, не созданы для вашего случая использования. Слабым местом здесь является манипулирование данными; TikZ и PGFPlots - отличные инструменты LaTeX. Хотел бы я знать, как их лучше использовать. Так как они LaTeX, я предполагаю, что рабочий процесс вырезает и вставляет необходимые данные в LaTeX и выводит их на график. Можно запускать программы внутри LaTeX, но я не вижу, как эта возможность обязательно поможет вам, учитывая, что для презентации или документа описываемый вами сценарий использования предполагает, что вы, вероятно, только сохраните готовый продукт. Может быть, вы в порядке с этим рабочим процессом; Оба инструмента имеют репутацию хорошо спроектированных и производящих высококачественные фигуры.
Наконец, Adobe Illustrator - прекрасный инструмент для подведения итогов, как вы сказали; Как вы сказали, недостатки также заключаются в отсутствии возможности написания сценариев или повторяемости, но ничто не сравнится с программой редактирования графики, если вы хотите сделать небольшие изменения.