from matplotlib import rc rc('font', family='serif', size=10) rc('text', usetex=True) import daft first = 1 second = 2.25 third = 3.5 pgm = daft.PGM([5, 4]) pgm.add_node(daft.Node('source', r"$X_0$", 1, first, observed=True)) pgm.add_node(daft.Node('first', r"$X_1$", 2, first, observed=True)) pgm.add_node(daft.Node('second', r"$X_2$", 3, first, observed=True)) pgm.add_node(daft.Node('last', r"$\cdots$", 4, first, plot_params={"ec": "none"})) pgm.add_node(daft.Node('theta', r"$\Theta_{ij}$", 3, second)) pgm.add_node(daft.Node('phi', r"$\phi$", 1, second, fixed=True)) pgm.add_node(daft.Node('mu', r"$\mu$", 2.6, third)) pgm.add_node(daft.Node('sigma', r"$\sigma$", 3.4, third)) pgm.add_edge("source", "first") pgm.add_edge("first", "second") pgm.add_edge("second", "last") pgm.add_edge("phi", "source") pgm.add_edge("theta", "first") pgm.add_edge("theta", "second") pgm.add_edge("theta", "last") pgm.add_edge("mu", "theta") pgm.add_edge("sigma", "theta") pgm.add_plate(daft.Plate([.3, .3, 4.3, 1.2], label=r"$c=1, \cdots, C$")) pgm.add_plate(daft.Plate([2, 1.7, 2, 1.2], label=r"$N \times N$")) pgm.render() pgm.figure.savefig("graphical.pdf")