Welche Softwareprogramme werden zum Zeichnen von Physikdiagrammen verwendet, und was sind ihre relativen Vorzüge?

Zweifellos verwenden die Leute eine Vielzahl von Programmen, um Diagramme für die Physik zu zeichnen, aber ich bin mit vielen nicht vertraut. Normalerweise zeichne ich Dinge in GIMP von Hand, was in mancher Hinsicht mächtig ist, aber es ist zeitaufwändig, Dinge wie das Zeichnen von Kreisen oder Pfeilen zu tun, weil ich sie aus primitiveren Werkzeugen mache. Es ist auch schwierig, genau zu sein.

Ich weiß, dass einige Leute LaTeX verwenden, aber ich bin mir nicht ganz sicher, wie vielseitig oder einfach es ist. Die einzigen anderen Tools, die ich kenne, sind Microsoft Paint und die in Microsoft Office integrierten Tools.

Also, welche Werkzeuge werden üblicherweise von Physikern verwendet? Was sind ihre Vor- und Nachteile (Funktionen, Benutzerfreundlichkeit, Portabilität usw.)?

Ich suche ein Tool mit hoher Flexibilität und minimaler Lernkurve/Entwicklungszeit. Während ich vorgefertigte Formen gerne von Hand zeichnen und ziehen und ablegen möchte, möchte ich auch die genauen Positionen von Kurven und Formen mit Gleichungen angeben, wenn ich eine höhere Präzision benötige. Darüber hinaus wäre eine minimale Programmierfunktionalität ein nettes zusätzliches Feature (dh die Möglichkeit, eine Schleife zu durchlaufen, die eine Reihe von Linien mit einem variierenden Parameter zeichnet).

Bitte empfehlen Sie einige Softwareteile, wenn sie für verschiedene Situationen gut sind.

Verwandte Frage zu SO: stackoverflow.com/q/4005042

Antworten (20)

Ich habe gute Erfahrungen mit Inkscape gemacht . Es hat eine GUI-Schnittstelle, ermöglicht Ihnen aber die direkte Eingabe von Koordinaten, wenn Sie möchten, und es ist skriptfähig. Es gibt ein Plug-in, mit dem Sie LaTeX direkt eingeben können (für Etiketten und dergleichen). Der Nachteil ist, dass es sich noch in der Entwicklung befindet, sodass Sie manchmal feststellen, dass eine gewünschte Funktion noch nicht vollständig implementiert ist.

Als Beispiel ist hier ein Poster, das ich letzte Woche vollständig in Inkscape erstellt habe:Poster erstellt mit Inkscape

Inkscape hat jetzt auch das Plug-in " JessyInk ", mit dem Sie es verwenden können, um Präsentationen ( à la Powerpoint) zu erstellen. Die Präsentation kann in einem Webbrowser als SVG angezeigt oder als PDF exportiert werden.

Wenn Sie einen Mac haben und nichts dagegen haben, etwas Geld auszugeben (100 US-Dollar), habe ich Gutes über OmniGraffle gehört .

Ich habe Inkscape viel verwendet (obwohl ich LaTeX/TikZ bevorzuge) und es ist sehr selten, dass ich eine Funktion benötige, die nicht implementiert ist.
Danke für den Tipp. Ich habe gerade damit begonnen, das Tutorial für Geogebra ( geogebra.org/cms ) durchzugehen und werde Inkscape als nächstes einen Blick darauf werfen.
Im Allgemeinen etwas zum Vektorzeichnen; Ich benutze CorelDraw für solche Dinge, aber es ist nicht kostenlos und nur Windows (tatsächlich ist es der einzige Grund, warum ich Windows installiert habe).
+1 für Inkscape, insbesondere bei Verwendung mit der LaTeX-Renderfunktion. Es ist schön, Diagramme in Vektorform (SVG) zu haben, sodass sie bei Bedarf einfach neu skaliert, Ebenen geändert usw. werden können.
Außerdem können Sie Grafiken aus gnumeric im SVG-Format exportieren und in Inkscape importieren: screencasters.heathenx.org/episode-078
Nett. Kannte das LaTeX-Plugin bisher nicht.

Ich lerne gerade TikZ (ein Zeichenpaket für LaTeX). Es ist gut für zweidimensionale Strichzeichnungen, die Syntax zum Spezifizieren von Formen und Kurven ist extrem vielseitig, aber die Lernkurve ist sogar steiler als LaTeX.

Es gibt eine hervorragende Galerie mit TikZ-Beispielen .

Hier ist eine weitere Sammlung von netten TikZ-Beispielen auf SE.tex.

Es ist erwähnenswert, dass TikZ weitaus besser dokumentiert ist als LaTeX als Ganzes, was meiner Meinung nach die Lernkurve mehr als wettmacht.
Eigentlich ist LaTeX besser dokumentiert: Es ist nur so, dass Sie die Dokumentation kaufen müssen . Ich bin nicht der Meinung, dass die Dokumentation von TikZ die Lernkurve ausgleicht. Es ist extrem wortreich, und der Tutorial-Teil strukturiert die Informationen nicht so, dass Sie zuerst ein grundlegendes Framework lernen - Sie können nicht damit beginnen, Ihre eigenen Diagramme zu erstellen, bis Sie einen großen Teil davon durchgearbeitet haben.
Ist die Verwendung in Zeitschriftenpublikationen erlaubt?
@Alex: das hängt wirklich von der Zeitschrift ab. Einige Zeitschriften erlauben nicht einmal LaTeX.
Ich meine AIP- oder APS-Zeitschriften. Einige Makropakete werden dort möglicherweise nicht verwaltet oder verursachen eine Verringerung der Bildqualität.
@Alex: Auch hier weiß ich nicht, ob sie TikZ zur Verfügung haben. Sie müssen sie fragen. TikZ produziert jedoch Vektorgrafiken – solange sie in einem Vektorgrafikformat bleiben, gibt es keine „Reduzierung der Bildqualität“.
AIP hat übrigens folgendes über LaTeX zu sagen: „Obwohl wir die Vorteile für Autoren schätzen, Manuskripte in TeX zu erstellen, insbesondere für mathematisch intensive Manuskripte, ist es weder ein kostengünstiges Kompositionswerkzeug (für das derzeitige Seitenvolumen von AIP produziert) noch ist es ein Format, das effektiv für das Online-Publishing verwendet werden kann." ( aip.org/pubservs/compuscript.html#prepare )
Ich hatte Probleme mit reduzierter Qualität bei der Veröffentlichung, sogar mit dem LaTeX-"Bild"-Verfahren. Der einzige sichere Weg, den ich gefunden habe, ist ein Programm mit der Möglichkeit der *.eps-Ausgabe, und selbst in einem solchen Fall kann es aufgrund von Schriftarten in einigen Zeitschriften oder Konferenzen zu Problemen kommen.
@ptomato: Auf der anderen Seite bevorzugen Physical Review und verwandte Zeitschriften Einreichungen in LaTeX (natürlich mit revtex). Der Teil über die Verwendung von revtex ist wichtig, da es ihnen ermöglicht, Manuskripte sicher für das Web zu verarbeiten und automatisch zu drucken. Das Akzeptieren von beliebigem LaTeX ist schwierig , aber das Akzeptieren einer großen, aber gut definierten Teilmenge ist machbar.
@ptomato Es scheint, dass AIP geändert wurde, um jetzt RevTeX zuzulassen (siehe publishing.aip.org/authors/preparing-your-manuscript )

Ich interpretiere Ihr Begriffsdiagramm als "jedes ausgefallene Bild, das etwas Physik einfängt".

Dafür kann ich kaum etwas anderes als MetaPost empfehlen . Es ist mit TeX vergleichbar, da es etwas schwer zu lernen ist, aber sobald Sie die Grundlagen beherrschen, werden Sie nicht glauben, dass Sie jemals etwas anderes hätten verwenden können (insbesondere GIMP und Inkscape; eine gute Analogie wäre hier TeX vs. MS Word ).

Grundeigenschaften

  1. es ist eine (einfache) Programmiersprache
  2. es ist vektoriell (das sollte wahrscheinlich selbstverständlich sein, aber trotzdem)
  3. Seine Primitive sind Dinge wie Punkte, Linien, Pfade, Splines
  4. es enthält hervorragende Bildbearbeitungsfunktionen; Sie können Dinge sagen wie "Nehmen Sie dieses Bild, vergrößern Sie es um zwei und drehen Sie es um 60 Grad".
  5. Sie können TeX-Etiketten einfügen
  6. es kann Gleichungen lösen; Dies ist ein echter Killer, den sonst niemand anbietet. Sie können zwei Kurven zeichnen X ( t ) und Y ( t ) (am bequemsten als Splines definiert) und MP anweisen, ihren Schnittpunkt zu berechnen, dort einen Punkt zu zeichnen und ihn mit etwas Text zu beschriften

Erfolgsgeschichte

Ich habe MP verwendet, um im Zusammenhang mit Cluster-Erweiterungen einige Polygone auf einem hexagonalen Gitter zu erstellen. Es gab eine riesige Menge dieser Polygone zu zeichnen, also gab ich schnell alle Hoffnung auf, sie von Hand in Inkscape oder etwas Ähnlichem zu zeichnen. Stimmt, am Ende wäre es wahrscheinlich schneller, aber ich hasse Handarbeit; Ich verbringe lieber viel länger damit, eine Programmiersprache zu lernen und dann einfach die ganze Arbeit in wenigen Minuten zu programmieren. Also habe ich ein einfaches MP-Programm zusammengestellt, das meine Eingabedaten (Eckpunkte und Kanten der Polygone als reine Zahlen) in schöne Bilder umgewandelt hat. Für eine Nacht Arbeit und mein erstes Mal bei MP war ich mehr als zufrieden.

Leckereien

Alt-Text

Die Anerkennung für dieses erstaunliche Bild geht an Johan Kåhrström (siehe dort auch mehr Sachen unter Illustrationen ).

Hervorragende Zusammenfassung und Beispielbild! Danke Marek.
@Mark: Mir ist erst jetzt aufgefallen, dass dies ein Community-Wiki war und andere Antworten nur wenige Zeilen lang sind. Ich frage mich also, ob diese lange Antwort hier geeignet ist (ich möchte nicht zu viel Platz nur für mich selbst stehlen). Da es euch aber gefällt, kann es wohl bleiben :-)
Schönes Beispiel!
Ich denke, TikZ kann tatsächlich all die Dinge tun, die Sie in Ihrer Liste erwähnt haben.
@David: Dann sollte ich mir das mal ansehen; Danke für die Warnung. Allerdings merke ich jetzt, dass es hier schon eine Antwort darauf gibt (leider nicht sehr informativ), die ich übersehen hatte.
Wow, das Bild ist genial.

Verwenden Sie zunächst keine Rastergrafiksoftware wie Gimp , um Bilder zu zeichnen. Dies hat schwerwiegende Nachteile, wenn Sie bildschirmlesbare Dokumente erstellen möchten (das Bild wird verpixelt). Verwenden Sie dazu immer Vektorgrafiken . Wikipedia hat eine schöne Liste von Vektorgrafik-Software . Unter ihnen würde ich die folgenden empfehlen:

  • Inkscape (plattformübergreifend): Obwohl die Lernkurve etwas steil ist, lohnt es sich. Beachten Sie, dass Inkscape nicht zum Erstellen wissenschaftlicher Diagramme gedacht war. Trotzdem finden Sie ein LaTeX-Plugin, Export nach LaTeX/PSTricks usw.

  • Dia (plattformübergreifend): Sehr einfach und leicht, aber nicht sehr leistungsfähig. LaTeX kann nicht verarbeitet werden .

  • Ipe (plattformübergreifend): Ipe ist etwas zwischen Inkscape und Dia. Auch Ipe wurde für wissenschaftliches Zeichnen entwickelt. Kann LaTeX-Quellcode verarbeiten und PDF-Figuren importieren.

  • WinFIG (plattformübergreifend): Obwohl kommerziell , ist es in der wissenschaftlichen Gemeinschaft sehr beliebt.

BEARBEITEN: Wikipedia hat eine nette Seite, die verschiedene Software bespricht, die zum Erstellen von Figuren verwendet werden kann. Siehe Wikipedia: So erstellen Sie Diagramme für Wikipedia-Artikel

Ich würde Matplotlib ausprobieren, aber überprüfen Sie zuerst hier und entscheiden Sie, ob diese Bilder Ihren Anforderungen entsprechen. Klicken Sie auch auf ein Bild und überprüfen Sie den Quellcode.

Das sind ein paar schöne Bilder! Ich nehme an, ich müsste Python lernen, obwohl.
@Mark: Es ist nie zu früh, um Python zu lernen;)
Es ist nur fair zu erwähnen, dass Matplotlib MATLAB sehr ähnlich ist: Ähnliche Benutzeroberfläche, ähnliche Funktionen, ähnliche Standardstile usw. Ein Vorteil von Matplotlib gegenüber Matlab besteht darin, dass Sie Python verwenden können, eine bessere Programmiersprache als Matlab. Ein weiterer Grund ist, dass Matplotlib kostenlos ist, während Matlab unerschwinglich teuer ist, es sei denn, Sie erhalten es durch Arbeit oder Schule oder Raubkopien. Andererseits hat MATLAB bessere Hilfedateien, eine einfachere Installation und eine größere wissenschaftliche Benutzerbasis [aber ich hoffe, dass sich diese Dinge irgendwann ändern werden.]
Ich habe matplotlib für viele Grafiken in meiner Diplomarbeit verwendet. Der einzige Nachteil ist die fehlende Textausgabe. Das bedeutete, dass ich meine .svg-Dateien in Inkscape importieren musste, um Text hinzuzufügen und dann als tex zu exportieren.

Verwandter Beitrag in SO .

Mein persönlicher Favorit ist Asymtpote , das wie MetaPost auf Steroiden ist. Eine Galerie ist hier .

Ich habe über Asymptote gelesen, als ich mich entschieden habe, ob ich MP oder etwas anderes lernen soll. Etwas hat mich abgeschreckt; ob es C++-ähnliche Syntax, nur LaTeX-Unterstützung oder vielleicht etwas anderes war (ich weiß nicht mehr, ob das irgendetwas mit Asymptote oder einem anderen Programm zu tun hat). Können Sie die Unterschiede zu MP ein wenig beschreiben? Ich wäre dafür, Asymptote zu lernen, wenn es sich als bessere Alternative erweist.
@Marek Wow, das ist ein alter Thread, aber anscheinend wurde deine Frage nie beantwortet. Ich persönlich bevorzuge Asymptote, da es so ziemlich die gesamte Leistung von MP bietet, jedoch mit einer viel schlankeren Syntax. Ich mag es und ich mag OO-Programmierung nicht einmal. Alle geometrischen Dinge, die Sie normalerweise zeichnen, existieren wahrscheinlich bereits als sehr natürliche Funktionen. Außerdem stützt es sich auf LaTeX, um die Etiketten gut zu setzen. Und wenn Sie möchten, können Sie Asy-Befehle nahtlos in ein Tex-Dokument integrieren, indem Sie das richtige Paket verwenden, obwohl ich es vorziehe, sie getrennt zu halten. Asy wird definitiv unterschätzt.

Manchmal ist auch eine Rastergrafik notwendig. Ich habe oft POV-Ray verwendet , um einige Illustrationen zu machen.schwarzes Loch

Es kann in jeder Größe mit demselben Skript mit Beschreibung des Bildes erstellt werden, um Skalierungsprobleme zu vermeiden. Aber es ist kein grafischer Editor und schnell nur für die Erstellung einfacher Bilder.

Nur der Vollständigkeit halber lasse ich das hier:

Es ist immer möglich, Ihre Illustrationen in rohem Postscript zu erstellen ! Postscript ist selbst eine Forth-ähnliche Programmiersprache. Dies ist besonders nützlich für Illustrationen, die sich für eine prozedurale Generierung eignen. Wenn Postscript selbst zu niedrig ist, kann man oft ein Skript in einer anderen Sprache schreiben, das ein Postscript-Programm ausgibt.

Eine hervorragende Einführung in die Erstellung von Zeichnungen in rohem Postscript ist dieses kostenlose Buch:

Umschlagillustration: Mathematische Illustrationen von Bill Casselman

Schönes Buch, wie es scheint. Ich muss es überprüfen!

Um Feynman-Diagramme mit SVG zu zeichnen, habe ich jQuery.Feyn entwickelt , um es einfacher zu machen (siehe Screenshot unten).Geben Sie hier die Bildbeschreibung ein

Ich wurde kürzlich mit GeoGebra bekannt gemacht, und obwohl ich noch keine Gelegenheit hatte, es für irgendwelche Arbeiten zu verwenden, liebe ich die Benutzeroberfläche. Für geometrische Diagramme sieht es spektakulär aus.

Ich habe auch XFig und Gnuplot ausgiebig verwendet. Besonders wenn Sie verwenden L EIN T E X , diese Tools erfüllen ihren Zweck sehr, sehr gut.

Ich benutze Geogebra, seit Sie darauf hingewiesen haben. Es ist großartig!
Außerdem kann GG auch Tikz/Asymptote-Codes generieren, was großartig ist :)

Für primitive Zeichnungen bin ich ein großer Fan von XFig. Die Benutzeroberfläche ist ein wenig klobig, kann aber in Dutzenden von Grafikformaten gespeichert werden und erstellt Abbildungen, die geradezu trivial in ein LaTeX-Dokument eingefügt werden können. Das Größte für mich ist, dass das Dateiformat textbasiert ist, sodass es durchaus möglich ist, kompliziertere Zeichnungen zu skripten.

Ich benutze Mathematica auch für Zahlen und fand, dass es kein großer Sprung von dort zur Verwendung für Zeichnungen war. Sie können 2D- oder 3D-Primitive ziemlich einfach zeichnen:

Rectangle[{xmin, ymin}, {xmax, ymax}]

und wie bei python/matplotlib können Sie durch die Möglichkeit, alles zu parametrisieren, ein Bild für mehrere Szenarien neu zeichnen (oder es animieren oder manipulieren ).

Für mich ist das nützlichste Feature, dass man Dinge mathematisch definieren kann. Das von Marek erwähnte MetaPost-Beispiel, in dem zwei Kurven definiert und der Schnittpunkt vom Zeichenpaket berechnet werden können, wird von Mathematica inhärent behandelt.

Ich habe viel über diese Frage nachgedacht, seit ich meinen Abschluss gemacht und angefangen habe zu unterrichten. Ich denke, Adobe Illustrator ist die beste Software für Vektorgrafiken. Es erfordert keinen Code, um Bilder zu zeichnen; Sie müssen nur lernen, einige "wichtige" Werkzeuge zu verwenden. Ich bin in keiner Weise ein Grafikdesigner oder ein Illustrator-Profi und habe Folgendes gezeichnet:





Außerdem

  1. Sie können immer Tutorials zum Zeichnen mit Illustrator finden
  2. Sie können Bilder von Matlab oder Autocad nach Illustrator exportieren (.ai oder .eps)

Vielleicht sollten Sie auch ein Wort über den Hauptnachteil von Adobe Illustrator sagen: seinen Preis! Es ist etwas für Profis, nicht um einfache Pläne zu machen.
Vielen Dank. Hast du irgendwelche Meinungen über das hinaus, was in diesem Thread gesagt wird?
Nein. Nichts über das Gesagte hinaus! Ich benutze mspaint :)

Zunächst einmal sind für wissenschaftliches Zeichnen normalerweise Vektorgrafiken besser geeignet - skalierbar, bequem zu ändern und weniger sperrige Dateien zu erzeugen.

Für einfache allgemeine Grafiken verwende ich OpenOffice.org Draw (ich bevorzuge es Incscape).

Für abstrakte Diagramme gibt es den yEd-Graph Editor .

Beide sind kostenlos, für Win/Linux/MacOSX, leicht zu erlernen und können als Vektorgrafiken und PDF exportiert werden.

Ich benutze TKPAINT, das immer noch sehr gut funktioniert.

http://www.netanya.ac.il/~samy/tkpaint.html

Zuerst muss man ActiveTcl für Windows oder seine Tcl-Pendants für Linux oder was auch immer Sie verwenden, herunterladen. Es kann gefüllte oder leere Scheiben, Ellipsen, Quadrate, Rechtecke, Splines zeichnen, rotieren, schnell kopieren, verschieben, Texte mit vielen Schriftarten, Farben, Rastern, und es kann als EPS - auch gekapseltes Postscript - exportiert werden eine Standardmethode zum Einbetten ähnlicher Diagramme in TeX-Papiere auf dem arXiv und darüber hinaus.

Ich habe es in vielen Papieren verwendet, als ich sie schrieb.

Gruß LM

Für elektrische Schaltungen ist CircuitLab ein netter Online-Editor und -Simulator. Es gibt einige Einschränkungen, was Sie ohne Konto oder mit einem kostenlosen Konto tun können - ich kann mich nicht an die Details erinnern - aber Sie können Print-Screen verwenden, um schöne Bilder daraus zu machen. Ich mag es, weil es wirklich so einfach ist, wie ich es brauche: Wenn ich eine grundlegende Frage zu elektrischen Schaltkreisen erkläre, möchte ich nicht mehr als zwei Minuten damit verbringen, beispielsweise fünf Widerstände in einer Parallel-/Serienkonfiguration zu zeichnen. CircuitLab erledigt die Arbeit.

Eine Tour finden Sie in ihrem YouTube-Video Getting Started with CircuitLab .


Bearbeiten: Wenn Sie möchten, dass eine PNG-Ausgabe in einen Beitrag auf dieser Website eingefügt wird, können Sie zu Electrical Engineering wechseln , das über eine integrierte Implementierung im Post-Editor verfügt , und einfach den Bildlink zurückbringen. Danke an Chris White für den Tipp!

Es gibt ein Add-in für Microsoft Word namens Science Teacher's Helper. http://www.helpscience.com

SmartDraw ist auch ein hervorragendes Programm zum Erstellen von Diagrammen. http://www.smartdraw.com

Sie können auch PLotly verwenden , eine kollaborative, webbasierte Grafikplattform mit APIs in Python, R, MATLAB, Julia und Perl. Den Code zum Erstellen dieser Beispiele finden Sie in der Dokumentation.

hier.

Ursprünglich vorgeschlagen von Matthew Sundquist

Sehen Sie sich die SCaVis-Software an . Es enthält viele Beispiele, die veranschaulichen, wie verschiedene Diagramme gezeichnet werden. Hier der Link zu den Beispielen