我似乎无法弄清楚这一点.我有一个.dot文件,根据语法有效.如何使用graphviz将其转换为图像?
(注意我在Windows上,而不是linux)
我试图使用Graphviz绘制图形,但我需要在边缘添加标签.在Graphviz中似乎没有任何方法.有出路吗?
在DOT语言中GraphViz,我试图表示一个依赖关系图.我需要能够在容器内部拥有节点,并且能够使节点和/或容器依赖于其他节点和/或容器.
我subgraph用来代表我的容器.节点链接工作正常,但我无法弄清楚如何连接子图.
鉴于下面的程序,我需要能够连接cluster_1并cluster_2使用箭头,但我尝试过的任何东西都会创建新节点而不是连接集群:
digraph G {
graph [fontsize=10 fontname="Verdana"];
node [shape=record fontsize=10 fontname="Verdana"];
subgraph cluster_0 {
node [style=filled];
"Item 1" "Item 2";
label = "Container A";
color=blue;
}
subgraph cluster_1 {
node [style=filled];
"Item 3" "Item 4";
label = "Container B";
color=blue;
}
subgraph cluster_2 {
node [style=filled];
"Item 5" "Item 6";
label = "Container C";
color=blue;
}
// Renders fine
"Item 1" -> "Item 2";
"Item 2" -> "Item …Run Code Online (Sandbox Code Playgroud) 有人知道GraphViz能够生成的方向流图的纯粹,基于Javascript的实现吗?我对漂亮的视觉效果输出不感兴趣,但计算出每个节点的最大深度,以及优化贝塞尔线的布局,以便在处理图形而不是树时最小化相交边的数量信息.我想在浏览器中运行此代码; 我知道我可以轻松地将Graphviz作为扩展名嵌入到我的节点服务器中,甚至popen()可以将.dot格式化的图形信息流式传输.
作为参考,这是典型的GraphViz输出.注意元素如何堆叠和间隔开以允许连接线在节点之间传播,而不交叉(经常)或穿过节点.

当我用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
我下载了Graphviz 2.38MSI版本并安装在文件夹下C:\Python34,然后我运行pip install Graphviz,一切顺利.在系统的路径中我添加了C:\Python34\bin.当我尝试运行测试脚本时filename=dot.render(filename='test'),我收到了一条消息
RuntimeError: failed to execute ['dot', '-Tpdf', '-O', 'test'], make sure the Graphviz executables are on your systems' path
Run Code Online (Sandbox Code Playgroud)
我试图放入"C:\Python34\bin\dot.exe"系统的路径,但它不起作用,我甚至创建了一个"GRAPHVIZ_DOT"有价值的新环境变量"C:\Python34\bin\dot.exe",仍然无法正常工作.我试图卸载Graphviz并点击卸载graphviz,然后重新安装它并重新安装pip,但没有任何效果.
整个回溯消息是:
Traceback (most recent call last):
File "C:\Python34\lib\site-packages\graphviz\files.py", line 220, in render
proc = subprocess.Popen(cmd, startupinfo=STARTUPINFO)
File "C:\Python34\lib\subprocess.py", line 859, in __init__
restore_signals, start_new_session)
File "C:\Python34\lib\subprocess.py", line 1112, in _execute_child
startupinfo)
FileNotFoundError: [WinError 2] The system cannot find the file specified …Run Code Online (Sandbox Code Playgroud) 我正在使用Graphviz 2.30.标签的水平定位可以解决,但在少数情况下,需要修改角度.
例如,我在这里尝试了角度的各种值但没有任何影响:
ABB -> ABACUS[label="applied", fontname="Arial", fontsize=15, labelangle=110];
Run Code Online (Sandbox Code Playgroud)
使用Graphviz时,如何显示与边缘对齐(即平行)的标签digraph.
digraph由于NDA ,整个将不会发布.此外,旋转仅适用于少数标签.
我一直在寻找一些描述如何使用doxygen生成简单类图的材料,但却找不到.有人可以帮忙吗?
我需要从一组C++文件中创建如下所示的图表.

如果有更好的工具来实现这一目标,请告诉我.
刚刚通过anaconda安装了一个软件包(conda install graphviz),但是ipython找不到它.
我可以在C:\ Users\username\Anaconda\pkgs中看到一个graphviz文件夹
但是没有任何内容:C:\ Users\username\Anaconda\Lib\site-packages
graphviz ×10
dot ×4
python ×2
anaconda ×1
c++ ×1
doxygen ×1
graphics ×1
installation ×1
javascript ×1
labels ×1
pydot ×1
python-2.7 ×1
subgraph ×1
uml ×1
windows ×1