Szukam [darmowego] oprogramowania, które może produkować ładnie wyglądające modele graficzne, np
Wszelkie sugestie będą mile widziane.
Szukam [darmowego] oprogramowania, które może produkować ładnie wyglądające modele graficzne, np
Wszelkie sugestie będą mile widziane.
Odpowiedzi:
Mam obecnie podobny problem (rysowanie wielu diagramów ścieżek do mojej pracy doktorskiej), więc analizowałem wiele z wymienionych tutaj opcji, aby narysować podobne diagramy. Wiele z wymienionych zasobów do rysowania takich grafik wektorowych (takich jak rysunki Microsoft Office lub Google) może tworzyć naprawdę ładne diagramy ścieżek, przy minimalnym wysiłku. Ale jednym z powodów, dla których nie byłem zadowolony z takich programów, jest to, że musiałem stworzyć wiele diagramów, z jedynie niewielkimi zmianami między poszczególnymi diagramami (np. Dodać kolejny węzeł, zmienić etykietę). Narzędzia grafiki wektorowej typu „wskaż i kliknij” nie nadają się do tego dobrze i dokonanie tak drobnych zmian wymaga więcej wysiłku. Trudno jest również utrzymać szablon między wieloma rysunkami. Postanowiłem więc przeanalizować opcje programowego tworzenia takiej grafiki.
Graphviz, jak już wspomniano przez Thias, był naprawdę bliski posiadania wszystkich dzwonków i gwizdków, które chciałem dla mojej grafiki (a także dość prostego kodu do ich produkcji), ale moje potrzeby były dwojakie na dwa sposoby; 1) brakuje czcionek matematycznych (np. Nie jestem pewien, czy możesz oznaczyć węzeł symbolem w Graphviz, 2) trudno jest narysować zakrzywione linie (zobacz ten post na temat rysowania diagramów ścieżek za pomocą Graphviz na stronie internetowej @ Stask) . Z powodu tych ograniczeń postanowiłem (bardzo szczęśliwie) korzystać z biblioteki rysunków Tikz / pgf w Latex. Poniżej znajduje się przykład mojej próby odtworzenia grafiki (największy ból sprawiły etykiety w prawym dolnym rogu pola!);
\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
Teraz już piszę moją pracę doktorską w języku lateksowym, więc jeśli chcesz tylko obraz bez konieczności kompilowania całego dokumentu lateksowego, jest to nieco niewygodne, ale istnieją pewne dość niewielkie obejścia, aby uzyskać obraz bardziej bezpośrednio (zobacz to pytanie powyżej przy przepełnieniu stosu). Istnieje jednak wiele innych korzyści z używania Tikz do takiego projektu
W tej chwili nie rozważałem niektórych bibliotek do rysowania diagramów w pakiecie statystycznym R bezpośrednio z określonych modeli, ale w przyszłości mogę rozważyć je w większym stopniu. Istnieje kilka ciekawych przykładów z biblioteki qgraph potwierdzających koncepcję tego, co można osiągnąć w R.
Laura Dietz napisała bardzo dobrą bibliotekę dla tikz, która umożliwia rysowanie Bayesian Networks w lateksie bez konieczności bezpośredniego używania tikz.
Aby zademonstrować ten pakiet, zobacz następujący przykład tego pytania:
\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
Chociaż nie jest dokładnie taki sam, z pewnością przekazuje te same informacje i można go dostosować, aby lepiej pasował do konkretnych wymagań. Ten pakiet generuje bardzo akceptowalne liczby bez konieczności uczenia się pełnego pakietu tikz.
Nie możesz pokonać http://daft-pgm.org/
Daft to pakiet Pythona, który wykorzystuje matplotlib do renderowania perfekcyjnie pikselowych probabilistycznych modeli graficznych do publikacji w czasopiśmie lub w Internecie. Za pomocą krótkiego skryptu Python i intuicyjnej składni modeli można projektować modele ukierunkowane (sieci Bayesa, ukierunkowane wykresy acykliczne) i modele bezkierunkowe (pola losowe Markowa) i zapisywać je w dowolnych formatach obsługiwanych przez matplotlib (w tym PDF, PNG, EPS i SVG ).
Inkscape jest zasadniczo bezpłatną wersją programu Adobe Illustrator i jest bardzo silnym programem do tworzenia grafiki wektorowej, takim jak opublikowane zdjęcie. Gra również całkiem ładnie z większością pakietów statystycznych do końcowych edycji / adnotacji / itp. do wykresów - R, SAS itp. mogą generować wykres w formacie PDF lub innym formacie wektorowym (np. .eps), a następnie można go wprowadzić do Inkscape, aby pomieszać kolory, symbole, etykiety osi itp.
Jeśli jesteś szczególnie zainteresowany korzystaniem z LaTeX, program LaTeXDraw ma niezłą funkcjonalność do tworzenia schematów blokowych z osadzonym kodem lateksowym.
Importuje / eksportuje kod PSTricks i SVG, a także może eksportować svg, pdf, eps, jpg, png itp. Działa w systemach Linux, Mac OS X i Windows.
Dia to darmowy program typu open source do rysowania diagramów. Uważam, że jest to przydatne i nie jest zbyt trudno rozpocząć.
Przekonałem się, że Diagrammix jest bardzo elastycznym pakietem dostępnym dla Mac OS X. Jest to dobrze zaokrąglony pakiet grafiki wektorowej i dobrze sobie radzi z modelami graficznymi. Jest dość niedrogi i ma kilka dobrych dodatków, które pomogły poprawić kształty i kierunki krawędzi.
Diagrammix
podobnie jak niektóre odpowiedzi.
Możesz wypróbować Google Docs Draw . Wygląda na to, że zrobi to, co chcesz za darmo, bezpośrednio w przeglądarce.
Możesz wybrać PlantUML . Jest open source i dość elastyczny.
Możesz także użyć aplikacji internetowej Lucidchart .
Użyłem go w przeszłości do rysowania wykresów i jest bezpłatny.