标签: pygraphviz

DOT 文件中边“pos”属性的含义是什么?

我正在尝试布局一些图表并使用pygraphviz它。我构建图表并执行

graph.layout(prog='dot')
Run Code Online (Sandbox Code Playgroud)

当我执行时print graph,它会输出点格式表示,如下所示:

...
94   [height="0.5", pos="1485,18", width="0.75"];
93 -> 94     [pos="e,1485,36.104 1485,71.697 1485,63.983 1485,54.712 1485,46.112"];
98   [height="0.5", pos="1557,18", width="0.75"];
97 -> 98     [pos="e,1557,36.104 1557,71.697 1557,63.983 1557,54.712 1557,46.112"];
...
Run Code Online (Sandbox Code Playgroud)

对于每个节点,属性的含义非常清楚pos。但这对于边缘意味着什么呢?我相信它可能以某种方式引用三次样条表示,但是如果我想在 matplotlib 中手动绘制边缘,我将如何使用这些点?

谢谢!乌里

graph matplotlib graphviz networkx pygraphviz

5
推荐指数
1
解决办法
1719
查看次数

Graphviz:如何插入两个新的链接节点并最小化边缘交叉?

我有以下图表 图形:

如您所见,有两个自然集群.我想找出一种方法将这些聚类分成两个图.

当然,关键的一步是计算正确的分裂.我想插入两个节点n1和n2,将它们连接起来e(n1,n2),然后移动它们,最大限度地减少边缘交叉的数量(当然,将所有节点/边缘精确地固定在它们所在的位置).

谁能在这里提供任何帮助?我不认为graphviz有任何能让我这样做的东西.

python graph-theory graphviz pygraphviz

5
推荐指数
1
解决办法
569
查看次数

捕获 pygraphviz 图像渲染而不保存到文件?

pygraphviz 是否允许您将图像渲染到变量?我想通过网页提供动态图像,而无需将图形渲染到磁盘。

python graphviz pygraphviz

5
推荐指数
1
解决办法
1787
查看次数

NetworkX graphviz_layout 不起作用?

我在尝试使用 NetworkX 和 graphviz_layout 绘制具有多个节点的图形时遇到问题。更具体地说,传递给 nx.graphviz_layout 的参数根本没有帮助。附上我使用的代码:

G=some_graph()

import matplotlib.pyplot as plt
plt.figure(figsize=(32,32))

# use graphviz to find radial layout
pos=nx.graphviz_layout(G,prog="dot",
                       root=1000,
                       args='-splines=true -nodesep=0.6 -overlap=scalexy'
                       )

nx.draw(G,pos,
        with_labels=True,
        alpha=0.5,
        node_size=600,
        font_size=10
        )

plt.savefig("imagenet_layout.png")
Run Code Online (Sandbox Code Playgroud)

无论我如何更改 nx.graphviz_layout 中的“args”,输出图像都是相同的,并且所有节点都相互重叠。有人可以帮我解决这个问题吗?谢谢!

python graphviz networkx pygraphviz

5
推荐指数
1
解决办法
4599
查看次数

使用nx.draw_graphviz在python中使用graphviz布局绘制图形会出错

我试图在python的networkx中以graphviz布局绘制一个100节点的多图G,所以到目前为止我进行了两次试验:

试验1 nx.draw_graphviz函数如下,nx.draw_graphviz(G)但是我对图中的所有节点重复了以下错误:

错误:节点1,位置[0.127506302389087,0.3262608552621944],预计两个双打

然后试图找到一个解决方案,我使用试验2 A=nx.to_agraph(G)得到一个pygraphviz图,但当我尝试绘制时,nx.draw_graphviz(A)我得到以下错误:

AttributeError:'AGraph'对象没有属性'number_of_selfloops'

nx.graphviz_layout但它返回了一个由节点键入的位置字典,我不知道如何用它来绘制graphviz布局.

注意我导入了graphviz,pygraphviz和pydot模块,但我不知道哪些是真正需要的,但它仍然不起作用.

是否缺少在graphviz布局中绘制networkx图形的东西?

完整跟踪错误

试验1

Traceback (most recent call last):
  File "main.py", line 102, in <module>
    d.display_graph(sub_normal,NEUTRAL_RANGE)
  File "/home/abdallah/stage/Reputation_system/display.py", line 33, in display_graph
    nx.draw_graphviz(G)
  File "/usr/local/lib/python2.7/dist-packages/networkx-1.10-py2.7.egg/networkx/drawing/nx_pylab.py", line 982, in draw_graphviz
    pos = nx.drawing.graphviz_layout(G, prog)
  File "/usr/local/lib/python2.7/dist-packages/networkx-1.10-py2.7.egg/networkx/drawing/nx_pydot.py", line 257, in graphviz_layout
    return pydot_layout(G=G,prog=prog,root=root,**kwds)
  File "/usr/local/lib/python2.7/dist-packages/networkx-1.10-py2.7.egg/networkx/drawing/nx_pydot.py", line 277, in pydot_layout
    D=P.create_dot(prog=prog)
  File "/usr/lib/python2.7/dist-packages/pydot.py", line 1802, in <lambda>
    lambda f=frmt, prog=self.prog : self.create(format=f, prog=prog))
  File …
Run Code Online (Sandbox Code Playgroud)

python graphviz networkx pygraphviz pydot

5
推荐指数
1
解决办法
1676
查看次数

pygraphviz / grapviz 具有非确定性输出,那么如何强制节点的顺序?

运行这段代码:

import pygraphviz as PG
tree = PG.AGraph(directed=True, strict=False)

tree.add_node(1)
tree.add_node(2)
tree.add_node(3)
tree.add_node(4)
tree.add_node(5)

tree.add_edge(1, 2)
tree.add_edge(1, 3)
tree.add_edge(4, 4)
tree.add_edge(1, 5)

print str(tree)
Run Code Online (Sandbox Code Playgroud)

有以下输出:

digraph {
        1 -> 5;
        1 -> 3;
        1 -> 2;
        4 -> 4;
}
Run Code Online (Sandbox Code Playgroud)

这意味着出现的第一条边是 1->5,而不是第一个定义的 1->2。我怎样才能强制执行订单?我想查看创建顺序中的节点和边。

python graphviz pygraphviz

5
推荐指数
0
解决办法
178
查看次数

Pygraphviz 安装失败,错误代码 1083 无法打开文件 graphviz/cgraph.h:没有这样的文件或目录

尝试使用 pip 安装 pygraphviz 1.3 时,出现以下错误消息

致命错误 1083 无法打开文件 graphviz/cgraph.h:没有此类文件或目录错误:命令 C:\Users\Appdata\Local\Programs\Common\Microsoft\Visual C++ for python\9.0\VC\Bin\cl.exe 失败状态 2

我已经有了 Microsoft Visual C++。我正在使用 Python27。Pip 工作正常,我已经成功安装了 graphviz-2.38。我也试过这个命令:

pip install --install-option="--include-path=\C:\graphviz-2.38\release\include\graphviz" --install-option="--library-path=\C:\graphviz-2.38\发布\lib\graphviz" pygraphviz

请让我知道如何解决问题。

c++ python github graphviz pygraphviz

5
推荐指数
1
解决办法
2895
查看次数

pygraphviz 上的嵌套集群(或 add_subgraph)

使用 pygraphviz,我可以添加子图add_subgraph(list_of_nodes, label='cluster_somename')layout这将在调用时在子图块内创建它。

有没有办法嵌套子图?

我正在使用dot布局,我知道它可以处理和显示嵌套的子簇。但我无法让 pygraphviz 输出嵌套簇。

graphviz pygraphviz

5
推荐指数
1
解决办法
2751
查看次数

IncationException:未找到 GraphViz 的可执行文件

我无法可视化或编写决策树。我该怎么办呢?

Python版本3.5,Anaconda 3,我什至设置了环境变量

    from sklearn import tree
    model = tree.DecisionTreeClassifier(criterion='gini') 
    model=tree.DecisionTreeClassifier()
    model.fit(trainData,trainLabel)
    model.score(trainData,trainLabel)
    predicted= model.predict(testData)

    from sklearn.externals.six import StringIO
    import pydot 
    import pydotplus
    dot_data = StringIO() 
    tree.export_graphviz(model, out_file=dot_data) 
    graph = pydotplus.graph_from_dot_data(dot_data.getvalue()) 
    print(graph)
    graph.write_pdf("C:\\Users\\anagha\\Desktop\\SynehackData\\DATA\\DATA\\graph.pdf") 
Run Code Online (Sandbox Code Playgroud)

错误 :

InvocationException: GraphViz's executables not found
Run Code Online (Sandbox Code Playgroud)

python decision-tree python-3.x pygraphviz

5
推荐指数
1
解决办法
4957
查看次数

从以底图位置为中心的 networkx 绘制图形

我正在寻找在地图上绘制多个子图,每个子图都以一个地理位置(或绘图的一个坐标)为中心。节点本身没有位置(或者它们都属于一个城市),但每个子图对应一个本地情况。

  • 我试图为每个子图只为一个节点分配一个位置,使用“居中”选项默认绘制其余的图
  • 我试图从/sf/answers/2071804661/ 中得到启发,在一个位置上绘制一个分层图,但没有成功

    # -*- coding: utf-8 -*-
    import networkx as nx
    import pygraphviz
    import matplotlib.pyplot as plt
    from mpl_toolkits.basemap import Basemap as Basemap
    
    G1 = nx.Graph()
    G1.add_edge('a', 'b', weight=0.6)
    G1.add_edge('a', 'c', weight=0.2)
    G1.add_edge('c', 'd', weight=0.1)
    G1.add_edge('c', 'e', weight=0.7)
    G1.add_edge('c', 'f', weight=0.9)
    G1.add_edge('a', 'd', weight=0.3)
    
    G2 = nx.Graph()
    G2.add_edge('a', 'b', weight=0.9)
    G2.add_edge('a', 'f', weight=0.5)
    G2.add_edge('c', 'd', weight=0.1)
    G2.add_edge('c', 'e', weight=0.4)
    G2.add_edge('c', 'f', weight=0.2)
    G2.add_edge('a', 'd', weight=0.1)
    
    edges = G.edges()
    weights = [G[u][v]['weight'] for u,v in edges] # …
    Run Code Online (Sandbox Code Playgroud)

python networkx pygraphviz matplotlib-basemap

5
推荐指数
1
解决办法
729
查看次数