Wie fügt man einem Knoten im Bayesnet eine Selbstschleife hinzu?

Wie fügt man einem Knoten im Bayesnet eine Selbstschleife hinzu?

Es wurde bereits in vielen Fragen gefragt, wie man einem Diagramm, das einem Finite-State-Machine-ähnlichen Diagramm ähnelt, eine Schleife hinzufügt, aber ich kann keine Antwort speziell zu finden bayesnet. Kann mir jemand sagen, wie man einem Knoten in eine Selbstschleife hinzufügt bayesnet?

Etwas wie das: Wie zeichne ich eine Selbstschleife und beschrifte auch die Graphkanten in Tikz?

Bearbeiten: Beispielcode hinzugefügt. Ein Problem ist, dass die Schleife und der untere Text der Platte nicht beide auf die Platte passen.

    \begin{figure}
        \centering
        \tikz{
        \node[latent] (b_t) {$b_t$} ;
        \node[latent, right=of b_t] (t_t)
        {$t_t$} ;
        \node[obs, right=of t_t] (o_t) {$o_t$} ;
        % \edge {b_t} {b_t} ;
        \edge {b_t} {t_t} ;
        \edge {t_t} {o_t} ;
        \path (b_t) edge [loop above] (b_t);
        \plate[inner sep=0.225cm, yshift=.25cm] {plate1} {(b_t) (t_t) (o_t) (b_t')} {T}; %
    }
    \end{figure}

Bildbeschreibung hier eingeben

Antwort1

Die Schleifen funktionieren wie immer. Ich habe einfach einezufälliges Beispielund eine Schleife hinzugefügt.

\documentclass[tikz,border=3mm]{standalone} 
\usetikzlibrary{arrows.meta,bending}
\usetikzlibrary{bayesnet}

\begin{document}

\begin{tikzpicture}[>={Stealth[bend]}]
% nodes
 \node[obs] (x) {$x$};%
 \node[latent,above=of x,xshift=-1cm,path picture={\fill[gray!25] (path picture bounding box.south) rectangle (path picture bounding box.north west);}] 
(y) {$y$}; %
 \node[latent,above=of x,xshift=1cm] (z) {$z$}; %
 \path (z) edge [loop above] node (z') {$Z$} (z);

% plate
\plate[inner sep=.25cm,yshift=.2cm,transform shape=false]{plate1}{(x)(y)(z)(z')}{$N$}; %

% edges
 \edge {y,z} {x}  
\end{tikzpicture}

\end{document}

Bildbeschreibung hier eingeben

NACHTRAG: Was den Code aus Ihrem Update betrifft: Fügen Sie eine Hilfskoordinate für die Anpassung hinzu.

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{bayesnet}
\begin{document}
\begin{figure}
        \centering
        \begin{tikzpicture}
        \node[latent] (b_t) {$b_t$} ;
        \node[latent, right=of b_t] (t_t)
        {$t_t$} ;
        \node[obs, right=of t_t] (o_t) {$o_t$} ;
        % \edge {b_t} {b_t} ;
        \edge {b_t} {t_t} ;
        \edge {t_t} {o_t} ;
        \path (b_t) edge [loop above] coordinate[midway](aux) (b_t);
        \plate[inner sep=0.225cm] {plate1}
         {(b_t) (t_t) (o_t) (aux)} {T}; %
\end{tikzpicture}
\caption{Adding an auxiliary coordinate.}
\end{figure}

\begin{figure}
\centering
 \begin{tikzpicture}
  \begin{scope}[local bounding box=pft]
        \node[latent] (b_t) {$b_t$} ;
        \node[latent, right=of b_t] (t_t)
        {$t_t$} ;
        \node[obs, right=of t_t] (o_t) {$o_t$} ;
        % \edge {b_t} {b_t} ;
        \edge {b_t} {t_t} ;
        \edge {t_t} {o_t} ;
        \path (b_t) edge [loop above] (b_t);
  \end{scope}       
  \plate[inner sep=0.225cm] {plate1} {(pft)} {T}; %
\end{tikzpicture}
\caption{Using a \texttt{local bounding box} node. (Note that this will probably improve
at a given point when the \texttt{bbox} library gets improved. Currently
development is frozen.)}
\end{figure}
\end{document}

Bildbeschreibung hier eingeben

verwandte Informationen