베이지안 네트워크를 그리기위한 소프트웨어 (그래픽 모델)


50

멋진 그래픽 모델을 생성 할 수있는 [무료] 소프트웨어를 찾고 있습니다. 예 :

여기에 이미지 설명을 입력하십시오

모든 제안을 부탁드립니다.


1
이 같은 그림을 연결했거나 다른 소프트웨어에서 준비된 모델을 그리는 것을 의미합니까? 후자라면 어느 것입니까?

그림 그리기는 내가 연결 한 것을 좋아했습니다
C. Reed

2
Inkscape 에서 수동으로 작성 되었으므로 동일한 작업을 시도 할 수 있습니다.

10
여러분이 제공 한 그림은 2008 년 Wikipedia에 그린 그림이며 2012 년에 다시 그리는 방법을 알아낼 때이 질문을 발견했습니다. PNG를 제공하지만 원래는 SVG 였습니다. 당시에는 잉크 스케이프를 사용했는데 끔찍했습니다. 그리스 문자를 추가하기 위해 SVG를 수동으로 편집해야했습니다. 왜냐하면 그 당시에는 처리 할 수 ​​없었기 때문입니다. 나는 누군가에게 그것을 추천하지 않습니다. 나는 tikz 접근 방식에 기회를 줄 것입니다.
Bkkbrad

나는 누군가에게 그것을 추천하지 않는다고 말했을 때, 나는 여러 개의 일관된 플레이트 다이어그램을 그리려고하는 사람에게는 Inkscape를 권장하지 않는다는 것을 의미했습니다.
Bkkbrad

답변:


34

나는 현재 비슷한 문제 (논문에 대한 여러 경로 다이어그램 그리기)가 있으므로 비슷한 다이어그램을 그리기 위해 이미 여기에 나열된 많은 옵션을 검토하고있었습니다. Microsoft Office 또는 Google 드로잉과 같은 벡터 그래픽을 그리기위한 나열된 리소스 중 상당수는 최소한의 노력으로 정말 멋진 경로 다이어그램을 만들 수 있습니다. 그러나 이러한 프로그램에 만족하지 못한 이유 중 하나는 각 다이어그램간에 약간의 변경 (예 : 다른 노드 추가, 레이블 변경)으로 많은 다이어그램을 생성해야했기 때문입니다. 포인트 앤 클릭 벡터 그래픽 도구는 이에 적합하지 않으며, 사소한 변경을 수행하는 데 필요한 것보다 더 많은 노력이 필요합니다. 또한 많은 도면간에 템플릿을 유지하는 것이 어려워집니다. 그래서 프로그래밍 방식으로 이러한 그래픽을 제작하는 옵션을 검토하기로 결정했습니다.

티아 스가 이미 언급했듯이 Graphviz는 그래픽을 만들고자하는 모든 종소리와 휘파람을 만드는 데 아주 가까워졌지만 두 가지 방식으로 내 요구에 미치지 못했습니다. 1) 수학 글꼴이 부족합니다 (예 : Graphviz에서 기호로 노드에 레이블을 지정할 수 있는지 확실하지 않습니다 . 2) 곡선이 그려지기 어렵습니다 ( @ Stask 's 웹 사이트의 Graphviz를 사용하여 그리기 경로 다이어그램 에 대한이 게시물 참조 ) . 이러한 제한 때문에 현재 라텍스에서 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

이제는 이미 라텍스로 논문을 작성하고 있으므로 전체 라텍스 문서를 컴파일하지 않고 이미지를 원한다면 약간의 불만이 있지만 이미지를보다 직접적으로 생성하는 약간의 해결 방법 있습니다 ( 이 질문 을 참조하십시오) 스택 오버 플로우에서). 이러한 프로젝트에 Tikz를 사용하는 데는 다른 이점이 있습니다.

  • 광범위한 문서. PGF 설명서는 일부 유사한 다이어그램을 통해 손을 보유하고있다. 일단 발이 젖 으면
  • 방대한 예제 라이브러리 는 방대한 그래픽을 생성하는 방법을 보여줍니다.
  • 마지막으로 Tex 스택 교환 사이트 는 Tikz에 대한 질문을하기에 좋은 장소입니다. 그들은 저기 멋진 그래픽을 만드는 일부 재치가 있습니다 ( 예를 들어 블로그 를 확인하십시오 ).

현재 지정된 모델에서 직접 통계 패키지 R의 다이어그램을 그리기위한 라이브러리 중 일부는 고려하지 않았지만 앞으로는 더 큰 것으로 간주 할 수 있습니다. R에서 달성 할 수있는 것에 대한 개념 증명을위한 qgraph 라이브러리의 멋진 예제 가 있습니다.


1
SEM의 경로 다이어그램을 그리는 데 관심이 있거나 Microsoft Office 제품에서 수행 할 수있는 작업에 대한 추가 아이디어가 필요한 경우 Jeremy Mile의 ppt 경로 다이어그램 파일 (참조 된 웹 페이지 하단)을 확인하는 것이 좋습니다 .
Andy W

1
훌륭한 반응은 약간의 학습 곡선이지만 TeX와 마찬가지로 장기적으로는 돈을 지불 할 것이라고 생각합니다. 감사!
C. Reed

30

Laura Dietz 는 실제로 tikz를 직접 사용할 필요없이 라텍스로 Bayesian Networks를 그릴 수있는 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 패키지를 배울 필요없이 매우 적합한 수치를 생성합니다.


1
이 도서관은 굉장합니다! 베이지안 네트워크 다이어그램 생성을 크게 단순화합니다! 공유해 주셔서 감사합니다.
fccoelho

이 소프트웨어와 aft-pgm을 사용해 보았습니다.이 소프트웨어는 다른 소프트웨어보다 사용하기가 훨씬 쉽습니다. 뛰어난 소프트웨어 제작자에게 감사합니다.
Good Will

12

당신은 http://daft-pgm.org/를 이길 수 없습니다

Daft는 matplotlib을 사용 하여 저널이나 인터넷에 게시하기 위해 완벽한 픽셀 확률 그래픽 모델 을 렌더링하는 Python 패키지입니다 . 짧은 Python 스크립트와 직관적 인 모델 작성 구문을 사용하면 지시 된 (Bayesian Networks, 지시 된 비순환 그래프) 및 지시되지 않은 (Markov random field) 모델을 설계하고 matplotlib가 지원하는 모든 형식 (PDF, PNG, EPS 및 SVG 포함)으로 저장할 수 있습니다 ).


멍청 아! 이것은 허용되는 답변이어야합니다. imho
dominik andreas

Daft는 몇 가지 단점이 있습니다. 텍스트에 맞게 노드를 자동 크기 조정하지 않고 네트워크 레이아웃을 계산하지 않습니다.
fccoelho

7

GraphViz 시도해 볼 수 있습니다.

이를 통해 텍스트 파일에서 그래프를 지정할 수 있으며 겹치는 화살표 등을 피하면서 자동으로 그려집니다. 최소한의 예제와 매뉴얼을 보려면 여기 (pdf)로 이동 하십시오 .


5

Inkscape 는 기본적으로 Adobe Illustrator의 무료 버전이며 게시 한 그림과 같이 벡터 그래픽을 수행하기위한 매우 강력한 프로그램입니다. 또한 최종 편집 / 주석 등을 수행하기위한 대부분의 통계 패키지와 함께 잘 작동합니다. 그래프로-R, SAS 등은 PDF 또는 기타 벡터 형식 (.eps 등)으로 그래프를 출력 한 다음 잉크 스케이프로 가져와 색상, 기호, 축 레이블 등을 엉망으로 만들 수 있습니다.


나는 화살표를 특수 객체로 취급하는 도구를 선호합니다. 변수를 움직일 때 화살표가 따르기를 바랍니다. Inkscape가이 작업을 수행 할 수없는 것 같습니다.
ziyuang

4

LaTeX 사용에 특별한 관심이있는 경우 LaTeXDraw 프로그램에는 라텍스 코드가 포함 된 플로우 차트를 작성하는 데 유용한 기능이 있습니다.

PSTricks 코드와 SVG를 가져 오거나 내 보내며 svg, pdf, eps, jpg, png 등을 내보낼 수 있습니다. Linux, Mac OS X 및 Windows에서 실행됩니다.


3

Dia 는 다이어그램을 그리기위한 무료 오픈 소스 프로그램입니다. 유용하다고 생각하고 시작하기가 어렵지 않습니다.


1

나는 Mac OS X에서 사용할 수있는 매우 유연한 패키지 인 Diagrammix 를 발견했다. 이것은 잘 둥근 벡터 그래픽 패키지이며 그래픽 모델에서 잘 작동한다. 상당히 저렴하고 가장자리의 모양과 방향을 개선하는 데 도움이되는 좋은 추가 기능이 있습니다.


제안 : 당신은 질문에 그래픽 모델을 재현하는 방법을 보여 줄 수 Diagrammix있습니다.
Firebug

-1

Google Docs Draw를 사용해 볼 수 있습니다. 브라우저에서 바로 원하는 것을 무료로하는 것처럼 보입니다.


나는 그것을 시도했지만 (IMHO) Inkscape의 유연성이 부족합니다.
suncoolsu



-1

SCAVIS 에는 베이지안 네트워크가 있습니다. "scavis baysian network"를 Google에 시도하십시오. 동일한 프로그램이 Python (또는 Java) 구문을 사용하여 다른 다이어그램을 그릴 수 있습니다.


-1

draw.io를 사용하고 하나 이상의 템플릿을 사용하여 이러한 아이콘을 만들 수 있습니다. SVG 또는 다른 형식을 만드는 데 도움이됩니다. 시스템에 아무것도 설치하지 않아도됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.