Python 在狮身人面像画廊中捕捉Graphviz人物

Python 在狮身人面像画廊中捕捉Graphviz人物,python,python-3.x,python-sphinx,graphviz,Python,Python 3.x,Python Sphinx,Graphviz,我正在生成示例,并希望自动嵌入输出,类似于捕获matplotlib图形的方式 下面是我当前进度的截图。请注意,捕获的Out显示了图形的字符串或字节表示 我希望Out是一个图像/svg 我调查了以下几点: graphviz可以,但sphinx画廊将其解释为字符串 sphinx gallery有,但我想避免在我的示例中使用胶水代码,即“编写图像文件,然后将其读回生成的html。” graphviz文档是如何做到这一点的 更新(2020-11-26):添加一个包裹graphviz的\u r

我正在生成示例,并希望自动嵌入输出,类似于捕获
matplotlib
图形的方式

下面是我当前进度的截图。请注意,捕获的
Out
显示了图形的字符串或字节表示

我希望
Out
是一个图像/svg



我调查了以下几点:

  • graphviz
    可以,但
    sphinx画廊
    将其解释为字符串
  • sphinx gallery
    有,但我想避免在我的示例中使用胶水代码,即“编写图像文件,然后将其读回生成的html。”
  • graphviz
    文档是如何做到这一点的

更新(2020-11-26):添加一个包裹graphviz的
\u repr\u svg\u的
方法似乎是最短的路径。我实现了一个粗略的版本:


以下是我已经尝试过的代码:

#文件:examples/plot_graphviz_svg.py
"""
==================================================
在斯芬克斯画廊中捕捉Graphviz的输出
==================================================
这是一个尝试捕获SVG输出的快速演示
从Graphviz将其嵌入狮身人面像画廊。
"""
进口graphviz
dig=graphviz.Digraph('G',filename='hello.gv')
dig.edge(‘你好’、‘世界’)
挖掘。_repr_svg_u()的
# %%
#第一个输出应在上面,下一个输出应显示在下面:
dig2=graphviz.Digraph('G2',filename=“hello2.gv”)
dig2.edge(“世界”,“你好”)
挖掘管道
一个最小的
sphinx
conf.py

project='sphinx graphviz svg'
版权='2020年,亚历山大·L·海斯'
作者='Alexander L.Hayes'
release='0.0.1'
扩展=[
“狮身人面像画廊,gen_画廊”,
]
模板路径=[''模板']
排除_模式=[]
html_主题=‘雪花石膏’
html_static_path=[''静态']
以及链接到示例库的最小
index.rst

Welcome to sphinx-graphviz-svg's documentation!
===============================================

.. toctree::
   :hidden:
   :maxdepth: 1
   :caption: Example Gallery

   auto_examples/index

我在此处的存储库中有一个打开的拉取请求:

如果您不耐烦,这里有一种可能性,包装相当小:

class PlotGraphviz:
def_uuuinit_uuu(self,dot_字符串):
self.dot\u字符串=dot\u字符串
定义报告html(自我):
返回graphviz.Source(self.dot\u字符串)。\u repr\u svg
假设将来合并了拉请求,这将更干净

目前:

#文件:examples/plot_graphviz_svg.py
"""
==================================================
在斯芬克斯画廊中捕捉Graphviz的输出
==================================================
这是一个尝试捕获SVG输出的快速演示
从Graphviz将其嵌入狮身人面像画廊。
"""
进口graphviz
类PlotGraphviz:
def_uuuinit_uuu(self,dot_字符串):
self.dot\u字符串=dot\u字符串
定义报告html(自我):
返回graphviz.Source(self.dot\u字符串)。\u repr\u svg
# %%
#第一个例子:
dig=graphviz.Digraph()
dig.edge(“你好”,“世界”)
绘图hviz(str(dig))
# %%
#更多信息。。。
渲染为



这个问题解决了吗?从2020-11-26问题更新中还不清楚。@mzjn我对此做了一点工作,并在这里对
graphviz
存储库提出了一个开放式请求:“解决之路”在这一点上非常清楚,但还没有解决。