这可能与如何在graphviz中将边缘标签放置在边缘上有关:我有以下图表,我使用该命令可视化dot -Teps g.dot > g.eps:
graph triple {
node [shape=box]; User; Object; Tag;
node [shape=diamond,style=filled]; Triple;
{
User -- Triple [label = "1"];
Object -- Triple [label = "1"];
}
{
rank=same;
User;
Object;
}
Triple -- Tag [label="n"];
}
Run Code Online (Sandbox Code Playgroud)
我希望通过在User的左侧放置User和Triple之间的标签来使结果更加对称.
我正在尝试安装django-extensions + graphviz + pygraph,但我不能.我已经完成了以下步骤(在Ubuntu下):
sudo apt-get install graphviz libgraphviz-dev graphviz-dev python-pygraphviz
Run Code Online (Sandbox Code Playgroud)
在项目virtualenv(运行python 2.7.2+):
source <path to virtualenv>/bin/activate
pip install django django-extensions
Run Code Online (Sandbox Code Playgroud)
如果我跑
which python
Run Code Online (Sandbox Code Playgroud)
它在我的virtualenv中选择了python,所以我正在使用的python是正确的.在virtualenv的网站包中我有pygraphviz和django-extensions
python manage.py shell
import django_extensions
import pygraphviz
RUNS OK
Run Code Online (Sandbox Code Playgroud)
在我的django项目中,我在我的INSTALLED_APPS中添加了"django_extensions"
但是当我跑的时候
python manage.py help
Run Code Online (Sandbox Code Playgroud)
我看不到命令,但它们不可用.
python manage.py graph_models -a -g -o model.png
Unknown command: 'graph_models'
Type 'manage.py help' for usage.
Run Code Online (Sandbox Code Playgroud)
我怎样才能解决这个问题 ?谢谢!
我用GraphViz可视化一系列过程.每个进程都按程序顺序包含一些读或写操作.自然地,期望针对每个处理以从左到右的顺序布置操作.
使用GraphViz(版本2.28),我的代码如下:
digraph G
{
ranksep = 1.0; size = "10,10";
{
node [shape = plaintext, fontsize = 20];
0 -> 1 -> 2 -> 3 -> 4;
}
node [shape = box];
{rank = same;0;wy1;rf1;rc1;rz1;ry1;ra1;rb1;rx2;}
{rank = same;1;wf1;}
{rank = same;2;wx2;wc1;}
{rank = same;3;wf2;wz2;wx3;wa1;}
{rank = same;4;wz1;wy2;wx5;wb1;}
wy1 -> rf1;
rf1 -> rc1;
rc1 -> rz1;
rz1 -> ry1;
ry1 -> ra1;
ra1 -> rb1;
rb1 -> rx2;
wx2 -> wc1;
wf2 -> wz2;
wz2 -> wx3; …Run Code Online (Sandbox Code Playgroud) digraph G {
a -> b [ label = "foo" ];
a -> b [ label = "bar" ];
}
Run Code Online (Sandbox Code Playgroud)
这将在'a'和'b'节点之间创建两条边.有没有办法只有一条边(将它们分组)?
有人在Windows上成功安装了PygraphViz吗?
由于没有适用于Windows的正式版本,我正在尝试自己构建它,但它无法编译.我不是第一个来面对这个问题,但我无法找到答案.
这是控制台输出:
C:\Python26\Lib\site-packages\pygraphviz-0.99.1>c:\python26\python.exe setup.py
install
library_path=C:/Program Files/Graphviz2.26.3/lib/debug/dll
include_path=C:/Program Files/Graphviz2.26.3/include/graphviz
running install
running build
running build_py
running build_ext
building 'pygraphviz._graphviz' extension
C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\cl.exe /c /nologo /Ox /MD /W
3 /GS- /DNDEBUG "-IC:/Program Files/Graphviz2.26.3/include/graphviz" -Ic:\python
26\include -Ic:\python26\PC /Tcpygraphviz/graphviz_wrap.c /Fobuild\temp.win32-2.
6\Release\pygraphviz/graphviz_wrap.obj
graphviz_wrap.c
warning: I don't know what to do with 'runtime_library_dirs': ['C:/Program Files
/Graphviz2.26.3/lib/debug/dll']
error: don't know how to set runtime library search path for MSVC++
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激!
我没有成功地在点中的节点处显示图像.
我的节点定义为:
SW103 [image="swOpen.png"]
Run Code Online (Sandbox Code Playgroud)
我可以查看,swOpen.png所以我认为该文件没问题,并且它与代码位于同一目录中.但是dot使用其标签"SW103"显示节点,而不是图像.
该文档提到图像文件中应包含大小信息,但我不知道该放入什么内容.
有人可以指向一个显示.png或.bmp文件作为节点的实际示例吗?(包括图像文件,如果我需要添加尺寸)
我正在尝试使用graphviz可视化树结构,问题是随着图形变大,graphviz开始重新排列节点的顺序.说我有以下,
A
/ | \
B C D
Run Code Online (Sandbox Code Playgroud)
它成为了,
A
/ | \
B D C
Run Code Online (Sandbox Code Playgroud)
它可能这样做是为了节省空间,但在我的上下文节点的顺序,我尝试添加,
graph [ordering="out"];
Run Code Online (Sandbox Code Playgroud)
但它没有改变输出.
编辑:
digraph bt {
graph [ordering="out"];
node [style="rounded", shape=box]
N_2386 -> N_2387
N_2387 -> N_2388
N_2388 -> N_2389
N_2388 -> N_2390
N_2387 -> N_2391
N_2386 -> N_2392
subgraph cluster_2393 {
labeljust = "l";
style=dashed;color="#B0B0B0"
N_2392 -> N_2394
N_2394 -> N_2395
N_2395 -> N_2396
N_2396 -> N_2397
N_2397 -> N_2398
N_2397 -> N_2399
N_2396 -> N_2400
N_2400 -> N_2401
N_2400 -> …Run Code Online (Sandbox Code Playgroud) 是否可以在节点名称中使用破折号?我尝试用反斜杠逃避(搜索网络也没有帮助).例:
digraph test {
some-name -> other-name;
}
Run Code Online (Sandbox Code Playgroud) 我想使用Graphviz创建一个流程图(类似于Visio).这是一个示例图.
digraph start_up {
node [style = rounded];
node [shape = rect] start end;
node [style = ""];
node [shape = diamond] "USB\nCommand\nArrived";
start -> "Initialize\nCode";
"Initialize\nCode" -> "USB\nCommand\nArrived";
"USB\nCommand\nArrived" -> "USB\nCommand\nArrived" [label="No" tailport=w headport=n];
"USB\nCommand\nArrived" -> "Has USB 3.0\nInterface Been\nSelected" [label = "Yes"];
"Has USB 3.0\nInterface Been\nSelected" -> end
}
Run Code Online (Sandbox Code Playgroud)
问题是当我在Graphviz中渲染这个由"USB\nCommand\nArrived" -> "USB\nCommand\nArrived" [label="No" tailport=w headport=n];
看起来非常难看的行创建时.我不介意曲线,但这条线看起来变形了.您可以在此处查看Graphviz创建的内容

有没有办法让这个看起来更好?