当我用pydot运行一个非常简单的代码时
import pydot
graph = pydot.Dot(graph_type='graph')
for i in range(3):
edge = pydot.Edge("king", "lord%d" % i)
graph.add_edge(edge)
vassal_num = 0
for i in range(3):
for j in range(2):
edge = pydot.Edge("lord%d" % i, "vassal%d" % vassal_num)
graph.add_edge(edge)
vassal_num += 1
graph.write_png('example1_graph.png')
Run Code Online (Sandbox Code Playgroud)
它打印出错误信息:
Couldn't import dot_parser, loading of dot files will not be possible.
Run Code Online (Sandbox Code Playgroud)
我正在使用python 2.7.3
我在Windows 8中安装了GraphViz 2.32,并将C:\ Program Files(x86)\ Graphviz2.32\bin添加到System PATH变量中.仍然pydot无法找到它的可执行文件.
Traceback (most recent call last):
File "<pyshell#26>", line 1, in <module>
graph.write_png('example1_graph.png')
File "build\bdist.win32\egg\pydot.py", line 1809, in <lambda>
lambda path, f=frmt, prog=self.prog : self.write(path, format=f, prog=prog))
File "build\bdist.win32\egg\pydot.py", line 1911, in write
dot_fd.write(self.create(prog, format))
File "build\bdist.win32\egg\pydot.py", line 1953, in create
'GraphViz\'s executables not found' )
InvocationException: GraphViz's executables not found
Run Code Online (Sandbox Code Playgroud)
我发现了这个https://code.google.com/p/pydot/issues/detail?id=65但是无法解决问题.
我的代码是遵循谷歌的机器学习类.两个代码是相同的.我不知道为什么它显示错误.可能是变量的类型是错误.但谷歌的代码对我来说是相同的.谁有过这个问题?
这是错误的
[0 1 2]
[0 1 2]
Traceback (most recent call last):
File "/media/joyce/oreo/python/machine_learn/VisualizingADecisionTree.py", line 34, in <module>
graph.write_pdf("iris.pdf")
AttributeError: 'list' object has no attribute 'write_pdf'
[Finished in 0.4s with exit code 1]
[shell_cmd: python -u "/media/joyce/oreo/python/machine_learn/VisualizingADecisionTree.py"]
[dir: /media/joyce/oreo/python/machine_learn]
[path: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games]
Run Code Online (Sandbox Code Playgroud)
这是代码
import numpy as np
from sklearn.datasets import load_iris
from sklearn import tree
iris = load_iris()
test_idx = [0, 50, 100]
# training data
train_target = np.delete(iris.target, test_idx)
train_data = np.delete(iris.data, test_idx, axis=0)
# testing data
test_target = …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Python在我的Django Web应用程序中进行一些交互式图形可视化.我找到了Graphviz并且能够使用Pydot(Graphviz的点语言的Python接口)在我的应用程序上输出静态图形(作为.png图像).
但是,我希望使我的图形更具交互性,例如能够在将鼠标移到其上时突出显示节点,使节点可点击,将节点拖动到其他位置并放大图形.
有没有办法在Graphviz中做到这一点?或者一般来说,有没有办法为我的Django应用程序制作交互式图形而无需使用Flash?我不想使用闪存,因为我不熟悉它,因为我想要可视化一个相当大的数据集.
我在Windows 10上使用Anaconda Python 2.7
我正计划进行Keras可视化(当Spyder打开时)我打开了Anaconda命令提示符并点击安装了graphviz和pydot.现在,当我尝试运行以下内容时:
from keras.models import Sequential
Run Code Online (Sandbox Code Playgroud)
或者任何形式的"来自keras".,我收到错误:
ImportError: cannot import name gof
Run Code Online (Sandbox Code Playgroud)
我已经卸载并重新安装了Keras,Graphviz和pydot.我正在使用theano的开发版本.我找不到修复方法.
PS
如果我卸载graphviz和pydot,keras会再次运行
编辑
卸载anaconda并重新安装它包括theano,keras,graphviz和pydot后,我现在收到以下错误:
from keras.utils.visualize_util import plot
Using Theano backend.
Using gpu device 0: GeForce GTX 970M (CNMeM is disabled, cuDNN not available)
Traceback (most recent call last):
File "<ipython-input-1-65016ddab3cd>", line 1, in <module>
from keras.utils.visualize_util import plot
File "C:\Anaconda2\lib\site-packages\keras\utils\visualize_util.py", line 8, in <module>
raise RuntimeError('Failed to import pydot. You must install pydot'
RuntimeError: Failed to import pydot. You must install …Run Code Online (Sandbox Code Playgroud) 我在Windows 7上运行Python的pydot时遇到了麻烦.
我安装了pydot: conda install -c rmg pydot=1.2.2
我安装了graphviz ../Program Files (x86)/Graphviz2.38/
当我运行以下脚本时,我得到一个错误说
Run Code Online (Sandbox Code Playgroud)"dot.exe" not found in path
import pydot
graph = pydot.Dot(graph_type='digraph')
node_a = pydot.Node("Node A", style="filled", fillcolor="red")
node_b = pydot.Node("Node B", style="filled", fillcolor="green")
node_c = pydot.Node("Node C", style="filled", fillcolor="#0000ff")
node_d = pydot.Node("Node D", style="filled", fillcolor="#976856")
graph.add_node(node_a)
graph.add_node(node_b)
graph.add_node(node_c)
graph.add_node(node_d)
graph.add_edge(pydot.Edge(node_a, node_b))
graph.add_edge(pydot.Edge(node_b, node_c))
graph.add_edge(pydot.Edge(node_c, node_d))
graph.add_edge(pydot.Edge(node_d, node_a, label="and back we go again", labelfontcolor="#009933", fontsize="10.0", color="blue"))
graph.write_png('example2_graph.png')
Exception: "dot.exe" not found in path.
Run Code Online (Sandbox Code Playgroud)
我尝试过这个解决方案:https://stackoverflow.com/a/12257807/6561247
,添加my-paths.pth …
我想用pydot显示一个简单的图形.
我的问题是,有没有办法显示图形而不将其写入文件,因为目前我使用写入功能首先绘制,然后必须使用图像模块来显示文件.
但有没有什么方法可以直接在屏幕上打印图形而不保存?
另外作为一个更新,我想在同一个问题中问我观察到,当我使用图像模块的show命令时图像得到很快保存时,需要花费大量时间才能看到图像....有时候我得到错误,图像无法打开,因为它被删除或保存在不可用的位置,这是不正确的,因为我将它保存在我的桌面.....有谁知道发生了什么,是否有更快的方式得到图像加载.....
非常感谢....
我在Windows 7上运行Python3.4.我正在尝试使用graphviz的Python接口.这是我打算运行的脚本:
from graphviz import Digraph
import pydotplus
dot = Digraph(comment='The Round Table')
dot.node('A', 'King Arthur')
dot.node('B', 'Sir Bedevere the Wise')
dot.node('L', 'Sir Lancelot the Brave')
dot.edges(['AB', 'AL'])
dot.edge('B', 'L', constraint='false')
print(dot.source)
dot.render('test-output/round-table.gv', view=True)
Run Code Online (Sandbox Code Playgroud)
我在运行时收到以下错误:
RuntimeError: failed to execute ['dot', '-Tpdf', '-O', 'test-output/round-table.gv'], make sure the Graphviz executables are on your systems' path
Run Code Online (Sandbox Code Playgroud)
现在我确信我已正确安装了正确的依赖项.我首先尝试设置正确的环境变量.graphviz可执行文件位于C:\ Program Files(x86)\ Graphviz2.37\bin,所以我转到了Environment Variables部分.那里有两个部分:用户变量和系统变量.在系统变量下我单击路径然后单击Edit并添加; C:\ Program Files(x86)\ Graphviz2.37\bin到字符串的末尾并保存.这并没有清除错误.
然后,按照这里给出的答案我卸载了pydot(实际上我在这里使用pydotplus)并重新安装它,但仍然没有成功.
我一直在努力解决这个问题,而整个PATH变量只是令人困惑和令人沮丧.
尝试通过遵循一些sklearn文档生成一些PDF的决策树,但无法在我的机器上获得Pydot.有没有办法使用conda安装程序来安装pydot包?基于我看到的命令行错误,它可能是64位问题.我使用binstar搜索来查找包通道:
C:\binstar search -t conda
Run Code Online (Sandbox Code Playgroud)
其中给出了使用详细查看包的建议
binstar show j14r/pydot
Run Code Online (Sandbox Code Playgroud)
然后告诉我
conda install --channel https://conda.binstar.org/j14r pydot
Run Code Online (Sandbox Code Playgroud)
但是当我运行conda install命令时,我收到以下错误(列出的所有pydot包都出现相同的错误):
Fetching package metadata: ...
Error: No Packages found in current win-64 channels matching: pydot
You can search for this package with
binstar search t conda pydot
Run Code Online (Sandbox Code Playgroud)
这让我回到了这一切的开头.有任何想法吗?谢谢大家.
我想绘制一个随机森林的决策树.所以,我创建以下代码:
clf = RandomForestClassifier(n_estimators=100)
import pydotplus
import six
from sklearn import tree
dotfile = six.StringIO()
i_tree = 0
for tree_in_forest in clf.estimators_:
if (i_tree <1):
tree.export_graphviz(tree_in_forest, out_file=dotfile)
pydotplus.graph_from_dot_data(dotfile.getvalue()).write_png('dtree'+ str(i_tree) +'.png')
i_tree = i_tree + 1
Run Code Online (Sandbox Code Playgroud)
但它没有产生任何东西..你知道如何从随机森林中绘制决策树吗?
谢谢,
pydot ×10
python ×8
graphviz ×6
scikit-learn ×3
path ×2
anaconda ×1
conda ×1
django ×1
graph ×1
keras ×1
pygraphviz ×1
python-2.7 ×1
theano ×1
tree ×1