PyAgrum CPT 位于 Jupyter Notebook 环境之外

问题描述 投票:0回答:1

我正在将我的 Jupter 笔记本 PyAgrum 贝叶斯网络可视化转换为 .py 文件。我正在使用 pyAgrum.lib.image.exportInference() 来保存贝叶斯网络,但我想知道是否可以为 pyAgrum.lib.notebook.showCPTs() 做些什么,以及是否有办法可以保存可视化为 .pdf,就像我为实际的贝叶斯网络所做的那样。或者有没有办法可以访问 pyAgrum.lib.notebook.showCPTs() 创建并显示在 Jupyter 笔记本中但在我的 .py 文件中的 html。感谢您提前的帮助!

pyagrum
1个回答
0
投票

您可以使用 playwright 从 HTML 生成 pdf(或 png):

import pyAgrum as gum
import pyAgrum.lib.notebook as gnb 

async def exportPotentialAsPDF(p:gum.Potential,filename:str):# in Jupyter
    from playwright.async_api import async_playwright
    
    pw = await async_playwright().start()
    browser = await pw.chromium.launch(headless=True)
    page = await browser.new_page()
    await page.set_content(gnb.getPotential(p))
    await page.pdf(path=filename,
                   print_background=True)
    await browser.close()

async def exportPotentialAsPNG(p:gum.Potential,filename:str):# in Jupyter
    from playwright.async_api import async_playwright
    
    pw = await async_playwright().start()
    browser = await pw.chromium.launch(headless=True)
    page = await browser.new_page()
    await page.set_content(gnb.getPotential(p))
    await page.screenshot(path=filename)
    await browser.close()

bn=gum.fastBN("A->B<-C")
await exportPotentialAsPDF(bn.cpt("B"),"test.pdf")
await exportPotentialAsPNG(bn.cpt("B"),"test.png")
© www.soinside.com 2019 - 2024. All rights reserved.