Ich bin auf der Suche nach [freier] Software, mit der sich gut aussehende grafische Modelle erstellen lassen, z
Anregungen wäre dankbar.
Ich bin auf der Suche nach [freier] Software, mit der sich gut aussehende grafische Modelle erstellen lassen, z
Anregungen wäre dankbar.
Antworten:
Derzeit habe ich ein ähnliches Problem (Zeichnen mehrerer Pfaddiagramme für meine Dissertation). Daher habe ich viele der hier aufgeführten Optionen bereits untersucht, um ähnliche Diagramme zu zeichnen. Viele der aufgeführten Ressourcen zum Zeichnen solcher Vektorgrafiken (z. B. in Microsoft Office- oder Google-Zeichnungen) können mit relativ geringem Aufwand sehr schöne Wegdiagramme erstellen. Ein Grund, warum ich mit solchen Programmen nicht zufrieden war, war, dass ich viele Diagramme mit nur geringfügigen Änderungen zwischen den einzelnen Diagrammen erstellen musste (z. B. Hinzufügen eines weiteren Knotens, Ändern einer Bezeichnung). Die Point-and-Click-Vektorgrafiken sind dafür nicht geeignet und erfordern mehr Aufwand als nötig, um solche geringfügigen Änderungen vorzunehmen. Es wird auch schwierig, eine Schablone zwischen vielen Zeichnungen beizubehalten. Daher habe ich mich entschlossen, Optionen zu prüfen, um solche Grafiken programmatisch zu erstellen.
Wie bereits von Thias erwähnt, hatte Graphviz beinahe alle Schnickschnack, die ich mir für meine Grafiken gewünscht hatte (und auch ganz einfachen Code, um sie zu erstellen), aber meine Bedürfnisse erfüllten sich in zweierlei Hinsicht nicht. 1) Es fehlen mathematische Schriftarten (z. B. bin ich mir nicht sicher, ob Sie einen Knoten mit dem Symbol in Graphviz kennzeichnen können. 2) Kurvige Linien sind schwer zu zeichnen (siehe diesen Beitrag zum Zeichnen von Pfaddiagrammen mit Graphviz auf der @ Stask-Website). . Aufgrund dieser Einschränkungen habe ich mich derzeit (sehr glücklich) für die Verwendung der Tikz / pgf- Zeichnungsbibliothek in Latex entschieden. Ein Beispiel ist unten von meinem Versuch, Ihre Grafik zu reproduzieren (der größte Schmerz waren die Beschriftungen in den unteren rechten Ecken der Kästen!);
\documentclass[11pt]{report}
\usepackage{tikz}
\usetikzlibrary{fit,positioning}
\begin{document}
\begin{figure}
\centering
\begin{tikzpicture}
\tikzstyle{main}=[circle, minimum size = 10mm, thick, draw =black!80, node distance = 16mm]
\tikzstyle{connect}=[-latex, thick]
\tikzstyle{box}=[rectangle, draw=black!100]
\node[main, fill = white!100] (alpha) [label=below:$\alpha$] { };
\node[main] (theta) [right=of alpha,label=below:$\theta$] { };
\node[main] (z) [right=of theta,label=below:z] {};
\node[main] (beta) [above=of z,label=below:$\beta$] { };
\node[main, fill = black!10] (w) [right=of z,label=below:w] { };
\path (alpha) edge [connect] (theta)
(theta) edge [connect] (z)
(z) edge [connect] (w)
(beta) edge [connect] (w);
\node[rectangle, inner sep=0mm, fit= (z) (w),label=below right:N, xshift=13mm] {};
\node[rectangle, inner sep=4.4mm,draw=black!100, fit= (z) (w)] {};
\node[rectangle, inner sep=4.6mm, fit= (z) (w),label=below right:M, xshift=12.5mm] {};
\node[rectangle, inner sep=9mm, draw=black!100, fit = (theta) (z) (w)] {};
\end{tikzpicture}
\end{figure}
\end{document}
%note - compiled with pdflatex
Nun, ich bin schon meine Dissertation in Latex zu schreiben, also , wenn Sie nur das Bild wollen , ohne ein ganzes Latex - Dokument zu erstellen, die es leicht inconveniant ist, aber es gibt einige ziemlich kleineren Abhilfen ein Bild mehr direkt (siehe produzieren diese Frage über auf Stapelüberlauf). Es gibt jedoch eine Reihe weiterer Vorteile, wenn Tikz für ein solches Projekt verwendet wird
Zu diesem Zeitpunkt habe ich einige Bibliotheken zum Zeichnen der Diagramme im Statistikpaket R nicht direkt aus den angegebenen Modellen in Betracht gezogen, aber ich werde sie in Zukunft möglicherweise in größerem Umfang berücksichtigen. Es gibt einige schöne Beispiele aus der qgraph-Bibliothek für einen Proof of Concept, der zeigt, was in R erreicht werden kann.
Laura Dietz hat eine sehr schöne Bibliothek für Tikz geschrieben, die das Zeichnen von Bayesian Networks in Latex ermöglicht, ohne Tikz direkt verwenden zu müssen.
Im folgenden Beispiel wird dieses Paket anhand dieser Frage veranschaulicht:
\documentclass[11pt]{report}
\usepackage{tikz}
\usetikzlibrary{bayesnet}
\begin{document}
\begin{figure}
\centering
\tikz{ %
\node[latent] (alpha) {$\alpha$} ; %
\node[latent, right=of alpha] (theta) {$\theta$} ; %
\node[latent, right=of theta] (z) {z} ; %
\node[latent, above=of z] (beta) {$\beta$} ; %
\node[obs, right=of z] (w) {w} ; %
\plate[inner sep=0.25cm, xshift=-0.12cm, yshift=0.12cm] {plate1} {(z) (w)} {N}; %
\plate[inner sep=0.25cm, xshift=-0.12cm, yshift=0.12cm] {plate2} {(theta) (plate1)} {M}; %
\edge {alpha} {theta} ; %
\edge {theta} {z} ; %
\edge {z,beta} {w} ; %
}
\end{figure}
\end{document}
%note - compiled with pdflatex
Es ist zwar nicht genau das Gleiche, vermittelt jedoch mit Sicherheit die gleichen Informationen und kann an die jeweiligen Anforderungen angepasst werden. Dieses Paket generiert sehr akzeptable Zahlen, ohne dass Sie das vollständige tikz-Paket lernen müssen.
Sie können http://daft-pgm.org/ nicht schlagen
Daft ist ein Python-Paket, das matplotlib verwendet, um pixelgenaue probabilistische grafische Modelle für die Veröffentlichung in einer Zeitschrift oder im Internet zu rendern . Mit einem kurzen Python-Skript und einer intuitiven Modellierungssyntax können Sie gerichtete (Bayes'sche Netzwerke, gerichtete azyklische Diagramme) und ungerichtete (Markov-Zufallsfelder) Modelle entwerfen und in allen von Matplotlib unterstützten Formaten (einschließlich PDF, PNG, EPS und SVG) speichern ).
Inkscape ist im Wesentlichen eine kostenlose Version von Adobe Illustrator und ein sehr starkes Programm zum Erstellen von Vektorgrafiken, wie das von Ihnen veröffentlichte Bild. Es funktioniert auch recht gut mit den meisten Statistikpaketen für endgültige Bearbeitungen / Anmerkungen / etc. in Grafiken - R, SAS usw. können eine Grafik als PDF-Datei oder in einem anderen Vektorformat (z. B. .eps) ausgeben. Anschließend können Sie sie in Inkscape importieren, um mit Farben, Symbolen, Achsenbeschriftungen usw. herumzuspielen.
Wenn Sie ein besonderes Interesse an der Verwendung von LaTeX haben, bietet das Programm LaTeXDraw einige nützliche Funktionen zum Erstellen von Flussdiagrammen mit eingebettetem Latexcode .
Es importiert / exportiert PSTricks-Code und SVG und kann auch svg, pdf, eps, jpg, png usw. exportieren. Es läuft unter Linux, Mac OS X und Windows.
Ich habe festgestellt, dass Diagrammix ein sehr flexibles Paket ist, das für Mac OS X verfügbar ist. Es ist ein abgerundetes Vektorgrafikpaket und leistet gute Arbeit bei grafischen Modellen. Es ist ziemlich billig und hat einige gute Zusätze, die dazu beigetragen haben, die Formen und Richtungen der Kanten zu verbessern.
Diagrammix
gleichen Antworten reproduzieren können .
Sie können Google Docs Draw ausprobieren . Es sieht so aus, als würde es kostenlos tun, was Sie wollen, direkt in Ihrem Browser.
Sie können sich für PlantUML entscheiden . Es ist Open Source und sehr flexibel.
Sie können auch die Lucidchart- Webapp verwenden.
Ich habe es in der Vergangenheit zum Zeichnen von Grafiken verwendet und es ist kostenlos.