【问题标题】:Graphviz left-justify edge label textGraphviz 左对齐边缘标签文本
【发布时间】:2020-12-06 09:17:08
【问题描述】:

我正在试图弄清楚如何在 graphviz 中左对齐我的边缘标签。如果有人有解决方案,请帮忙!

我创建了一个数据集来映射对象依赖关系——然后通过 iterrows 读入 graphviz。

这是我的 Python 代码,但它使用居中对齐的文本呈现我的边缘标签:

u = Digraph('unix',
            filename='unix.gv',
            node_attr={'color': 'lightblue', 
                       'style': 'filled', 
                       'fontname':'arial', 
                       'shape':'box'},
           edge_attr={'dir':'back',
                     'fontname':'arial',
                     'fontsize':'12'})

u.attr(size='20,20')

for index, row in d.iterrows():
    u.edge(row.var_target, row.var_source, label=str(row.bizlogic))

u

【问题讨论】:

    标签: python-3.x label graphviz text-justify


    【解决方案1】:

    如果将每行末尾的 \n 替换为 \l(用于左对齐),您应该会得到所需的输出 (https://www.graphviz.org/doc/info/attrs.html#k:escString)。一个例子(直接Graphviz):

    digraph G {
        rankdir=LR;
        a [ label ="Graphs can\lbe fun\l"];
        b [ label ="left\lmiddle\nright\r  " ];
        a -> b [label ="Edges can\lalso\rbe fun\lI'm told\r"];
    }
    

    给予:

    【讨论】:

    • 谢谢——我在别处见过这个,但希望可以选择只对标签应用左对齐而不是弄乱字符串本身。但是,已将 d['edge_label']=d.edge_label.str.replace('\n','\l') 应用于我的数据框列,现在看起来不错
    猜你喜欢
    • 2010-10-24
    • 2013-05-12
    • 2017-06-17
    • 2020-02-09
    • 1970-01-01
    • 1970-01-01
    • 2012-09-05
    • 1970-01-01
    • 2014-06-12
    相关资源
    最近更新 更多