Perangkat lunak untuk menggambar jaringan bayesian (model grafis)


50

Saya mencari perangkat lunak [gratis] yang dapat menghasilkan model grafis yang terlihat bagus, misalnya

masukkan deskripsi gambar di sini

Setiap saran akan dihargai.


1
Maksud Anda menggambar seperti ini yang Anda tautkan atau menggambar model yang siap dari beberapa perangkat lunak lain? Jika yang terakhir, dari mana?

Menggambar gambar menyukai yang saya tautkan
C. Reed

2
Itu dibuat secara manual di Inkscape , sehingga Anda dapat mencoba melakukan hal yang sama.

10
Itu luar biasa - gambar yang Anda berikan adalah gambar yang saya buat untuk Wikipedia pada tahun 2008, dan saya menemukan pertanyaan ini ketika saya mencari cara untuk menggambarnya kembali pada tahun 2012. Anda memberikan PNG, tetapi pada awalnya itu adalah SVG . Saat itu, saya menggunakan Inkscape dan itu mengerikan - saya harus tangan mengedit SVG untuk menambahkan huruf-huruf Yunani, karena itu tidak bisa menanganinya saat itu (mungkin masih tidak bisa). Saya tidak merekomendasikannya untuk siapa pun. Saya akan mencoba pendekatan tikz.
Bkkbrad

Ketika saya mengatakan saya tidak merekomendasikannya untuk siapa pun, maksud saya saya tidak merekomendasikan Inkscape bagi siapa pun yang mencoba menggambar beberapa diagram piring yang konsisten.
Bkkbrad

Jawaban:


34

Saat ini saya memiliki masalah yang sama (menggambar beberapa diagram jalur untuk disertasi saya), dan jadi saya sedang memeriksa banyak opsi yang terdaftar di sini sudah untuk menggambar diagram serupa. Banyak sumber daya yang terdaftar untuk menggambar grafik vektor tersebut (seperti di microsoft office atau gambar google) dapat menghasilkan diagram jalur yang sangat bagus, dengan upaya yang cukup minim. Tetapi, bagian dari alasan saya tidak puas dengan program-program seperti itu adalah bahwa saya perlu menghasilkan banyak diagram, dengan hanya sedikit perubahan di antara masing-masing diagram (misalnya, tambahkan simpul lain, ubah label). Alat grafik titik dan klik vektor tidak cocok untuk ini, dan membutuhkan lebih banyak usaha daripada yang diperlukan untuk membuat perubahan kecil. Juga menjadi sulit untuk mempertahankan template di antara banyak gambar. Jadi, saya memutuskan untuk memeriksa opsi untuk menghasilkan grafik seperti itu secara terprogram.

β

masukkan deskripsi gambar di sini

\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

Sekarang, saya sudah menulis disertasi saya dalam Lateks, jadi jika Anda hanya ingin gambar tanpa harus mengompilasi seluruh dokumen Lateks itu sedikit tidak nyaman, tetapi ada beberapa solusi yang cukup kecil untuk menghasilkan gambar lebih langsung (lihat pertanyaan ini di atas pada stackoverflow). Ada sejumlah manfaat lain untuk menggunakan Tikz untuk proyek semacam itu

  • Dokumentasi yang luas. The pengguna PGF memegang tangan Anda melalui membuat beberapa diagram yang sama. Dan begitu kakimu basah ...
  • Ada banyak perpustakaan contoh untuk mendemonstrasikan cara menghasilkan beragam grafik.
  • Dan akhirnya, situs pertukaran tumpukan Tex adalah tempat yang baik untuk mengajukan pertanyaan tentang Tikz. Mereka memiliki beberapa ahli di sana membuat beberapa grafik yang cukup mewah (lihat blog mereka untuk beberapa contoh).

Saat ini saya belum mempertimbangkan beberapa perpustakaan untuk menggambar diagram dalam paket statistik R langsung dari model yang ditentukan, tetapi di masa depan saya dapat mempertimbangkan mereka untuk tingkat yang lebih besar. Ada beberapa contoh yang bagus dari perpustakaan qgraph untuk bukti konsep tentang apa yang dapat dicapai dalam R.


1
Bagi mereka yang tertarik dalam menggambar diagram jalur untuk SEM (atau untuk beberapa ide lain tentang apa yang dapat dicapai dalam produk Microsoft Office), saya sarankan Anda memeriksa file ppt diagram jalur Jeremy Mile (di bagian bawah halaman web yang direferensikan).
Andy W

1
Respons yang bagus, ini sedikit kurva pembelajaran, tetapi seperti apa pun TeX, saya pikir itu akan membuahkan hasil dalam jangka panjang. Terima kasih!
C. Reed

30

Laura Dietz telah menulis perpustakaan yang sangat bagus untuk tikz yang memungkinkan menggambar Bayesian Networks dalam lateks tanpa harus menggunakan tikz secara langsung.

Untuk menunjukkan paket ini, lihat contoh berikut untuk pertanyaan ini:

\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

masukkan deskripsi gambar di sini

Meskipun tidak persis sama, itu pasti menyampaikan informasi yang sama dan dapat diubah agar lebih sesuai dengan persyaratan spesifik. Paket ini menghasilkan angka yang sangat dapat diterima tanpa perlu mempelajari paket tikz lengkap.


1
Perpustakaan ini luar biasa! Sangat menyederhanakan pembuatan diagram jaringan bayesian! Terima kasih telah berbagi.
fccoelho

Saya mencoba perangkat lunak ini dan aft-pgm, yang satu ini jauh lebih mudah digunakan daripada yang lain. Terima kasih penulis untuk perangkat lunak yang sangat baik.
Good Will

12

Anda tidak bisa mengalahkan http://daft-pgm.org/

Daft adalah paket Python yang menggunakan matplotlib untuk membuat model grafis probabilistik pixel-sempurna untuk publikasi dalam jurnal atau di internet. Dengan skrip Python pendek dan sintaksis pembangun model yang intuitif, Anda dapat merancang model diarahkan (Bayesian Networks, grafik asiklik langsung) dan tidak diarahkan (bidang acak Markov) dan menyimpannya dalam format apa pun yang didukung matplotlib (termasuk PDF, PNG, EPS, dan SVG ).


bodoh mengagumkan! ini seharusnya jawaban yang diterima imho
dominik andreas

Daft memiliki beberapa kelemahan: Itu tidak autoscale node agar sesuai dengan teks, tidak menghitung tata letak jaringan, dll. Itu sudah cukup untuk mematikan saya.
fccoelho

7

Anda dapat mencoba GraphViz .

Ini memungkinkan Anda untuk menentukan grafik dalam file teks dan itu akan ditarik secara otomatis (menghindari panah yang tumpang tindih dan sebagainya). Buka di sini (pdf) untuk contoh minimal dan manual.


5

Inkscape pada dasarnya adalah versi gratis dari Adobe Illustrator, dan merupakan program yang sangat kuat untuk melakukan grafik vektor, seperti gambar yang Anda posting. Ini juga berfungsi dengan baik dengan sebagian besar paket statistik untuk melakukan pengeditan / anotasi akhir / dll. ke grafik - R, SAS, dll. dapat menampilkan grafik sebagai PDF atau format vektor lainnya (seperti .eps), dan kemudian Anda dapat membawanya ke Inkscape untuk dipusingkan dengan warna, simbol, label sumbu dll.


Saya lebih suka alat yang memperlakukan panah sebagai objek khusus: ketika saya memindahkan variabel, saya berharap panah akan mengikuti. Sepertinya Inkscape tidak dapat melakukan ini.
ziyuang

4

Jika Anda memiliki minat khusus dalam menggunakan LaTeX, program LaTeXDraw memiliki fungsionalitas yang bagus untuk membuat bagan alur dengan kode lateks tertanam.

Ini mengimpor / mengekspor kode PSTricks dan SVG, dan juga dapat mengekspor svg, pdf, eps, jpg, png, dll. Ini berjalan di Linux, Mac OS X, dan Windows.


3

Dia adalah program open source gratis untuk menggambar diagram. Saya merasa bermanfaat dan tidak terlalu sulit untuk memulai.


1

Saya telah menemukan Diagrammix sebagai paket yang sangat fleksibel, tersedia untuk Mac OS X. Ini adalah paket grafik vektor yang lengkap dan melakukan pekerjaan yang baik pada model grafis. Ini cukup murah dan memiliki beberapa tambahan yang bagus yang telah membantu meningkatkan bentuk dan arah tepi.


Saran: Anda dapat menunjukkan cara mereproduksi model grafis dalam pertanyaan dengan Diagrammixseperti yang dilakukan beberapa jawaban.
Firebug

-1

Anda dapat mencoba Google Documents Draw . Sepertinya itu akan melakukan apa yang Anda inginkan secara gratis, tepat di browser Anda.


Saya sudah mencobanya, tetapi (IMHO) tidak memiliki fleksibilitas Inkscape.
suncoolsu


-1

Anda juga dapat menggunakan aplikasi web Lucidchart .

Saya telah menggunakannya di masa lalu untuk menggambar grafik dan gratis.


-1

SCAVIS memiliki jaringan Bayesian. Coba ke google "jaringan scavis baysian". Program yang sama dapat menggambar diagram yang berbeda menggunakan sintaks Python (atau Java).


-1

Anda dapat menggunakan draw.io dan menggunakan satu atau banyak templatnya untuk membuat ikon-ikon ini. Ini membantu Anda membuat SVG atau format lainnya. dan tidak mengharuskan Anda untuk menginstal apa pun di sistem Anda.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.