Я ищу [бесплатное] программное обеспечение, которое может создавать красивые графические модели, например
Мы ценим любые предложения.
Я ищу [бесплатное] программное обеспечение, которое может создавать красивые графические модели, например
Мы ценим любые предложения.
Ответы:
В настоящее время у меня есть похожая проблема (рисование нескольких схем путей для моей диссертации), и поэтому я изучал многие из перечисленных здесь вариантов, чтобы нарисовать похожие диаграммы. Многие из перечисленных ресурсов для рисования такой векторной графики (например, в Microsoft Office или рисунках Google) могут создавать действительно хорошие диаграммы путей с минимальными усилиями. Но одна из причин, по которой я был недоволен такими программами, заключается в том, что мне нужно было создать много диаграмм, с небольшими изменениями между каждой диаграммой (например, добавить другой узел, изменить метку). Инструменты векторной графики «укажи и щелкни» не очень подходят для этого, и для внесения таких незначительных изменений требуется больше усилий, чем нужно. Также становится трудно поддерживать шаблон между многими чертежами. Итак, я решил изучить варианты производства такой графики программно.
Graphviz, как уже упоминалось в thias, был очень близок к тому, чтобы иметь все навороты, которые я хотел для своей графики (а также довольно простой код для их создания), но он не соответствовал моим потребностям двумя способами; 1) отсутствуют математические шрифты (например, я не уверен, что вы можете пометить узел символом в Graphviz, 2) изогнутые линии трудно рисовать (см. Этот пост по рисованию диаграмм путей с использованием Graphviz на сайте @ Stask) , Из-за этих ограничений в настоящее время (очень радостно) я остановился на использовании библиотеки рисования Tikz / pgf в Latex. Ниже приведен пример моей попытки воспроизвести вашу графику (самой большой болью были надписи в правом нижнем углу коробки!);
\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
Сейчас я уже пишу свою диссертацию на латексном языке, поэтому, если вы просто хотите, чтобы изображение без необходимости компилировать весь латексный документ, это немного неудобно, но есть некоторые довольно незначительные обходные пути для более непосредственного создания изображения (см. Этот вопрос более на стеке потока). Есть множество других преимуществ использования Tikz для такого проекта, хотя
В настоящее время я не рассматривал некоторые библиотеки для рисования диаграмм в статистическом пакете R непосредственно из указанных моделей, но в будущем я могу рассмотреть их в большей степени. Есть несколько хороших примеров из библиотеки qgraph для доказательства концепции того, что можно сделать в R.
Лора Дитц (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 .
Я использовал его в прошлом для рисования графиков, и это бесплатно.