我正在尝试使用 dot 绘制我们企业中的服务和服务器的部署图。对于第一次迭代,我使用neato将每个服务绘制为一个盒子,并使用graphviz和neato防止重叠记录,再加上允许样条线,使我能够获得一个像样的布局,并将边缘作为依赖项。
现在我需要将物理服务器放置在每个盒子内。首先,我将每个服务制作为一个名称以cluster开头的子图,然后将代表物理服务器的节点放置在每个框中。再次,在 GraphViz 的帮助下- 如何连接子图?我伪造了边缘来连接集群而不是节点。问题是,这只适用于点。当我使用 neato 进行布局时,它不知道边缘位于簇之间,因此它仅移动我用来锚定边缘的簇的节点。结果是簇盒巨大且重叠。
我希望这是有道理的。有没有办法强制neato将集群中的节点分组?
我已经在PhpStorm 中设置了PlantUML插件。
我已经下载了Graphviz 2.36并安装在我的机器上。
我已经搜索了如何设置Graphviz以便使用PlantUML在PhpStorm 中执行用例,但我找不到任何信息
我需要使用点在两条边之间添加一个链接。我需要添加到图中的是图片中显示的两条边之间标有“b”的红色链接。
源代码如下:
digraph {
a -> b;
a -> c;
}
Run Code Online (Sandbox Code Playgroud)

我有一个 graphviz (2.38.0 (20140413.2041)) 图,其中每个节点都包含几行文本,我希望不同的行具有不同的样式。目前我有:
digraph G{
stylesheet = "styles.css";
graph[rankdir=BT];
node[shape=box];
Andrew[label=<
Andrew
<br />Red
<br />34
>];
James[label=<
James
<br />Yellow
<br />26
>];
Andrew -> James;
}
Run Code Online (Sandbox Code Playgroud)
使用样式表:
.name {
font-weight: bold;
}
.age{
color: blue;
}
Run Code Online (Sandbox Code Playgroud)
我希望能够使用以下功能:
Andrew[label=<
<font class="name">Andrew</font>
<br />Red
<br /><font class="age">34</font>
>];
Run Code Online (Sandbox Code Playgroud)
但不幸的是 dot 给了我:
Warning: Illegal attribute class in <FONT> - ignored
Warning: Illegal attribute class in <FONT> - ignored
Run Code Online (Sandbox Code Playgroud)
我进行了搜索但找不到任何东西,所以我不确定是否有首选的方式来完成我想要实现的目标(例如某种生成重复格式的宏),我错过了.
我想用python3绘制一个决策树.然而,我只能找到python2模块:graphviz,ete3
我错过了什么?我可以用python3吗?你知道其他任何可能吗?
我使用Ubuntu 14.04.
编辑:
我尝试了命令sudo python3 -m pip install graphviz,但它仍然无法找到模块.
在 dot 中,您可以定义集群,它们基本上是一组节点周围的框。(1)
是否可以定义一个集群,使其在另一个集群中呈现(一个盒子中的一个盒子)?
(1)也参见子图和群集在http://www.graphviz.org/content/dot-language
我有数据框,我使用 graphviz
for id_key, group in df.groupby('ID'):
f = Digraph('finite_state_machine', filename='fsm.gv', encoding='utf-8')
f.body.extend(['rankdir=LR', 'size="5,5"'])
f.attr('node', shape='box')
for i in range(len(group)-1):
f.edge(str(group['category'].iloc[i]), str(group['category'].iloc[i+1]),
label=str(group['search_term'].iloc[i+1]))
f.render(filename=str(id_key))
Run Code Online (Sandbox Code Playgroud)
一切正常,直到“graph.render("iris")”行。然后我得到这个错误:ExecutableNotFound: failed to execute ['dot', '-Tpdf', '-O', 'iris'],确保 Graphviz 可执行文件在你系统的路径上
graph.render("iris")
Traceback (most recent call last):
File "<ipython-input-13-c002c0ff127c>", line 1, in <module>
graph.render("iris")
File "C:\Users\Rafay\Anaconda3\lib\site-packages\graphviz\files.py", line
175, in render
rendered = backend.render(self._engine, self._format, filepath)
File "C:\Users\Rafay\Anaconda3\lib\site-packages\graphviz\backend.py", line
127, in render
raise ExecutableNotFound(args)
ExecutableNotFound: failed to execute ['dot', '-Tpdf', '-O', 'iris'], make
sure the Graphviz executables are on your systems' PATH
Run Code Online (Sandbox Code Playgroud)
我有 Windows 10,正在使用 Anaconda 和 spyder。完整代码如下:
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import load_iris
from sklearn.tree …Run Code Online (Sandbox Code Playgroud) 我想呈现一个有向图,如:
A
^ ^
/ \
/ \
B C
Run Code Online (Sandbox Code Playgroud)
但是,无论我以何种顺序排列语句,dot都坚持生成如下图像:
B C
\ /
\ /
v v
A
Run Code Online (Sandbox Code Playgroud)
我试过指定端口,但是然后边缘就包起来了。它不会更改节点的位置。