Basierend auf dem, was Sie sagen, ist eine Allzweck-Skriptsprache wahrscheinlich die beste Wahl, solange sie über eine Art Grafikfunktion verfügt, auf die Sie zugreifen können (ob integriert oder importiert).
In diesem Sinne wird MATLAB funktionieren, obwohl Sie für Darstellungen in Präsentationsqualität mit Linienbreiten, Symbolen und Achsen spielen müssen. Anhand Ihrer Kriterien würde ich sagen, dass die große Schwäche von MATLAB im detaillierten mathematischen Schriftsatz liegt. MATLAB kann einige TeX-Beschriftungen verwenden, es gibt jedoch einige LaTeX-Befehle, die nicht verarbeitet werden können. Daher muss ich einige LaTeX-Beschriftungen aus einer PDF-Datei in Adobe Illustrator ausschneiden und einfügen.
Python + NumPy funktioniert für Datenimporte, da numpy.loadtxt
das Importieren von Textdaten schmerzlos ist. An diesem Punkt können Sie zwischen matplotlib und Gnuplot wählen (das über Gnuplot.py eine Python-Oberfläche verfügt ; seit 2008 keine aktive Entwicklung auf der Oberfläche mehr, aber ändert Gnuplot all das noch, obwohl es immer neue Releases hinzufügt? ). Der PyAsy-Wrapper von MatthewEmmett könnte auch funktionieren, je nachdem, was Sie tun möchten. Matplotlib bietet einen hervorragenden mathematischen Schriftsatz (wie von Barron angegeben), und Datenmanipulationen können mit NumPy, SciPy oder einem anderen Python-Paket durchgeführt werden, das Sie auf Ihre Daten anwenden möchten.
Das Problem, das ich mit gnuplot alleine hatte, ist, dass es wirklich nur zum Plotten gedacht ist. Mir war nicht klar, wie man Daten in der Gnuplot-Skriptsprache manipuliert. Ich habe im Wesentlichen alle meine Daten im Voraus bearbeitet, bevor ich sie als Text ausgab, da ich nicht herausfinden konnte, wie ich es anders machen soll. Sie können gnuplot verwenden, um Formeln auszuwerten und einige Manipulationen durchzuführen, aber für mich hat Python eine viel natürlichere Syntax und ist allgemeiner von größerem Nutzen als gnuplot. Ich möchte nicht eine andere Sprache lernen müssen, nur um eine Sache zu tun, es sei denn, es ist eine wirklich natürliche, leicht zu erlernende Sprache. (Oder es sei denn, ich bin dazu gezwungen.)
Tecplot 360 hat ein ähnliches Problem. Tecplot 360 erzeugt erstaunliche Diagramme, insbesondere in 3D. Es gibt Dinge, die Sie mit Tecplot 360 über eine relativ einfach zu erlernende Benutzeroberfläche tun können, die Sie in einem anderen Plot-Paket wahrscheinlich nur schwer tun können. Das letzte Mal, dass ich Tecplot verwendete, war vor 6 oder 7 Jahren; Anscheinend haben sie seitdem eine Menge Funktionen hinzugefügt. Die Datenbearbeitung kann durch Indizieren, Schneiden oder Einrichten von Zonen erfolgen. Abgeleitete Größen können mit Gleichungen berechnet werden. Sie können auch die Fourier-Transformation Ihrer Daten durchführen, eine Interpolation (oder ein Kriging) durchführen und eine Reihe anderer Dinge tun. Es ist nicht klar, wie man mathematischen Schriftsatz macht. Ich vermute, Sie könnten die HTML-Ausgabe von Tecplot hacken und MathJax oder MathML hinzufügen? Die Nachteile in Bezug auf Tecplot sind meines Erachtens, dass es nicht kostenlos ist (was bedeutet, dass Sie sind möglicherweise nicht in der Lage, es von Job zu Job mitzunehmen), den zweifelhaften mathematischen Schriftsatz und die Notwendigkeit, die Makrosprache von Tecplot zu lernen, um komplexe Datenmanipulationen per Skript durchzuführen. Der Hauptvorteil ist, dass seine 3D-Plotfähigkeit Matplotlib und MATLAB um ein Vielfaches übertrifft. Es ist möglich, Daten mit der Makro- / Skriptsprache von Tecplot im Stapel zu zeichnen und externe Python-Skripts (mit einigen eingeschränkten Funktionen) aufzurufen. Ähnlich wie in MATLAB gibt es auch eine GUI, auf die Sie zurückgreifen können, wenn Sie Tecplot-Skripte nicht erlernen möchten. (Die Benutzeroberfläche von Tecplot ist wesentlich umfangreicher als die von MATLAB.) Der Hauptvorteil ist, dass seine 3D-Plotfähigkeit Matplotlib und MATLAB um ein Vielfaches übertrifft. Es ist möglich, Daten mit der Makro- / Skriptsprache von Tecplot im Stapel zu zeichnen und externe Python-Skripts (mit einigen eingeschränkten Funktionen) aufzurufen. Ähnlich wie in MATLAB gibt es auch eine GUI, auf die Sie zurückgreifen können, wenn Sie Tecplot-Skripte nicht erlernen möchten. (Die Benutzeroberfläche von Tecplot ist wesentlich umfangreicher als die von MATLAB.) Der Hauptvorteil ist, dass seine 3D-Plotfähigkeit Matplotlib und MATLAB um ein Vielfaches übertrifft. Es ist möglich, Daten mit der Makro- / Skriptsprache von Tecplot im Stapel zu zeichnen und externe Python-Skripts (mit einigen eingeschränkten Funktionen) aufzurufen. Ähnlich wie in MATLAB gibt es auch eine GUI, auf die Sie zurückgreifen können, wenn Sie Tecplot-Skripte nicht erlernen möchten. (Die Benutzeroberfläche von Tecplot ist wesentlich umfangreicher als die von MATLAB.)
LaTeX-basierte Tools wie TikZ und PGFPlots scheinen nicht für Ihren Anwendungsfall geeignet zu sein. Der Schwachpunkt hier ist die Datenmanipulation; TikZ und PGFPlots sind großartige LaTeX-Tools. Ich wünschte, ich könnte sie besser gebrauchen. Da es sich um LaTeX handelt, schätze ich, dass der Workflow die erforderlichen Daten ausschneidet und in LaTeX einfügt und diese plottet. Es ist möglich, Programme innerhalb von LaTeX auszuführen, aber ich verstehe nicht, wie diese Funktion Ihnen unbedingt weiterhelfen würde, da der von Ihnen beschriebene Anwendungsfall für eine Präsentation oder ein Dokument nahelegt, dass Sie wahrscheinlich nur das Programm behalten werden fertiges Produkt. Vielleicht sind Sie mit diesem Workflow einverstanden. Beide Werkzeuge haben den Ruf, ausgereift zu sein und qualitativ hochwertige Figuren zu produzieren.
Schließlich ist Adobe Illustrator ein gutes Werkzeug zum Ausbessern von Plots, wie Sie bereits sagten. Die Mängel sind auch, wie Sie sagten, mangelnde Skriptfähigkeit oder Wiederholbarkeit, aber nichts ist besser als ein Grafikbearbeitungsprogramm, wenn Sie kleine Optimierungen vornehmen möchten.