【问题标题】:Graphviz use of dot with accentGraphviz 使用带重音的点
【发布时间】:2020-12-15 14:25:58
【问题描述】:

我有一些函数可以与 graphviz 和 networkx 一起使用。 如果我的图表不包含任何重音字符,则一切正常。

但如果我有这个文件 test.txt :

strict graph {
   "Français"
}

然后我运行这个命令: dot.exe -Tdot test.txt -o result.txt

最后得到这个文件:

strict graph {
    graph [bb="0,0,83.193,36"];
    node [label="\N"];
    Français     [height=0.5,
        pos="41.596,18",
        width=1.1555];
}

节点名称周围没有双引号 然后,在 Python 中,我尝试使用以下命令加载此文件:

graph = nx.drawing.nx_pydot.read_dot("result.txt")

现在,如果我想查看我的节点,我会这样做:

graph.nodes

我得到了这个结果:

NodeView(('Fran', 'ç', 'ais')) 我有 3 个节点而不是 1 个。

如果我在 result.txt 中添加双引号,我只有一个节点。

如何才能在 result.txt 中保留双引号?

编辑: 感谢sroush,我知道我可以在每个节点的末尾添加一个空格,双引号将保留在结果中。但是这个方案会让每个节点的位置有点不对。 但是为什么双引号不保留在前面?

我们可以强制吗?因为我无法编辑我的 result.txt 文件,所以所有过程都是自动完成的。结果可以包含数百个节点。

【问题讨论】:

    标签: python networkx graphviz


    【解决方案1】:

    作为一种解决方案,您可以在 result.txt 文件中的节点名称周围添加引号

    strict graph {
        graph [bb="0,0,83.193,36"];
        node [label="\N"];
        "Français"     [height=0.5,
            pos="41.596,18",
            width=1.1555];
    }
    

    >>> graph = nx.drawing.nx_pydot.read_dot("result.txt")
    >>> graph.nodes()
    NodeView(('Français',))
    

    【讨论】:

    • 谢谢,但我想自动完成。我将编辑我的帖子以提供更多信息。
    【解决方案2】:

    添加空格有效(尽管它会改变外观):

    strict graph {
       "Français "
    }
    

    【讨论】:

    • 感谢您的回复,如果我没有找到其他方法,这可能是一个解决方案。
    猜你喜欢
    • 1970-01-01
    • 2011-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-30
    • 2012-02-28
    相关资源
    最近更新 更多