Can you help me achieve this plot?

enter image description here


% The main nodes
\node[minimum height=1.5cm,minimum width=2cm,text centered,draw] (a) {Traning};
\node[minimum height=1.5cm,minimum width=2cm,text centered,draw,right=2cm of a] (b) {Prediction};
% The arrow in the middle
\draw[->] (a)--(b) node[midway,above,align=center,font=\footnotesize] (mid) {Model\\Parameter};
% The ellipse node at the bottom needs `shapes' library
\node[below=1.5cm of mid,ellipse,draw] (mod) {Model};
\draw[->] (mod) -| (a); % Read https://tex.stackexchange.com/q/481195/156344
\draw[->] (mod) -| (b); %
% The outside arrows: take care of the direction of the arrow
% Read more in https://tex.stackexchange.com/q/66094/156344
\draw[<-] (a.west) -- ++ (-1,0) node[left,align=center,font=\footnotesize] {Ground\\Truth};
\draw[->] (b.east) -- ++ (1,0) node[right,font=\footnotesize] {Prediction};
\draw[<-] (a.north) -- ++ (0,1) node[above] {Observation};
\draw[<-] (b.north) -- ++ (0,1) node[above] {Observation};

enter image description here

enter image description here


The main problem with such graphs is punching in the texts... other than that all you need to do is to use fit.

efit/.style={ellipse,draw,thick,minimum width=3cm,minimum
\path  node (F) {Features} 
  node[efit=(F)] (EF){} coordinate[left=2cm of EF] (cL)  
  node[right=3.5cm of EF,draw=vio,dashed,ellipse] (M) {Model}
  node[efit=(M)] (FM){} coordinate[right=2cm of FM] (cR)
  coordinate[above=6mm of FM] (cC) 
  coordinate[below=6mm of FM] (cD) 
  node[below=2cm of M,vio] (L) {Learning\\Algorithm}
  node[efit=(L),vio] (FL){} coordinate[left=2.5cm of FL] (cB)
  coordinate[below=6mm of FL] (cA);
 \draw[thick,->] (cL) -- node[above] {Domain} node[below] {obects}(EF);
 \draw[thick,->] (FM) -- node[above] (O){Output} (cR);
 \draw[thick,->] (EF) -- node[above] (D){Data} (FM);
 \draw[thick,->,vio] (cB) -- node[above] {Training data} (FL);
 \draw[thick,->,vio] (FL) -- (M);
 \begin{scope}[on background layer]
  \node[fit=(cB)(FL)(FM)(cA),densely dashed,draw,vio,
  label={[anchor=south west,vio]south west:\emph{Learning  problem}}]{};
  \node[fit=(O)(D)(cC)(cD),densely dashed,draw,red,
  label={[anchor=north west,red]north west:\emph{Task}}]{};

enter image description here

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.