Export and visualize Graphical models and Potentials (png, pdf)

pyAgrum.lib.image aims to graphically export models and inference using pydot (and then graphviz).

For more details, see this notebook.

bn2graph_test.png
 1import pyAgrum as gum
 2from pyAgrum.lib.image as gumimage
 3
 4bn = gum.fastBN("a->b->d;a->c->d[3]->e;f->b")
 5gumimage.export(bn,"out/test_export.png",
 6                nodeColor={'a': 1,
 7                           'b': 0.3,
 8                           'c': 0.4,
 9                           'd': 0.1,
10                           'e': 0.2,
11                           'f': 0.5},
12                arcColor={(0, 1): 0.2,
13                          (1, 2): 0.5},
14                arcWidth={(0, 3): 0.4,
15                          (3, 2): 0.5,
16                          (2,4) :0.6})

Visualization of models and inference

pyAgrum.lib.image.export(model, filename=None, **kwargs)

export the graphical representation of the model in filename (png, pdf,etc.)

Parameters:
  • model (pyAgrum.GraphicalModel) – the model to show (pyAgrum.BayesNet, pyAgrum.MarkovRandomField, pyAgrum.InfluenceDiagram or pyAgrum.Potential)

  • filename (str) – the name of the resulting file (suffix in [‘pdf’, ‘png’, ‘fig’, ‘jpg’, ‘svg’, ‘ps’]). If filename is None, the result is a np.array ready to be used with imshow().

Note

Model can also just possess a method toDot() or even be a simple string in dot syntax.

pyAgrum.lib.image.exportInference(model, filename=None, **kwargs)

the graphical representation of an inference in a notebook

Parameters:
  • model (pyAgrum:GraphicalModel) – the model in which to infer (pyAgrum.BayesNet, pyAgrum.MarkovRandomField or pyAgrum.InfluenceDiagram)

  • filename (str) – the name of the resulting file (suffix in [‘pdf’, ‘png’, ‘ps’]). If filename is None, the result is a np.array ready to be used with imshow().

  • engine (pyAgrum.Inference) – inference algorithm used. If None, gum.LazyPropagation will be used for BayesNet,gum.ShaferShenoy for gum.MarkovRandomField and gum.ShaferShenoyLIMIDInference for gum.InfluenceDiagram.

  • evs (Dict[str,str|int]) – map of evidence

  • targets (Set[str|int]) – set of targets

  • size (str) – size of the rendered graph

  • nodeColor (Dict[int,float]) – a nodeMap of values (between 0 and 1) to be shown as color of nodes (with special colors for 0 and 1)

  • factorColor (Dict[int,float]) – a nodeMap of values (between 0 and 1) to be shown as color of factors (in MarkovRandomField representation)

  • arcWidth (Dict[(int,int),float]) – a arcMap of values to be shown as width of arcs

  • arcColor (Dict[(int,int),float]) – a arcMap of values (between 0 and 1) to be shown as color of arcs

  • cmap (matplotlib.colors.ColorMap) – color map to show the color of nodes and arcs

  • cmapArc (matplotlib.colors.ColorMap) – color map to show the vals of Arcs.

  • graph (pyAgrum.Graph) – only shows nodes that have their id in the graph (and not in the whole BN)

  • view (str) – graph | factorgraph | None (default) for Markov random field

Returns:

the desired representation of the inference

Return type:

str|dot.Dot