Sto cercando un software [gratuito] in grado di produrre modelli grafici dall'aspetto gradevole, ad es
Tutti i suggerimenti sarebbero apprezzati.
Sto cercando un software [gratuito] in grado di produrre modelli grafici dall'aspetto gradevole, ad es
Tutti i suggerimenti sarebbero apprezzati.
Risposte:
Al momento ho un problema simile (disegno di diagrammi di percorsi multipli per la mia tesi), quindi stavo esaminando molte delle opzioni elencate qui già per disegnare diagrammi simili. Molte delle risorse elencate per disegnare tali grafici vettoriali (come in Microsoft Office o Google Draw) possono produrre diagrammi di percorso davvero piacevoli, con uno sforzo abbastanza minimo. Ma una parte del motivo per cui non ero soddisfatto di tali programmi è che dovevo produrre molti diagrammi, con solo lievi cambiamenti tra ogni diagramma (ad esempio aggiungere un altro nodo, cambiare un'etichetta). Gli strumenti di grafica vettoriale point and click non sono adatti a questo scopo e richiedono uno sforzo maggiore di quanto sia necessario per apportare modifiche minori. Inoltre diventa difficile mantenere un modello tra molti disegni. Così, ho deciso di esaminare le opzioni per produrre tale grafica programmaticamente.
Graphviz, come già accennato da thias, si avvicinò molto ad avere tutte le campane e i fischi che desideravo per la mia grafica (così come il codice abbastanza semplice per produrli), ma non soddisfaceva le mie esigenze in due modi; 1) mancano i caratteri matematici (ad esempio, non sono sicuro che si possa etichettare un nodo con il simbolo in Graphviz, 2) le linee curve sono difficili da disegnare (vedere questo post sul disegno di diagrammi di percorso usando Graphviz sul sito Web di @ Stask) . A causa di queste limitazioni, al momento ho deciso (molto felicemente) di usare la libreria di disegni Tikz / pgf in Latex. Un esempio è al di sotto del mio tentativo di riprodurre la tua grafica (il più grande dolore erano le etichette negli angoli in basso a destra delle scatole!);
\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
Ora sto già scrivendo la mia tesi in Latex, quindi se vuoi solo l'immagine senza dover compilare un intero documento in Latex è leggermente scomodo, ma ci sono alcune soluzioni secondarie per produrre un'immagine più direttamente (vedi questa domanda sopra su StackOverflow). Ci sono molti altri vantaggi nell'usare Tikz per un tale progetto
Al momento non ho preso in considerazione alcune delle librerie per disegnare i diagrammi nel pacchetto statistico R direttamente dai modelli specificati, ma in futuro potrò considerarli in misura maggiore. Ci sono alcuni begli esempi della libreria qgraph per una prova del concetto di ciò che può essere realizzato in R.
Laura Dietz ha scritto una libreria molto bella per tikz che consente di disegnare reti bayesiane in lattice senza la necessità di utilizzare direttamente tikz.
Per dimostrare questo pacchetto, vedere il seguente esempio per questa domanda:
\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
Sebbene non sia esattamente lo stesso, trasmette certamente le stesse informazioni e potrebbe essere modificato per adattarsi meglio ai requisiti specifici. Questo pacchetto genera cifre molto accettabili senza la necessità di imparare l'intero pacchetto tikz.
Non puoi battere http://daft-pgm.org/
Daft è un pacchetto Python che utilizza matplotlib per il rendering di modelli grafici probabilistici perfetti per i pixel per la pubblicazione su un giornale o su Internet. Con un breve script Python e una sintassi intuitiva per la creazione di modelli è possibile progettare modelli diretti (reti bayesiane, grafici aciclici diretti) e non indirizzati (campi casuali di Markov) e salvarli in qualsiasi formato supportato da matplotlib (inclusi PDF, PNG, EPS e SVG ).
Inkscape è essenzialmente una versione gratuita di Adobe Illustrator ed è un programma molto potente per realizzare grafica vettoriale, come l'immagine che hai pubblicato. Funziona anche piuttosto bene con la maggior parte dei pacchetti statistici per apportare modifiche finali / annotazioni / ecc. ai grafici: R, SAS, ecc. possono generare un grafico in formato PDF o altro formato vettoriale (come .eps), quindi è possibile portarlo su Inkscape per scherzare con colori, simboli, etichette degli assi ecc.
Se hai un interesse particolare nell'uso di LaTeX, il programma LaTeXDraw ha delle belle funzionalità per la creazione di diagrammi di flusso con codice in lattice incorporato.
Importa / esporta codice PSTricks e SVG e può anche esportare svg, pdf, eps, jpg, png, ecc. Funziona su Linux, Mac OS X e Windows.
Ho trovato Diagrammix come un pacchetto molto flessibile, disponibile per Mac OS X. È un pacchetto di grafica vettoriale ben arrotondato e fa un buon lavoro su modelli grafici. È abbastanza economico e ha alcuni buoni componenti aggiuntivi che hanno contribuito a migliorare le forme e le direzioni dei bordi.
Diagrammix
come hanno fatto alcune risposte.
Puoi provare Google Docs Draw . Sembra che farà ciò che vuoi gratuitamente, direttamente nel tuo browser.
Puoi scegliere PlantUML . È open source e abbastanza flessibile.
Puoi anche usare la webapp di Lucidchart .
L'ho usato in passato per disegnare grafici ed è gratuito.