我试图在pygraphviz中生成无向图,但是没有成功.似乎无论我做什么,图表总是指向.
Example #1
G = pgv.AGraph(directed=False)
G.is_directed() # true
Example #2
G = pgv.AGraph()
G.to_undirected().is_directed() # True
Example #3
G = pgv.AGraph(directed=False)
G.graph_attr.update(directed=False)
G.is_directed() # true
Run Code Online (Sandbox Code Playgroud)
我不知道为什么这么简单的事情无法奏效.我做错了什么?
问题是:我在Windows7上,我已经安装了pygraphviz库和Graphviz应用程序(Graphviz应用程序在"C:\ Program Files"中).当我在python上运行我的程序时,我有以下消息:
g.draw(filename,prog='dot')
File "C:\Python27\lib\site-packages\pygraphviz\agraph.py", line 1418, in draw
data=self._run_prog(prog,args)
File "C:\Python27\lib\site-packages\pygraphviz\agraph.py", line 1248, in _run_prog
runprog=self._get_prog(prog)
File "C:\Python27\lib\site-packages\pygraphviz\agraph.py", line 1236, in _get_prog
raise ValueError("Program %s not found in path."%prog)
ValueError: Program dot not found in path.
Run Code Online (Sandbox Code Playgroud)
我怎么解决这个问题?
是否可以更改以下代码以将Child_4置于与Grandchild_0相同的水平级别(从而将Grandchild_4推送到自己的级别)?
import networkx as nx
import matplotlib.pyplot as plt
G = nx.DiGraph()
G.add_node("ROOT")
for i in xrange(5):
G.add_node("Child_%i" % i)
G.add_node("Grandchild_%i" % i)
G.add_edge("ROOT", "Child_%i" % i)
G.add_edge("Child_%i" % i, "Grandchild_%i" % i)
pos=nx.graphviz_layout(G,prog='dot')
nx.draw(G,pos,arrows=False)
plt.show()
Run Code Online (Sandbox Code Playgroud)
上面的代码产生了以下布局,我想通过将子级向下移动一级以与孙子级别水平对齐来改变:

在Python网络库networkx中,我使用graphviz的点引擎来渲染树(遵循此建议).我想通过指定哪些节点应具有相同的高度来控制节点的y位置.节点可能位于树中的不同深度.
我知道如果我通过使用rank=same命令编写自己的graphviz代码(例如,{rank=same; n4 -> p2;}[ ex. ]),我可以控制节点高度.但是,我依赖于networkx.graphviz_layout()[ doc | source ]生成节点位置,graphviz_layout只能向pygraphviz发送命令行参数.我尝试使用变体nx.graphviz_layout(G, prog='dot', args="-Grank=same; n4 -> p2;")失败了. 是否有可能在pygraphviz的NetworkX包装器中描述所需的节点高度,或者我是否需要在pygraphviz周围编写自己的包装器? 编辑:答案为pygraphviz提供了一个新的包装器.它将显着简化在pygraphviz的现有NetworkX包装器中发送排名信息的事情.如果有人能告诉我这是怎么可能的话,我会改变我接受的答案.
在python中,使用networkx.我可以绘制一个垂直树:
g=nx.balanced_tree(2,4)
pos = nx.graphviz_layout(g, prog='dot')
nx.draw(g,pos,labels=b_all, node_size=500)
plt.show()
Run Code Online (Sandbox Code Playgroud)
相近
[root]
|
| |
node node
Run Code Online (Sandbox Code Playgroud)
如何绘制水平树?
-- node
[root] -
-- node
Run Code Online (Sandbox Code Playgroud) 当我打开一个cmd并输入时,我安装了graphviz和pygraphviz
python
import _graphviz
Run Code Online (Sandbox Code Playgroud)
_graphviz可以导入,但是当我运行一个将调用.py文件的C++程序时,这个.py文件中有一行是
import pygraphviz as pgv
Run Code Online (Sandbox Code Playgroud)
然后它将无法导入_graphviz,它显示以下信息:
Traceback (most recent call last):
File "E:\project\graph\analysis\x64\Debug\gengraph.py", line 1, in <module>
import pygraphviz as pgv
File "C:\Program Files\Python27\lib\site-packages\pygraphviz\__init__.py", lin
e 54, in <module>
from agraph import AGraph, Node, Edge, Attribute, ItemAttribute
File "C:\Program Files\Python27\lib\site-packages\pygraphviz\agraph.py", line
20, in <module>
import graphviz as gv
File "C:\Program Files\Python27\lib\site-packages\pygraphviz\graphviz.py", lin
e 7, in <module>
import _graphviz
ImportError: No module named _graphviz
Run Code Online (Sandbox Code Playgroud)
能帮帮我吗,欢迎任何建议,谢谢!
import pygraphviz
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/dist-packages/pygraphviz/__init__.py", line 58, in <module>
from .agraph import AGraph, Node, Edge, Attribute, ItemAttribute, DotError
File "/usr/local/lib/python2.7/dist-packages/pygraphviz/agraph.py", line 26, in <module>
from . import graphviz as gv
File "/usr/local/lib/python2.7/dist-packages/pygraphviz/graphviz.py", line 28, in <module>
_graphviz = swig_import_helper()
File "/usr/local/lib/python2.7/dist-packages/pygraphviz/graphviz.py", line 24, in swig_import_helper
_mod = imp.load_module('_graphviz', fp, pathname, description)
ImportError: /usr/local/lib/python2.7/dist-packages/pygraphviz/_graphviz.so: undefined symbol: Agundirected
Run Code Online (Sandbox Code Playgroud)
我已经尝试过了
pip install pygraphviz --install-option="--include-path=/usr/include/graphviz" --install-option="--library-path=/usr/lib/graphviz/"
Run Code Online (Sandbox Code Playgroud)
我也试过这个答案,但仍然无法正常工作
我在macOS 10.10.5上安装pygraphviz时遇到了麻烦.我有一个功能齐全的Python 2.7.x安装,我想运行排队工具的测试示例,这需要使用pip安装pygraphviz.
执行命令时pip install pygraphviz,我收到以下冗长的错误消息:
Collecting pygraphviz
Using cached pygraphviz-1.3.1.zip
Building wheels for collected packages: pygraphviz
Running setup.py bdist_wheel for pygraphviz ... error
Complete output from command /usr/local/opt/python/bin/python2.7 -u -c "import setuptools, tokenize;__file__='/private/var/folders/x3/nr48r8q10dv1lb9l9t_yx7kh0000gq/T/pip-build-Ljj4Ox/pygraphviz/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" bdist_wheel -d /var/folders/x3/nr48r8q10dv1lb9l9t_yx7kh0000gq/T/tmpcYcoACpip-wheel- --python-tag cp27:
running bdist_wheel
running build
running build_py
creating build
creating build/lib.macosx-10.10-x86_64-2.7
creating build/lib.macosx-10.10-x86_64-2.7/pygraphviz
copying pygraphviz/__init__.py -> build/lib.macosx-10.10-x86_64-2.7/pygraphviz
copying pygraphviz/agraph.py -> build/lib.macosx-10.10-x86_64-2.7/pygraphviz
copying pygraphviz/graphviz.py -> build/lib.macosx-10.10-x86_64-2.7/pygraphviz
copying pygraphviz/release.py -> build/lib.macosx-10.10-x86_64-2.7/pygraphviz …Run Code Online (Sandbox Code Playgroud) 在我的Windows 7 Ultimate 64bit上安装最新的graphviz(2.26.3)之后,我收到以下错误:
C:> easy_install pygraphviz搜索pygraphviz阅读 http://pypi.python.org/simple/pygraphviz/ 阅读 http://networkx.lanl.gov/pygraphviz 阅读 http://networkx.lanl.gov/wiki/download 阅读 http://networkx.lanl.gov/download/pygraphviz 阅读 http://sourceforge.net/project/showfiles.php?group_id=122233&package_id=161979 阅读 http://networkx.lanl.gov/download最佳匹配:pygraphviz 1.1 .dev1947正在下载 http://networkx.lanl.gov/download/pygraphviz/pygraphviz-1.1.dev1947.tar.gz 处理pygraphviz-1.1.dev1947.tar.gz运行pygraphviz-1.1.dev1947\setup.py -q bdist_egg - -dist-dir c:\ users\jonathan\appdata\local\temp\easy_install-apywwk\pygraphviz-1.1.dev1947\egg-dist-tmp-nvd0pa尝试pkg-config无法找到pkg-config尝试dotneato-config失败找到dotneato-config
找不到您的graphviz安装.
在不完整的二进制包graphviz-dev或graphviz-devel缺失的情况下,graphviz包是否缺失?).
如果您认为安装正确,则需要手动更改setup.py中的include_path和library_path变量,以指向graphviz安装的正确位置.
library_path和include_path的当前设置是:library_path = None include_path = None
错误:无
有任何想法如何解决这个问题?
这似乎与这里描述的问题不同.
有没有人成功在Windows上安装pygraphviz?怎么样?
我想使用 pygraphviz 绘制由 DEAP 生成的树。我尝试按照此DEAP 文档中的示例进行操作,但出现以下错误:
Traceback (most recent call last):
File "<input>", line 24, in <module>
File "C:\Users\xxyao\program\anaconda\envs\rf\lib\site-packages\pygraphviz\agraph.py", line 1399, in layout
data = self._run_prog(prog, ' '.join([args, "-T", fmt]))
File "C:\Users\xxyao\program\anaconda\envs\rf\lib\site-packages\pygraphviz\agraph.py", line 1364, in _run_prog
raise IOError(b"".join(errors).decode(self.encoding))
OSError: Format: "dot" not recognized. Use one of:
Run Code Online (Sandbox Code Playgroud)
似乎应该在之后Use one of:有一些词,但没有。我的环境是Python==3.6, graphviz==3.41, pygraphviz==1.5.Thegraphviz并且pygraphviz是通过conda.
顺便说一下,我尝试了以下方法:
C:\Program Files (x86)\Graphviz2.38\bin到系统环境中。conda install pydot, conda install pydot-ng 但它仍然不起作用。
进一步信息: …
我有一个图表,其中节点标签是中文的。我想用 绘制它draw_graphviz(),但是保存图像时,不会显示中文字符。相反,它们显示为白色块。
我只想知道如何设置字体。
nx.draw_graphviz(G, font_size=6, node_size=80, font_family='serif', font_color='b', alpha=0.1)
plt.savefig("community__large" + str(i) + ".png")
plt.close()
Run Code Online (Sandbox Code Playgroud)
以上是我现在使用的代码。
pygraphviz ×10
python ×8
graphviz ×6
networkx ×3
import ×2
dot ×1
homebrew ×1
importerror ×1
macos ×1
neato ×1
python-2.7 ×1
ubuntu ×1
windows ×1