graphviz,pythonでdot言語のedgeのlabelの使い方を教えて下さい。

投稿者: Anonymous

edgeのlabel “A to 1” にしたい。
よろしくお願いします。

def apply_styles(graph, styles):
    graph.edge_attr.update(
        ('edges' in styles and styles['edges']) or {}
    )
    return graph
from graphviz import Digraph
g = Digraph('G', filename='cluster.gv')
with g.subgraph(name='cluster_1') as c:
    # c.edges([('1', 'A [label=A to 1]'),
    c.edges([('1', 'A'),
             ('1', 'B')
             ])
    styles = {
        'edges': {
             'dir': 'both',
             'arrowhead': 'none',
             'arrowtail': 'normal'
            }
       }
    c = apply_styles(c, styles)
g.view()

解決

https://github.com/xflr6/graphviz/blob/7a82498092454f1c9a4cdb4a85f96fad5707827f/graphviz/dot.py#L143
この辺の実装を見てもらうと、残念なことにedges()でlabelをつける方法がないことがわかります。

c.edge('1', 'A', label='A to 1')

と1つずつlabelを付けてやってください。

回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *