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画廊
有,但我想避免在我的示例中使用胶水代码,即“编写图像文件,然后将其读回生成的html。”sphinx gallery
文档是如何做到这一点的李>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
存储库提出了一个开放式请求:“解决之路”在这一点上非常清楚,但还没有解决。