根据您所说的,通用脚本语言可能是您最好的选择,只要它具有您可以访问的某种图形功能(无论是内置的还是导入的)。
在这种情况下,MATLAB 可以工作,尽管您必须使用线宽、符号和轴来获得演示质量的绘图。鉴于您的标准,我想说 MATLAB 的最大弱点是详细的数学排版;MATLAB 可以使用一些 TeX 标签,但是它无法处理一些 LaTeX 命令,所以我记得不得不返回并从 Adobe Illustrator 中的 PDF 中剪切和粘贴一些 LaTeX 标签。
Python + NumPy 将适用于数据导入,因为numpy.loadtxt
可以轻松导入文本数据。那时,您可以在 matplotlib 和 Gnuplot 之间进行选择(通过Gnuplot.py有一个 Python 接口;自 2008 年以来,该接口没有任何积极的开发,但话又说回来,Gnuplot 是否已经发生了如此大的变化,即使它不断添加版本? )。MatthewEmmett 的 PyAsy 包装器也可以工作,这取决于您想要做什么。Matplotlib 具有出色的数学排版功能(正如 Barron 所指出的),并且可以使用 NumPy、SciPy 或任何其他 Python 包来完成数据操作。
我对 gnuplot 本身的问题是它实际上是为绘图而构建的。我不清楚如何在 gnuplot 脚本语言中操作数据。在将其输出为文本之前,我基本上提前完成了所有数据操作,因为我无法弄清楚如何去做。您可以使用 gnuplot 来评估公式,并进行一些操作,但对我来说,Python 具有更自然的语法,并且比 gnuplot 具有更大的通用性。我不想为了做一件事而学习另一种语言,除非它是一种非常自然、易于学习的语言。(或者除非我被迫这样做。)
Tecplot 360 也有类似的问题。Tecplot 360 产生惊人的情节,尤其是在 3D 中。您可以使用相对容易学习的 GUI 使用 Tecplot 360 执行某些操作,而在另一个绘图包中您可能很难做到。我上一次使用 Tecplot 是在 6 或 7 年前;显然,从那以后他们增加了很多功能。数据操作可以通过索引、切片或建立区域来完成。导出量可以使用方程式计算。您还可以对数据进行傅里叶变换,执行插值(或克里金法),并执行许多其他操作。目前尚不清楚如何进行数学排版。我猜你可以破解 Tecplot 的 HTML 输出并添加 MathJax 或 MathML?在我看来,关于 Tecplot 的缺点是它不是免费的(这意味着作为一种工具,你可能无法从一个工作带到另一个工作),不确定的数学排版,以及编写复杂数据操作的脚本需要学习 Tecplot 的宏语言。主要优点是它的 3D 绘图能力远远超过了 matplotlib 和 MATLAB。可以使用 Tecplot 的宏/脚本语言批量绘制数据,并调用外部 Python 脚本(具有一些有限的功能)。此外,与 MATLAB 类似,如果您不想学习 Tecplot 脚本,可以使用 GUI。(Tecplot 的 GUI 比 MATLAB 的功能全面得多。)主要优点是它的 3D 绘图能力远远超过了 matplotlib 和 MATLAB。可以使用 Tecplot 的宏/脚本语言批量绘制数据,并调用外部 Python 脚本(具有一些有限的功能)。此外,与 MATLAB 类似,如果您不想学习 Tecplot 脚本,可以使用 GUI。(Tecplot 的 GUI 比 MATLAB 的功能全面得多。)主要优点是它的 3D 绘图能力远远超过了 matplotlib 和 MATLAB。可以使用 Tecplot 的宏/脚本语言批量绘制数据,并调用外部 Python 脚本(具有一些有限的功能)。此外,与 MATLAB 类似,如果您不想学习 Tecplot 脚本,可以使用 GUI。(Tecplot 的 GUI 比 MATLAB 的功能全面得多。)
TikZ 和 PGFPlots 等基于 LaTeX 的工具似乎不适用于您的用例。这里的弱点是数据操作;TikZ 和 PGFPlots 是很棒的 LaTeX 工具。我希望我知道如何更好地使用它们。由于它们是 LaTeX,我猜工作流程是将必要的数据剪切并粘贴到 LaTeX 中并绘制它。可以在 LaTeX 中执行程序,但我看不出这种能力对你有什么帮助,因为对于演示文稿或文档,你描述的用例表明你可能只会保留完成的产品。也许你对那个工作流程没意见;这两种工具都以精心设计和制作高质量人物而闻名。
最后,就像你说的,Adobe Illustrator 是一个很好的绘图工具;正如您所说,缺陷还在于缺乏可编写性或可重复性,但如果您想进行小调整,没有什么比图形编辑程序更好的了。