pymc.model.core.Model.to_graphviz#
- Model.to_graphviz(*, var_names=None, formatting='plain', save=None, figsize=None, dpi=300)[source]#
Produce a graphviz Digraph from a PyMC model.
- Requires graphviz, which may be installed most easily with
conda install -c conda-forge python-graphviz
Alternatively, you may install the graphviz binaries yourself, and then pip install graphviz to get the python bindings. See http://graphviz.readthedocs.io/en/stable/manual.html for more information.
- Parameters:
- var_namesiterable of
variable
names
, optional Subset of variables to be plotted that identify a subgraph with respect to the entire model graph
- formatting
str
, optional one of { “plain” }
- save
str
, optional If provided, an image of the graph will be saved to this location. The format is inferred from the file extension.
- figsize
tuple
[int
,int
], optional Width and height of the figure in inches. If not provided, uses the default figure size. It only affect the size of the saved figure.
- dpi
int
, optional Dots per inch. It only affects the resolution of the saved figure. The default is 300.
- var_namesiterable of
Examples
How to plot the graph of the model.
import numpy as np from pymc import HalfCauchy, Model, Normal J = 8 y = np.array([28, 8, -3, 7, -1, 1, 18, 12]) sigma = np.array([15, 10, 16, 11, 9, 11, 10, 18]) with Model() as schools: eta = Normal("eta", 0, 1, shape=J) mu = Normal("mu", 0, sigma=1e6) tau = HalfCauchy("tau", 25) theta = mu + tau * eta obs = Normal("obs", theta, sigma=sigma, observed=y) schools.to_graphviz()
Note that this code automatically plots the graph if executed in a Jupyter notebook. If executed non-interactively, such as in a script or python console, the graph needs to be rendered explicitly:
# creates the file `schools.pdf` schools.to_graphviz().render("schools")