Logo
pyAgrum 1.8.1 on Jupyter

Tutorials

  • ▶ Tutorial
    • ▷ Tutorial
    • ▷ Tutorial2
  • ▶ Examples
    • ▷ Asthma
    • ▷ Kaggle Titanic
    • ▷ Naive Credit Default Modeling
    • ▷ Causality And Learning
    • ▷ Sensitivity Analysis Using Credal Networks
    • ▷ Quasi Continuous
    • ▷ Parameters Learning With Pandas
    • ▷ Bayesian Beta Coin
  • ▶ Models
    • ▷ Influence Diagram
    • ▷ Dynamic Bn
    • ▷ Markov Random Field
    • ▷ Credal Networks
    • ▷ O3PRM
  • ▶ Learning
    • ▷ Structural Learning
    • ▷ Learning Classifier
    • ▷ Learning And Essential Graphs
    • ▷ Dirichlet Prior And Weigthed Database
    • ▷ Parametric Em
    • ▷ Chi2 And Scores From Bn Learner
  • ▶ Inference
    • ▷ Graphical Inference
    • ▷ Relevance Reasoning
    • ▷ Lazy Propagation Advanced Features
    • ▷ Approximate Inference
    • ▷ Sampling Inference
  • ▶ Classifier
    • ▷ Learning
    • ▷ Discretizer
    • ▷ Compare Classifiers With Sklearn
    • ▷ Cross Validation
    • ▷ Binary And Nary Classifier From Bn
  • ▶ Causality
    • ▷ Tobacco
    • ▷ Simpson Paradox
    • ▷ Multinomial Simpson Paradox
    • ▷ Do Calculus Examples
    • ▷ Counterfactual
  • ▶ Applications
    • ▷ Ipywidgets
  • ▶ Tools
    • ▷ Potentials
    • ▷ Aggregators
    • ▷ Explain
    • ▷ Kl For BNs
    • ▷ Comparing Bn
    • ▷ Colouring And Exporting BNs
    • ▷ Config For PyAgrum
pyAgrum

Coloring and exporting graphical models as image (pdf, png)¶

Creative Commons License aGrUM interactive online version
In [1]:
from pylab import *
import matplotlib.pyplot as plt
In [2]:
import pyAgrum as gum
import pyAgrum.lib.notebook as gnb
In [3]:
bn=gum.fastBN("a->b->c->d;b->e->d->f;g->c")
gnb.flow.row(bn,gnb.getInference(bn))
pyAgrum▶Tools▷Colouring And Exporting BNsG pyAgrum▶Tools▷Colouring And Exporting BNsa a pyAgrum▶Tools▷Colouring And Exporting BNsb b pyAgrum▶Tools▷Colouring And Exporting BNsa->b pyAgrum▶Tools▷Colouring And Exporting BNsd d pyAgrum▶Tools▷Colouring And Exporting BNsf f pyAgrum▶Tools▷Colouring And Exporting BNsd->f pyAgrum▶Tools▷Colouring And Exporting BNsc c pyAgrum▶Tools▷Colouring And Exporting BNsc->d pyAgrum▶Tools▷Colouring And Exporting BNsg g pyAgrum▶Tools▷Colouring And Exporting BNsg->c pyAgrum▶Tools▷Colouring And Exporting BNsb->c pyAgrum▶Tools▷Colouring And Exporting BNse e pyAgrum▶Tools▷Colouring And Exporting BNsb->e pyAgrum▶Tools▷Colouring And Exporting BNse->d
pyAgrum▶Tools▷Colouring And Exporting BNsstructs Inference in   0.75ms pyAgrum▶Tools▷Colouring And Exporting BNsa 2023-05-24T15:21:06.026140 image/svg+xml Matplotlib v3.7.1, https://matplotlib.org/ pyAgrum▶Tools▷Colouring And Exporting BNsb 2023-05-24T15:21:06.085914 image/svg+xml Matplotlib v3.7.1, https://matplotlib.org/ pyAgrum▶Tools▷Colouring And Exporting BNsa->b pyAgrum▶Tools▷Colouring And Exporting BNsc 2023-05-24T15:21:06.144542 image/svg+xml Matplotlib v3.7.1, https://matplotlib.org/ pyAgrum▶Tools▷Colouring And Exporting BNsb->c pyAgrum▶Tools▷Colouring And Exporting BNse 2023-05-24T15:21:06.305918 image/svg+xml Matplotlib v3.7.1, https://matplotlib.org/ pyAgrum▶Tools▷Colouring And Exporting BNsb->e pyAgrum▶Tools▷Colouring And Exporting BNsd 2023-05-24T15:21:06.246790 image/svg+xml Matplotlib v3.7.1, https://matplotlib.org/ pyAgrum▶Tools▷Colouring And Exporting BNsc->d pyAgrum▶Tools▷Colouring And Exporting BNsf 2023-05-24T15:21:06.363275 image/svg+xml Matplotlib v3.7.1, https://matplotlib.org/ pyAgrum▶Tools▷Colouring And Exporting BNsd->f pyAgrum▶Tools▷Colouring And Exporting BNse->d pyAgrum▶Tools▷Colouring And Exporting BNsg 2023-05-24T15:21:06.421713 image/svg+xml Matplotlib v3.7.1, https://matplotlib.org/ pyAgrum▶Tools▷Colouring And Exporting BNsg->c

customizing colours and width for model and inference¶

In [4]:
def nodevalue(n):
    return 0.5 if n in "aeiou" else 0.7
def arcvalue(a):
    return (10-a[0])*a[1]
def arcvalue2(a):
    return (a[0]+a[1]+5)/22
gnb.showBN(bn,
           nodeColor={n:nodevalue(n) for n in bn.names()},
           arcWidth={a:arcvalue(a) for a in bn.arcs()},
           arcLabel={a:f"v={arcvalue(a):02d}" for a in bn.arcs()},
           arcColor={a:arcvalue2(a) for a in bn.arcs()})
pyAgrum▶Tools▷Colouring And Exporting BNsG pyAgrum▶Tools▷Colouring And Exporting BNsa a pyAgrum▶Tools▷Colouring And Exporting BNsb b pyAgrum▶Tools▷Colouring And Exporting BNsa->b v=10 pyAgrum▶Tools▷Colouring And Exporting BNsd d pyAgrum▶Tools▷Colouring And Exporting BNsf f pyAgrum▶Tools▷Colouring And Exporting BNsd->f v=35 pyAgrum▶Tools▷Colouring And Exporting BNsc c pyAgrum▶Tools▷Colouring And Exporting BNsc->d v=24 pyAgrum▶Tools▷Colouring And Exporting BNsg g pyAgrum▶Tools▷Colouring And Exporting BNsg->c v=08 pyAgrum▶Tools▷Colouring And Exporting BNsb->c v=18 pyAgrum▶Tools▷Colouring And Exporting BNse e pyAgrum▶Tools▷Colouring And Exporting BNsb->e v=36 pyAgrum▶Tools▷Colouring And Exporting BNse->d v=18
In [5]:
gnb.showInference(bn,
           targets={"a","g","f","b"},
           evs={'e':0},
           nodeColor={n:nodevalue(n) for n in bn.names()},
           arcWidth={a:arcvalue(a) for a in bn.arcs()})
pyAgrum▶Tools▷Colouring And Exporting BNsstructs Inference in   1.11ms pyAgrum▶Tools▷Colouring And Exporting BNsa <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <cc:Work> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> <dc:date>2023-05-24T15:21:06.788478</dc:date> <dc:format>image/svg+xml</dc:format> <dc:creator> <cc:Agent> <dc:title>Matplotlib v3.7.1, https://matplotlib.org/</dc:title> </cc:Agent> </dc:creator> </cc:Work> </rdf:RDF> <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style> pyAgrum▶Tools▷Colouring And Exporting BNsb <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <cc:Work> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> <dc:date>2023-05-24T15:21:06.848179</dc:date> <dc:format>image/svg+xml</dc:format> <dc:creator> <cc:Agent> <dc:title>Matplotlib v3.7.1, https://matplotlib.org/</dc:title> </cc:Agent> </dc:creator> </cc:Work> </rdf:RDF> <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style> pyAgrum▶Tools▷Colouring And Exporting BNsa->b pyAgrum▶Tools▷Colouring And Exporting BNsc c pyAgrum▶Tools▷Colouring And Exporting BNsb->c pyAgrum▶Tools▷Colouring And Exporting BNse e pyAgrum▶Tools▷Colouring And Exporting BNsb->e pyAgrum▶Tools▷Colouring And Exporting BNsd d pyAgrum▶Tools▷Colouring And Exporting BNsc->d pyAgrum▶Tools▷Colouring And Exporting BNsf <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <cc:Work> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> <dc:date>2023-05-24T15:21:06.966973</dc:date> <dc:format>image/svg+xml</dc:format> <dc:creator> <cc:Agent> <dc:title>Matplotlib v3.7.1, https://matplotlib.org/</dc:title> </cc:Agent> </dc:creator> </cc:Work> </rdf:RDF> <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style> pyAgrum▶Tools▷Colouring And Exporting BNsd->f pyAgrum▶Tools▷Colouring And Exporting BNse->d pyAgrum▶Tools▷Colouring And Exporting BNsg <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <cc:Work> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> <dc:date>2023-05-24T15:21:07.026074</dc:date> <dc:format>image/svg+xml</dc:format> <dc:creator> <cc:Agent> <dc:title>Matplotlib v3.7.1, https://matplotlib.org/</dc:title> </cc:Agent> </dc:creator> </cc:Work> </rdf:RDF> <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style> pyAgrum▶Tools▷Colouring And Exporting BNsg->c
In [6]:
gnb.flow.row(gnb.getBN(bn,
                       nodeColor={n:nodevalue(n) for n in bn.names()},
                       arcWidth={a:arcvalue(a) for a in bn.arcs()}),
             gnb.getInference(bn,
                              nodeColor={n:nodevalue(n) for n in bn.names()},
                              arcWidth={a:arcvalue(a) for a in bn.arcs()})
            )
pyAgrum▶Tools▷Colouring And Exporting BNsG pyAgrum▶Tools▷Colouring And Exporting BNsa a pyAgrum▶Tools▷Colouring And Exporting BNsb b pyAgrum▶Tools▷Colouring And Exporting BNsa->b pyAgrum▶Tools▷Colouring And Exporting BNsd d pyAgrum▶Tools▷Colouring And Exporting BNsf f pyAgrum▶Tools▷Colouring And Exporting BNsd->f pyAgrum▶Tools▷Colouring And Exporting BNsc c pyAgrum▶Tools▷Colouring And Exporting BNsc->d pyAgrum▶Tools▷Colouring And Exporting BNsg g pyAgrum▶Tools▷Colouring And Exporting BNsg->c pyAgrum▶Tools▷Colouring And Exporting BNsb->c pyAgrum▶Tools▷Colouring And Exporting BNse e pyAgrum▶Tools▷Colouring And Exporting BNsb->e pyAgrum▶Tools▷Colouring And Exporting BNse->d
pyAgrum▶Tools▷Colouring And Exporting BNsstructs Inference in   1.32ms pyAgrum▶Tools▷Colouring And Exporting BNsa 2023-05-24T15:21:07.300575 image/svg+xml Matplotlib v3.7.1, https://matplotlib.org/ pyAgrum▶Tools▷Colouring And Exporting BNsb 2023-05-24T15:21:07.362106 image/svg+xml Matplotlib v3.7.1, https://matplotlib.org/ pyAgrum▶Tools▷Colouring And Exporting BNsa->b pyAgrum▶Tools▷Colouring And Exporting BNsc 2023-05-24T15:21:07.423856 image/svg+xml Matplotlib v3.7.1, https://matplotlib.org/ pyAgrum▶Tools▷Colouring And Exporting BNsb->c pyAgrum▶Tools▷Colouring And Exporting BNse 2023-05-24T15:21:07.544987 image/svg+xml Matplotlib v3.7.1, https://matplotlib.org/ pyAgrum▶Tools▷Colouring And Exporting BNsb->e pyAgrum▶Tools▷Colouring And Exporting BNsd 2023-05-24T15:21:07.483948 image/svg+xml Matplotlib v3.7.1, https://matplotlib.org/ pyAgrum▶Tools▷Colouring And Exporting BNsc->d pyAgrum▶Tools▷Colouring And Exporting BNsf 2023-05-24T15:21:07.604451 image/svg+xml Matplotlib v3.7.1, https://matplotlib.org/ pyAgrum▶Tools▷Colouring And Exporting BNsd->f pyAgrum▶Tools▷Colouring And Exporting BNse->d pyAgrum▶Tools▷Colouring And Exporting BNsg 2023-05-24T15:21:07.662267 image/svg+xml Matplotlib v3.7.1, https://matplotlib.org/ pyAgrum▶Tools▷Colouring And Exporting BNsg->c
In [7]:
import matplotlib.pyplot as plt
mycmap=plt.get_cmap('Reds')
formyarcs=plt.get_cmap('winter')
gnb.flow.row(gnb.getBN(bn,
                       nodeColor={n:nodevalue(n) for n in bn.names()},
                       arcColor={a:arcvalue2(a) for a in bn.arcs()},
                       cmapNode=mycmap,
                       cmapArc=formyarcs),
             gnb.getInference(bn,
                              nodeColor={n:nodevalue(n) for n in bn.names()},
                              arcColor={a:arcvalue2(a) for a in bn.arcs()},
                              arcWidth={a:arcvalue(a) for a in bn.arcs()},
                              cmapNode=mycmap,
                              cmapArc=formyarcs)
              )
pyAgrum▶Tools▷Colouring And Exporting BNsG pyAgrum▶Tools▷Colouring And Exporting BNsa a pyAgrum▶Tools▷Colouring And Exporting BNsb b pyAgrum▶Tools▷Colouring And Exporting BNsa->b pyAgrum▶Tools▷Colouring And Exporting BNsd d pyAgrum▶Tools▷Colouring And Exporting BNsf f pyAgrum▶Tools▷Colouring And Exporting BNsd->f pyAgrum▶Tools▷Colouring And Exporting BNsc c pyAgrum▶Tools▷Colouring And Exporting BNsc->d pyAgrum▶Tools▷Colouring And Exporting BNsg g pyAgrum▶Tools▷Colouring And Exporting BNsg->c pyAgrum▶Tools▷Colouring And Exporting BNsb->c pyAgrum▶Tools▷Colouring And Exporting BNse e pyAgrum▶Tools▷Colouring And Exporting BNsb->e pyAgrum▶Tools▷Colouring And Exporting BNse->d
pyAgrum▶Tools▷Colouring And Exporting BNsstructs Inference in   1.29ms pyAgrum▶Tools▷Colouring And Exporting BNsa 2023-05-24T15:21:08.011427 image/svg+xml Matplotlib v3.7.1, https://matplotlib.org/ pyAgrum▶Tools▷Colouring And Exporting BNsb 2023-05-24T15:21:08.073613 image/svg+xml Matplotlib v3.7.1, https://matplotlib.org/ pyAgrum▶Tools▷Colouring And Exporting BNsa->b pyAgrum▶Tools▷Colouring And Exporting BNsc 2023-05-24T15:21:08.134535 image/svg+xml Matplotlib v3.7.1, https://matplotlib.org/ pyAgrum▶Tools▷Colouring And Exporting BNsb->c pyAgrum▶Tools▷Colouring And Exporting BNse 2023-05-24T15:21:08.254334 image/svg+xml Matplotlib v3.7.1, https://matplotlib.org/ pyAgrum▶Tools▷Colouring And Exporting BNsb->e pyAgrum▶Tools▷Colouring And Exporting BNsd 2023-05-24T15:21:08.193829 image/svg+xml Matplotlib v3.7.1, https://matplotlib.org/ pyAgrum▶Tools▷Colouring And Exporting BNsc->d pyAgrum▶Tools▷Colouring And Exporting BNsf 2023-05-24T15:21:08.312069 image/svg+xml Matplotlib v3.7.1, https://matplotlib.org/ pyAgrum▶Tools▷Colouring And Exporting BNsd->f pyAgrum▶Tools▷Colouring And Exporting BNse->d pyAgrum▶Tools▷Colouring And Exporting BNsg 2023-05-24T15:21:08.369705 image/svg+xml Matplotlib v3.7.1, https://matplotlib.org/ pyAgrum▶Tools▷Colouring And Exporting BNsg->c

Exporting model and inference as image¶

Exporting as image (pdf, png, etc.) has been gathered in 2 functions : pyAgrum.lib.image.export() and pyAgrum.lib.image.exportInference(). The argument are the same as for pyAgrum.notebook.show{Model} and pyAgrum.notebook.show{Inference}.

In [8]:
import pyAgrum.lib.image as gumimage
from IPython.display import Image # to display the exported images
In [9]:
gumimage.export(bn,"out/test_export.png")

Image(filename='out/test_export.png') 
Out[9]:
In [10]:
bn = gum.fastBN("a->b->d;a->c->d[3]->e;f->b")
gumimage.export(bn,"out/test_export.png",
                nodeColor={'a': 1,
                           'b': 0.3,
                           'c': 0.4,
                           'd': 0.1,
                           'e': 0.2,
                           'f': 0.5},
                arcColor={(0, 1): 0.2,
                          (1, 2): 0.5},
                arcWidth={(0, 3): 0.4,
                          (3, 2): 0.5,
                          (2,4) :0.6})

Image(filename='out/test_export.png') 
Out[10]: