2016-03-06 52 views
0

我正在使用以下代码创建pygraphviz图形。但有可能让它渲染乳胶数学方程(参见图1)?如果没有,是否有一个替代python库绘制类似的图,但支持乳胶渲染?Python图形:节点标签的乳胶数学渲染

import networkx as nx 

from networkx.drawing.nx_agraph import to_agraph 

G=nx.DiGraph() 
G.add_node(1,color='blue',style='filled', 
      fillcolor='white',shape='square', label="$3x+2$") 
G.add_node(2) 
G.add_node(3) 
G.add_edge(1, 2) 
G.add_edge(1, 3) 
G.add_edge(3, 4) 

A = to_agraph(G) 
A.layout('dot') 
A.draw('test1.png') 

这将导致如下图

Figure 1

图1

+0

我没有看到[PyGraphviz文件]中LaTeX的任何引用(https://pygraphviz.github.io/documentation/development/)。是否有理由认为这应该起作用? – Chris

+0

我明白了!我编辑了这个问题以使请求不被限制在pyGraphviz中。换句话说,是否有一个可以用Latex渲染绘制类似图形的Python库?我知道matplotlib呈现乳胶,但对于这样的图表来说并不好。 – Curious

回答

1

也许https://dot2tex.readthedocs.org/en/latest/会为你工作? 尝试

import dot2tex 
texcode = dot2tex.dot2tex(A.to_string(), format='tikz', crop=True) 
+0

不起作用,$ 3x + 2 $仍然是$ 3x + 2 $,但感谢您的尝试! – Curious

+1

dot2tex的要点是呈现tex表达式。这里有一些例子http://mirror.unl.edu/ctan/graphics/dot2tex/dot2tex.pdf。如果你花费一点努力,你也许可以使它工作。 – Aric