Welche Software und welcher Workflow werden für die Veröffentlichung von wissenschaftlichen Daten und Grafiken empfohlen?

40

Welche Software bietet einen guten Workflow vom einfachen Zeichnen einiger Datenpunkte bis zur Erstellung von Grafiken auf Veröffentlichungsebene mit detaillierten Stilen, mathematischem Schriftsatz und "professioneller Qualität"?

Dies hängt ein wenig mit der Frage von David zusammen ( Welche Attribute machen eine Figur von professioneller Qualität aus? ), Aber der Fokus liegt nicht auf den Attributen, sondern auf der Software oder dem allgemeinen Workflow, um dahin zu gelangen. Ich habe oberflächliche Erfahrungen mit einer Reihe von Programmen, Gnuplot, Origin, Matplotlib, TikZ / PGFplot, Qtiplot, aber es scheint ziemlich schwierig, Datenanalysen und nette Zahlen gleichzeitig durchzuführen.

Gibt es eine Software, die dies ermöglicht, oder sollte ich mich nur in eines der Pakete vertiefen?

Bearbeiten: Mein aktueller Workflow ist eine Mischung aus verschiedenen Komponenten, die mehr oder weniger zusammenarbeiten, aber insgesamt nicht wirklich effizient sind. Ich denke, das ist typisch für eine Reihe von Wissenschaftlern in einem Universitätslabor. Typischerweise ist es eine Kette, die vom Experiment bis zur Veröffentlichung wie folgt beginnt:

  1. Experimentelle Daten abrufen (normalerweise in ASCII-Form, aber mit unterschiedlichem Layout, z. B. Überschriften, Kommentare, Spaltenanzahl)
  2. Schnelles Plotten der Daten, um zu überprüfen, ob in Origin, Gnuplot oder dem vor 20 Jahren erstellten Arcane-Plot-Programm nichts schief gelaufen ist.
  3. Detailliertere Analyse der Daten: Subtraktion der Hintergrundbeiträge, Analyse der Abhängigkeiten und Korrelationen, Anpassung an theoretische Modelle. Viele Wissenschaftler verwenden Origin für diese Aufgabe, einige verwenden Matlab und Python / Scipy / Numpy zunehmend.
  4. Das Erstellen professioneller Zahlen umfasst das Anpassen an Journalrichtlinien, den mathematischen Satz und die allgemeine Bearbeitung. Im Moment benutze ich Origin dafür, aber es hat einige Nachteile (versuchen Sie einfach, eine Linienbreite von genau 0,5pt zu erhalten, es ist nicht möglich). Zum Kombinieren / Polieren von Figuren verwende ich hauptsächlich Adobe Illustrator, da es sich gut um das Im- / Exportieren von PDF-Dokumenten handelt, aber ich würde es vorziehen, nicht für jedes Diagramm zwei Schritte durchlaufen zu müssen.

Ich habe ein Beispiel hinzugefügt, wie es am Ende aussehen könnte (da dies größtenteils von Hand erstellt wurde, ist das Ändern von Elementen schmerzhaft, und alles, das eine Schnittstelle zum Beispiel zum Festlegen der Linienbreite für alle Elemente bietet, wäre schön):Bildbeschreibung hier eingeben

Alexander
quelle
2
Vielleicht sollten Sie Ihre Anforderungen klären. In seiner gegenwärtigen Form zieht die Frage nur eine große Liste von Software an. Niemand beschreibt im Detail, welche Vor- und Nachteile die Systeme haben. Wenn ich es mir anschaue, würde es mir nicht helfen, eines auszuwählen. Natürlich verfügen alle technischen Computersoftware, MATLAB, Mathematiac, Maple, alle Python-basierten Lösungen, R usw. über viele Tools zum Erstellen von Plots. Dann gibt es die GUI-Tools wie Origin und xmgrace. Welche die beste Wahl ist, hängt von Ihren Bedürfnissen ab.
Szabolcs
@ Szabolcs: Ich stimme zu, dass meine Frage ein bisschen weit gefasst ist. Mein Arbeitsablauf ist nicht immer derselbe, da ich Daten aus verschiedenen Experimenten analysiere. Deshalb habe ich versucht, die Frage etwas allgemeiner zu halten.
Alexander

Antworten:

31

Wenn Sie Erfahrung mit Python haben (oder auch nicht), würde ich empfehlen, die verfügbare wissenschaftliche Python-Software ( SciPy , Pandas , ...) zusammen mit Matplotlib zu verwenden . Als Programmierumgebung haben Sie die volle Kontrolle über Ihre Datenflüsse, Datenmanipulationen und das Plotten. Sie können auch die "Vollanwendungen" Mayavi2 oder Veusz verwenden .

GertVdE
quelle
14
+1 für Matplotlib. Zusätzlich zu den genannten Punkten erhalten Sie durch die Verwendung von LaTeX in den Textfeldern den gewünschten "mathematischen Satz".
Barron
irgendeine empfehlung für enthusiastischen chaco?
pcr
1
Chaso ist super toll für interaktive Handlungen. IMHO ein ganz anderes Tier.
Meawoppl
2
Und um Matplotlib sofort zu verschönern, schauen Sie sich Seaborn an .
Christian Clason
1
Oder prettyplotlib
GertVdE
15

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.loadtxtdas 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.

Geoff Oxberry
quelle
1
Ich möchte nur einen kleinen Kommentar zu dieser großartigen Antwort hinzufügen. Das Adobe-Produkt muss nicht verwendet werden. Das Open-Source-Tool inkscape bietet Ihnen auch großartige Tools zum Ausbessern von Plots. In Kombination mit dem LaTeX-Plugin kann es gute Arbeit leisten.
Azrael3000
10

Ich denke, dies ist eine ausgezeichnete Frage, die mir derzeit am Herzen liegt. Wenn Matlab die meisten mathematischen Zeitschriften liest, scheint es akzeptabel zu sein, aber es entspricht meiner Meinung nach nicht den schönen Darstellungen und Diagrammen, die in Zeitschriften wie PNAS, Nature, PLoS ONE usw. erscheinen.

Nach einer mehrwöchigen Diskussion in meiner Arbeitsgruppe über genau dieses Thema sind wir immer noch zu keinem wirklichen Schluss gekommen, welches Paket das beste ist. Wir haben festgestellt, dass die meisten Vergleiche von Grafiksoftware in Dokumentationen, Blogs oder anderen Webquellen weitgehend nutzlos sind, um festzustellen, welches Paket für einen bestimmten Zweck am besten geeignet ist.

Ich denke, was einem durchschnittlichen Benutzer, der kein Experte für alle / viele dieser Pakete ist, wirklich helfen würde, ist eine kleine Menge sehr gut definierter Beispiele, die als "grafischer Maßstab" (in ähnlicher Form) verwendet werden könnten Sinn als CFD-Benchmark ). Soweit ich weiß, gibt es derzeit nichts Vergleichbares.

Zumindest würde ich sehen wollen:

  1. Ein einigermaßen einfaches 2D-Liniendiagramm mit mehreren Linien- und Punkttypen, Legende, Mathematik in Beschriftungen / Titeln usw.
  2. Das Gleiche gilt für ein 3D-Flächendiagramm.
  3. Eine anspruchsvollere 3D-Darstellung mit Isoflächen, Schnittebenen und vielleicht einigen anderen ausgefallenen Funktionen.
  4. Ein schickes 3D-Diagramm.

Daten würden für # 1-3 und ein Foto oder "Original" -Diagramm für # 4 bereitgestellt. Für jedes Beispiel werden Code (Eingabe) und Bilder (Ausgabe) veröffentlicht. Auf diese Weise kann der Leser leichter beurteilen, welches Paket für ihn geeignet ist, sowohl in Bezug auf die Bildqualität als auch auf die Komplexität des Codes.

Mein Plan ist, in den kommenden Monaten so etwas in meiner Gruppe für # 1, 2, 4 und eine kleine Anzahl von Paketen zu machen, einschließlich Matlab, pgf / TikZ, python / scipy. Bei Interesse könnte ich dies öffentlich posten.

Obwohl dies noch keine Antwort auf die ursprünglich gestellte Frage ist (und ich entschuldige mich dafür), könnte dies in einigen Monaten eine Antwort sein.

John Stockie
quelle
Ein solcher vorgeschlagener Benchmark ist eine gute Idee. Alle vorgeschlagenen Wege, um zum endgültigen Diagramm zu gelangen, sind schwer zu vergleichen, wenn Sie nicht von einem bestimmten Datensatz und bestimmten Anforderungen ausgehen. Wenn Sie den Code außerdem in verschiedenen Sprachen / Paketen sehen, können Sie vergleichen, was Ihren eigenen Bedürfnissen besser entspricht. Besonders bei TikZ habe ich den Eindruck, dass man fast alles reproduzieren kann, aber dass es einen echten Experten braucht, um dies zu tun.
Alexander
Ich halte den Benchmark für eine gute Idee. Für Ihre 2D-Diagramme würde ich vorschlagen, dass Sie einige der Diagramme in der Matplotlib-Galerie replizieren . Zu jedem Beispiel ist bereits ein Beispielcode vorhanden. Für 3D-Beispiele hat Mayavi eine ähnliche Galerie in seiner Dokumentation und ein schönes 3D-Tutorial-Beispiel . Das Replizieren einiger dieser 3D-Diagramme in anderen Paketen kann ebenfalls hilfreich sein.
Geoff Oxberry
Was verwenden Sie jetzt, einige Monate später? Irgendwelche Kommentare zum Erstellen von Plots durch Hacken (mit Plotoptionen in einem Textfenster, Plot, Loop basteln ...) und / oder interaktiv?
Denis
8

Ich benutze in der Regel Gnuplot . Es kann schwer zu erlernen sein, erzeugt aber sehr saubere Handlungen. Es kann auch so eingestellt werden, dass Plots im gekapselten Postscript-Format (.eps) erstellt werden, was das einfache Einbetten in in geschriebene Dokumente ermöglichtLEINTEX

Dan
quelle
+1 und für schnelle Darstellungen versuchen Sie qtiplot, ein netter Ursprungsklon, der auch eine Kurvenanpassung durchführen kann. Auch für endgültige Layouts ist xfig wirklich nett (aber schwer) und kann Latexformeln direkt mit ein bisschen Hacking in die Details einbetten ...
Karussell
8

Ein weiteres zu berücksichtigendes Softwarepaket ist Asymptote . Asymptote ist eigentlich eine Programmiersprache (mit einer C ++ ähnlichen Syntax), die eine vektorbasierte Ausgabe erzeugt. Eine nette Funktion ist, dass Text mit LaTeX (einschließlich mathematischer Gleichungen) gerendert wird, sodass der Text in Ihren Abbildungen mit Ihrem Dokument übereinstimmt.

Ich habe einen Python-Wrapper namens PyAsy für Asymptote geschrieben, damit ich NumPy-Arrays an die Asymptote-Engine übergeben und einige grundlegende Plots ausführen kann. Es ist ziemlich rau und nicht vollständig, aber es könnte hilfreich sein.

Wie auch immer, die Ausgabequalität von Asymptote ist wirklich gut.

Bearbeiten: Darüber hinaus fand ich Fabric sehr hilfreich für das Starten von Remote-Jobs, das Synchronisieren von Verzeichnissen und das Erstellen von Binärdateien, das Abrufen von Ausführungsdaten und / oder das Starten von Remote-Analyseskripten. Es handelt sich um eine relativ kompakte Python-Bibliothek, die das Ausführen von Remote-Befehlen ein wenig vereinfacht (und skriptfähig macht).

Matthew Emmett
quelle
8

Lassen Sie mich einen kurzen Überblick über die Grafikfunktionen von Mathematica geben, da ich damit vertraut bin.

Was kann ich tun?

Ein Beispiel finden Sie in der Mathematica-Codegalerie auf der Wolfram-Site. Es geht nicht speziell um Visualisierung, aber fast alle Beispiele enthalten ein Plotten.

Sie können auch die Plot- (Basic) und Grafik- Tags (Advanced) von Mathematica.SE durchsuchen

Es ist möglich, Ihr Beispielbild vollautomatisch zu erstellen (keine manuelle Nachbearbeitung erforderlich).

Stärken

  • Alle Grafiken werden deklarativ angegeben (wie SVG - Sie fordern das System nicht auf , etwas zu zeichnen , sondern listen nur die Vektorgrafiken auf). Grafiken sind die gleichen Mathematica-Ausdrücke wie alle anderen im System, sie werden nur auf besondere Weise angezeigt. Dies bedeutet, dass Grafiken nach ihrer Erstellung einfach transformiert und verarbeitet werden können - dies gilt auch für Grafiken, die durch Plotfunktionen erstellt wurden.

  • Die schnelle und einfache Möglichkeit, Grafiken zu erstellen, besteht darin, Plotfunktionen auf hoher Ebene zu verwenden und zahlreiche Optionen zum Anpassen der Ausgabe festzulegen. Wenn es keine Funktion für das genaue Diagramm gibt, das Sie benötigen, können Sie die Grafiken aus Grafikprimitiven zusammensetzen (was auch ziemlich einfach ist ).

  • Die Funktionen zum Zeichnen mathematischer Funktionen sind ausgezeichnet. Soweit ich weiß, ist es klassenführend. Mathematica-Samples funktionieren adaptiv (sowohl in 2D als auch in 3D), sodass ein reibungsloser Plot schnell und automatisch generiert werden kann. Singularitäten, Diskontinuitäten usw. werden symbolisch durch Zeichnungsfunktionen erfasst.

  • Sie können Abbildungen für eine bestimmte Druckgröße erstellen und sicherstellen, dass sie gut zum umgebenden Text in einer Publikation passen (z. B. Schriftgröße und Schriftstile stimmen überein). In 2D gibt es zwei Arten von Koordinaten: Plotkoordinaten, die Ihren Daten entsprechen, und absolute Koordinaten, die in Druckerpunkten angegeben sind. Ersteres skaliert beim Ändern der Größe der Grafik, letzteres nicht. Der Text verwendet standardmäßig absolute Koordinaten, was bedeutet, dass der 8-Punkt-Typ 8 Punkte beträgt, unabhängig davon, ob dieselbe Figur mit einer Größe von 7 cm oder 14 cm exportiert wird. Dies ermöglicht Schriftgrößen, die mit dem Text in der Publikation übereinstimmen.

  • Eingebauter Schriftsatz für mathematische Formeln. Das MaTeX -Paket von Drittanbietern bietet eine LaTeX-Integration für einen erstklassigen Formelsatz. (Offenlegung: Ich bin der Autor.)

  • Sie können die gesamte Datenverarbeitung im selben System durchführen. Im Allgemeinen kann mit ein wenig Arbeit der gesamte Prozess der Figurenerstellung automatisiert werden (sogar einige fortgeschrittene Aspekte ), wodurch die Notwendigkeit einer manuellen Nachbearbeitung in Software wie Adobe Illustrator entfällt. Dies ist wichtig, wenn Sie in letzter Minute ein kleines Problem feststellen und die Abbildung erneut generieren müssen.

Schwächen

  • Es kann schwierig sein, Figuren mit mehreren Unterplots zu haben und eine genaue Ausrichtung zwischen den Koordinatensystemen der Unterplots zu haben.

    Das SciDraw- Paket (von Drittanbietern) behebt dies und gibt detaillierte Kontrolle über jeden Aspekt der Figur. Der Nachteil dieses Pakets besteht darin, dass die Einrichtung von Zahlen mehr Aufwand erfordert.

  • 3D-Grafiken lassen sich nicht gut in Vektorformate exportieren. Das Exportieren einer Bitmap-Version ist jedoch in Ordnung.

  • Wenn Ihre Institution noch keine Lizenz besitzt, kostet dies Geld.

Szabolcs
quelle
5

Tauchen Sie tiefer in PGF-Diagramme ein:

1) kann 3d-diagramme erstellen: python-matplotlib kann das nicht, gnuplot ist im vergleich hässlich

2) konsistent Schriftarten in Größe und Familie mit dem Basisdokument)

3) kann für bestimmte Farbschemata verwendet werden

Es gibt nichts Vergleichbares auf dem Markt. :)

tmaric
quelle
1
matplotlib verfügt über ein 3D-Grafikprogramm. Es ist ein bisschen schwach, funktioniert aber auf jeden Fall gut für eine schnelle Visualisierung.
Meawoppl
Auf jeden Fall +1. Wenn es um Plots in Publikationsqualität geht, ist nichts besser als das. Schamloser Plug: Eine Frage und meine Antworten zu pgfplots unter TeX.sx: tex.stackexchange.com/search?q=user:9043+[pgfplots] . Siehe auch texample.net/tikz/examples/pgfplots für ein Beispiel und das sehr umfassende Handbuch .
Qubyte
Bei PGF-Plots habe ich nur das Problem, dass Sie nicht davon ausgehen können, dass Verlage dies unterstützen. Was würden Sie dann tun, wenn Ihr Workflow davon abhängt? Ich habe einmal zuerst die Zahlen gesetzt und dann die resultierende Ausgabe in die Hauptdatei eingefügt, die nicht mehr von PGF-Plots abhing, was nicht wirklich praktisch war. Gibt es einen schlaueren Weg?
Christian Waluga
1
@ChristianWaluga: Sie können die "Standalone" -Klasse verwenden. Auf diese Weise können Sie PDF / EPS-Bilder mit dem PGF-Bild erstellen, das Sie bereits für den Artikel vorbereitet haben. Anschließend können Sie das PDF mit Includegraphics in den ursprünglichen Artikeltext einfügen.
Tmaric
4

Ich finde Tecplot sehr leistungsfähig, wenn es um Datenvisualisierung und Datenmanipulation geht.

hpc
quelle
4
Was ist mit Tecplot macht es sehr mächtig? Welche Funktionen finden Sie besonders nützlich?
Paul
4

Ich werde versuchen, Ihnen einen Überblick über meine begrenzte Erfahrung zu geben, die nur einige Arten von Diagrammen abdeckt: 2D-Datenplots, Streudiagramme und Diagramme (Bäume und Diagramme, Flussdiagramme); Aber lassen Sie mich zunächst ein wenig von der Frage abweichen:

Zunächst möchte ich sagen, dass die Wichtigkeit der Produktion hochwertiger Grundstücke oft übersehen wird. Diagramme dienen nicht nur zur Anzeige von Daten, sondern können bei effektiver Verwendung komplexe Ideen kommunizieren, die häufig nicht klar im Text ausgedrückt werden können. Es scheint mir, dass dies nicht der geeignete Ort ist, um zu diskutieren, was einen guten Plot ausmacht, welche Vorteile und welche Nachteile er hat .

Zweitens habe ich es öfter bereut, ein halbgebackenes Grundstück verwendet zu haben, als Zeit auf einem hochwertigen Grundstück zu verbringen. Der Grund dafür ist , dass eine schlechte Handlung kann lügen Sie, zum Beispiel, wenn ein unausgegorenes Grundstück mit einem kurzen Blick über Daten zu tun , dass Sie nicht richtig normalisiert haben könnten, oder durch Verwendung von nicht-so-gute Plots visuelle Vergleiche zu tun (Das Auge kann oft sehr verzeihend oder sehr irreführend sein). Daher würde ich immer empfehlen, die Handlungen so vorzubereiten, als würden sie einer Person gezeigt, die mit den Ergebnissen nicht vertraut ist. So können Sie Zeit sparen und Ihre Arbeit verbessern. Außerdem haben Sie den zusätzlichen Vorteil, dass das Präsentationsmaterial für die nächste Präsentation / das nächste Seminar / den nächsten Artikel bereitsteht.

Jetzt zu die Frage beantworten :

Nach meiner Erfahrung ist es immer besser, die Datenverarbeitung vom eigentlichen Plotter und den Bildbearbeitungswerkzeugen zu trennen. Für die Datenverarbeitung verwende ich Python, da es sehr flexibel ist und ich kein Dateiformat gefunden habe, das mit Python nicht einfach zu handhaben ist. Darüber hinaus können die Numpy- und Scipy-Bibliotheken leistungsstarke Manipulationswerkzeuge für numerische Daten sein.

Innerhalb von Python habe ich kein Plotter-Tool gesehen, mit dem Sie die Kontrolle über alle Formatierungsdetails haben. Ich habe festgestellt, dass es die Details sind, die einen großen Unterschied machen, wenn Sie versuchen, Bilder beim Formatieren eines Papiers in Latex zu integrieren. Zum Beispiel kann die Kontrolle der Leerzeichen und Proportionen von Plots mit und ohne Matplotlib Kopfzerbrechen bereiten (nicht unmöglich, aber meine Zeit nicht wert). Dies ist sehr wichtig, wenn Sie nur über begrenzten Speicherplatz verfügen, wie dies häufig in Journalen und Konferenzen der Fall ist Papiere.

Nach meiner Erfahrung ist GNUPLOT das beste Werkzeug zum Formatieren und Erzeugen von 2D-Plots und Scatterplots. Es gibt Ihnen sehr viel Kontrolle über alle Details Ihres Grundstücks. Außerdem können Sie hochwertige Plots (Vektorgrafiken) in Schwarzweiß oder Farbe erstellen. Das hohe Maß an Kontrolle erschwert das Erlernen von GNUPLOT, und manchmal sind einfache Dinge etwas arbeitsaufwendig, aber wenn Sie von einem Beispiel ausgehen, können sie die Dinge vereinfachen. Ich sehe in der Regel an diesen beiden Standorten für die Inspiration finden Sie in der nicht-so-FAQ - Seite oder die offiziellen Demos finden Sie hier .

Manchmal können die von GNUPLOT erzeugten Plots sehr groß sein (im MB-Bereich) und das Journal kann die Dateien ablehnen (dies ist mir mit einigen sehr bunten Streudiagrammen passiert). Ich habe verwendet und ich empfehle Imagemagick , ein Befehlszeilentool, mit dem Sie Bilder konvertieren, bearbeiten und komprimieren können (ich habe es verwendet, um hochwertige JPEGs zu generieren und zu bearbeiten, während ich die Dateigröße erheblich reduzierte). Ich habe andere Tools ausprobiert, die die automatische Datenkomprimierung verwendeten. Dies erwies sich aufgrund des empfindlichen Gleichgewichts zwischen Bildartefakten und Komprimierung als besonders problematisch.

Ich habe auch eine ganze Reihe von Diagrammen erstellt (oft für Präsentationen). Ich fand, dass, wenn ich ein Diagramm ein einziges Mal verwenden werde (kein Papier), die Keynote-Anwendung (OSX) und das Speichern im PDF-Format gut genug sind. Wenn ein Bild jedoch häufig verwendet wird, ist die Darstellungsqualität wichtiger und TikZ ist mein bevorzugtes Werkzeug. Ich finde es etwas schwierig, TikZ zu verwenden, aber wenn Sie von einem Beispiel ausgehen , ist es viel einfacher.

Schließlich mache ich den größten Teil meiner Arbeit über die Befehlszeile, um verschiedene Tools, die ich mit Bash oder Python verwende, zu integrieren.

fcruz
quelle
3

Meine schnelle Stimme ist für QtiPlot.

Obwohl es nicht perfekt ist, bietet es die beste Kombination aus GUI-Leichtigkeit und Python-Skripten. Was Sie also wirklich tun, ist "Qtiplot / Python / (Illustrator oder Inkscape)". Qtiplot ist erweiterbar, sodass Sie Ihre eigenen Skripte / Makros erstellen können, mit denen Sie Python-Befehle ausführen können, um Daten zu öffnen und zu verarbeiten und sie dann in eine Tabelle zu kopieren. Sie können sie dann manuell oder automatisch plotten. Sie können es auch so konfigurieren, dass es mit dem LaTeX-Schriftsatz mit einem im Internet verfügbaren Schriftsetzer oder einem lokalen Schriftsetzer funktioniert, sodass Sie mathematische Formeln in Ihre Diagrammtitel / -achsen / -markierungen einfügen können.

Die Diagramme können dann in ein beliebiges Format exportiert werden, aber das Format, das am besten funktioniert, ist zweifellos SVG. Die SVG-Dateien können bei Bedarf in inkscape nachgebessert werden, das auch über LaTeX-Satzfunktionen verfügt.

Während MatPlotLib großartig ist, besteht sein größter Nachteil darin, absolut alles von Hand zu codieren (genau wie bei jeder Skript-Plot-Lösung). QtiPlot ist großartig, da Sie mit der großartigen Python-Funktionalität die Datenverarbeitung und das Plotten per Skript automatisieren können. Anschließend können Sie ein Grobplot an eine GUI übergeben, mit der Sie es von Hand optimieren und alle Arten von GUI-Ausschneiden / Einfügen / Bearbeiten durchführen können Dies ist für die Datenanalyse von Fall zu Fall viel schneller. Sie können Dimensionen auch mithilfe des Skripts präzise festlegen und die Dimensionen mithilfe der GUI bearbeiten, was mit matplotlib nicht möglich ist.

Ich nehme an, es hängt davon ab, wie Sie sich zu QtiPlot-Plotlösungen fühlen. Ich habe es als sehr fähig empfunden, aber es ist alles eine ziemlich steile Lernkurve.

Vince
quelle
3

Ich bin überrascht, dass niemand die hervorragenden Werkzeuge matlab2tikz und matplotlib2tikz von Nico Schlömer erwähnt hat . Wenn Sie LaTeX für die Dokumentvorbereitung und Matlab oder Python für die Datenverarbeitung verwenden, können Sie auf einfache Weise hochwertige Vektorzeichnungen erhalten, die Sie nach Herzenslust nachbearbeiten können:

  1. Bereiten Sie Ihre Zeichnungen in Matlab oder Python vor, einschließlich Achsen, Beschriftungen, Legenden usw. Machen Sie sich keine Gedanken über die TeX-Formatierung.
  2. Rufen Sie an matlab2tikz('figure.tex')(odermatplotlib2tikz ).
  3. Nach figure.texBelieben bearbeiten (Beschriftungstext durch richtige Mathematik ersetzen, Farben, Linienbreite, Legendenplatzierung, Achsenstil usw. ändern), siehe Handbuch zu pgfplots (oder die vielen Fragen zu pgfplots) im TeX-Stapelaustausch).
  4. In Ihrer Figur, statt includegraphics, setzen \input{figure.tex}(und nicht zu vergessen sind\usepackage{pgfplots} in der Präambel).
  5. Für die Einreichung, verwenden Sie die Externalisierung Bibliothek (Kapitel 7 des Handbuchs) Ihre Figur in ein pdf zu backen und einfach zu ersetzen \input{figure.tex}durch \includegraphics{figure.pdf}.
Christian Clason
quelle
2

Wenn Sie kein Scripting suchen, schauen Sie sich MagicPlot an. Es ist nicht so funktionsreich wie Origin (z. B. kann nur 2D-Diagramme erstellen), aber ich habe noch nie Probleme mit der Linienbreite und anderen Eigenschaften gehabt. Die Handlungen sind nett, wenngleich das Neuzeichnen schnell genug ist. Plus nützliche Passform.

Alexander
quelle
0

Tecplot 360 eignet sich für die Verarbeitung großer Datenmengen und die Erstellung von Plots in Publikationsqualität. Es verfügt über leistungsstarke Add-On- und Scripting-Schnittstellen zur Verarbeitung der Daten. Es scheint mir, dass es alles tut, was Sie für die Nachbearbeitung benötigen.

Ein häufiger Fehler ist die Verwendung von Excel. Nein, es erinnert sich nicht an Layout, X-Bereich, Farbkarte. Es wird nicht animiert. Es werden hässliche, sperrige Arbeitsblätter verwendet, um mit den Daten zu arbeiten.

Natürlich finden Sie kein Tool, das sowohl die Nachbearbeitung als auch die Textbearbeitung übernimmt, und die Auswahl eines geeigneten Texteditors für Ihre Veröffentlichungen ist eine weitere wichtige Frage. Verwenden Sie kein MS Word, der Zitiermanager ist hässlich. Ich verwende LyX oder ein anderes Latex-Tool, das für das von mir verwendete Betriebssystem verfügbar ist.

Oh, und wenn Sie PDF veröffentlichen müssen, fügen Sie einen Link zu LaTeX, Word oder einem beliebigen Format mit lesbarer Mathematik hinzu. In PDF ist es nicht.


quelle