Я шукаю [вільне] програмне забезпечення, яке може створювати красиві графічні моделі, наприклад
Будь-які пропозиції будуть вдячні.
Я шукаю [вільне] програмне забезпечення, яке може створювати красиві графічні моделі, наприклад
Будь-які пропозиції будуть вдячні.
Відповіді:
В даний час у мене є аналогічна проблема (малювання декількох діаграм шляху для моєї дисертації), і тому я вивчав багато варіантів, перерахованих тут, щоб намалювати подібні діаграми. Багато з перерахованих ресурсів для малювання такої векторної графіки (як, наприклад, в Microsoft Office або малюнках google) можуть створювати дійсно приємні діаграми шляху з досить мінімальними зусиллями. Але частина причини, по якій я був незадоволений подібними програмами, полягає в тому, що мені потрібно було створити багато діаграм із лише незначними змінами між кожною діаграмою (наприклад, додати ще один вузол, змінити мітку). Інструменти векторної графіки для точки та клацання для цього недостатньо підходять, і докладайте більше зусиль, ніж потрібно, щоб зробити такі незначні зміни. Також стає важко підтримувати шаблон між багатьма малюнками. Тож я вирішив вивчити варіанти програмної графіки для виробництва такої графіки.
Як вже було сказано в тіазі, Graphviz виявився дуже близьким до того, що я хотів отримати всі свої дзвіночки і графіки (а також досить простий код для їх створення), але він не вистачав для моїх потреб двома способами; 1) математичних шрифтів бракує (наприклад, я не впевнений, чи можна позначити вузол символом у Graphviz, 2) вигнуті лінії важко намалювати (див. Цю публікацію на малюванні діаграм шляху за допомогою Graphviz на веб-сайті @ Stask) . Через ці обмеження я зараз (дуже щасливо) вирішив використовувати бібліотеку малювання Tikz / pgf в Латексі . Нижче наведено приклад моєї спроби відтворити вашу графіку (найбільшим болем були ярлики в правому нижньому куті коробок!);
\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
Тепер я вже пишу свою дисертацію з латексу, тому, якщо ви просто хочете, щоб зображення не було необхідним для складання цілого документу з латексу, це трохи незручно, але є деякі досить незначні шляхи для створення зображення більш безпосередньо (див. Це питання вище на stackoverflow). Однак існує маса інших переваг щодо використання Tikz для такого проекту
На даний момент я не розглядав деякі бібліотеки для малювання діаграм у статистичному пакеті R безпосередньо із зазначених моделей, але в майбутньому я можу розглянути їх у більшій мірі. Є кілька приємних прикладів з бібліотеки qgraph для підтвердження концепції того, що можна досягти в Р.
Laura Dietz написала дуже гарну бібліотеку для tikz, яка дозволяє малювати байєсівські мережі в латексі, не потребуючи фактичного використання tikz.
Щоб продемонструвати цей пакет, див. Наступний приклад цього питання:
\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
Незважаючи на те, що це абсолютно однаково, він, безумовно, передає ту саму інформацію і може бути налаштований, щоб краще відповідати конкретним вимогам. Цей пакет генерує дуже прийнятні цифри без необхідності вивчати повний пакет tikz.
Ви не можете перемогти http://daft-pgm.org/
Daft - це пакет Python, який використовує matplotlib для надання ідеальних піксельних імовірнісних графічних моделей для публікації в журналі або в Інтернеті. За допомогою короткого сценарію Python та інтуїтивного синтаксису побудови моделі ви можете створювати спрямовані (байєсівські мережі, спрямовані ациклічні графіки) та непрямі (випадкові поля Маркова) та зберігати їх у будь-яких форматах, які підтримує matplotlib (включаючи PDF, PNG, EPS та SVG ).
Inkscape - це, по суті, безкоштовна версія Adobe Illustrator, і це дуже сильна програма для ведення векторної графіки, як картинка, яку ви розмістили. Він також грає досить чудово з більшістю статистичних пакетів для остаточного редагування / анотацій / тощо. до графіків - R, SAS тощо можуть виводити графік у вигляді PDF або іншого векторного формату (наприклад, .eps), а потім ви можете ввести його в Inkscape, щоб возитися з кольорами, символами, мітками осі тощо.
Якщо у вас є особливий інтерес до використання LaTeX, програма LaTeXDraw має деякі приємні функції для створення діаграм потоків із вбудованим кодом латексу.
Він імпортує / експортує код PSTricks та SVG, а також може експортувати svg, pdf, eps, jpg, png тощо. Він працює в Linux, Mac OS X та Windows.
Я виявив, що Diagrammix є дуже гнучким пакетом, доступним для Mac OS X. Це добре закруглений векторний графічний пакет і добре справляється з графічними моделями. Він досить недорогий і має кілька хороших доповнень, які допомогли покращити форми та напрямки країв.
Diagrammix
як це було зроблено на деякі відповіді.
Ви можете спробувати Google Docs Draw . Схоже, це буде робити те, що ви хочете безкоштовно, прямо у вашому браузері.
Ви можете піти на PlantUML . Він з відкритим кодом і досить гнучкий.
Ви також можете скористатися веб-програмою Lucidchart .
Раніше я використовував це для малювання графіків, і це безкоштовно.