标签: dot

使用Graphviz的dot或neato来布局簇

我正在尝试使用 dot 绘制我们企业中的服务和服务器的部署图。对于第一次迭代,我使用neato将每个服务绘制为一个盒子,并使用graphviz和neato防止重叠记录,再加上允许样条线,使我能够获得一个像样的布局,并将边缘作为依赖项。

现在我需要将物理服务器放置在每个盒子内。首先,我将每个服务制作为一个名称以cluster开头的子图,然后将代表物理服务器的节点放置在每个框中。再次,在 GraphViz 的帮助下- 如何连接子图?我伪造了边缘来连接集群而不是节点。问题是,这只适用于点。当我使用 neato 进行布局时,它不知道边缘位于簇之间,因此它仅移动我用来锚定边缘的簇的节点。结果是簇盒巨大且重叠。

我希望这是有道理的。有没有办法强制neato将集群中的节点分组?

dot graphviz neato

2
推荐指数
1
解决办法
6253
查看次数

用图点连接边

我需要使用点在两条边之间添加一个链接。我需要添加到图中的是图片中显示的两条边之间标有“b”的红色链接。

源代码如下:

digraph { 
    a -> b; 
    a -> c; 
} 
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

graph-theory dot graphviz

2
推荐指数
1
解决办法
964
查看次数

如何在Python中创建DOT文件?

我有一个数字电路模拟器,需要绘制几乎完全像这个问题的电路图(和答案)与dot/graphviz的方框图布局

这是我第一次遇到DOT和graphviz.幸运的是,DOT语言规范可用,并且还有许多示例.

然而,我仍然不清楚一个细节,我要问的是一个新手:我有一个完整的数据来绘制图表.如何从中创建DOT文件?

作为文字逐行?

# SIMPLIFIED PSEUDOCODE
dotlines = ["digraph CIRCUIT {"]
for node in all_nodes:
    dotlines.append("  {}[{}];".format(node.name, node.data))
for edge in all_edges:
    dotlines.append("  {} -> {};".format(edge.from_name, edge.to_name))
dotlines.append['}']
dot = "\n".join(dotlines)
Run Code Online (Sandbox Code Playgroud)

或者我应该以某种方式转换我的数据并使用一些模块以DOT格式导出它?

python dot graphviz

2
推荐指数
1
解决办法
3353
查看次数

使用 GraphViz 创建复杂的包图

我想使用点语言创建一个包图,类似于下面的图。我知道可以使用“簇”嵌套元素,但不确定是否可以将标签放在外包装的选项卡区域中。让我知道是否可能。

UML包图

uml dot graphviz package-diagram

2
推荐指数
1
解决办法
2404
查看次数

我可以用点语言 (Graphviz) 定义子集群吗?

在 dot 中,您可以定义集群,它们基本上是一组节点周围的框。(1)

是否可以定义一个集群,使其另一个集群中呈现(一个盒子中的一个盒子)?

(1)也参见子图和群集http://www.graphviz.org/content/dot-language

dot graphviz

2
推荐指数
1
解决办法
863
查看次数

Graphviz:水平对齐不适用于向后箭头

我制作了以下图形:

在此输入图像描述

我想添加一个额外的箭头,从“远程存储库”一直指向“工作副本”(标有“git pull”),并且我希望该箭头理想地首先稍微向下,然后向左,然后向上。

当我简单地在代码中添加一个箭头时,图形最终看起来像这样:

在此输入图像描述

这是代码:

digraph G {
    /* set direction of graph to be left-->right */
    rankdir="LR";

    /* make boxes instead of ellipses */
    node [shape=box];

    /* should enforce nodes to be horizontally aligned */
    /* is not working, though... */
    rank=same;

    /* assign labels to nodes */
    wc [label="working copy"];
    id [label="index"];
    lr [label="local repo"];
    rr [label="remote repo"];

    wc -> id [label="git add"];
    id -> lr [label="git commit"];
    lr -> rr [label="git push"];

    rr -> wc [label="git pull"]; …
Run Code Online (Sandbox Code Playgroud)

dot graphviz

2
推荐指数
1
解决办法
3967
查看次数

AttributeError: 'module' 对象没有 networkx 库的属性 'write_dot'

我正在使用networkx库来读取和写入dot图形。根据此处文档write_dot()方法应该可以访问,但是当我尝试时,

>>> import networkx
>>> networkx.write_dot(graph,fileName)
Run Code Online (Sandbox Code Playgroud)

我收到以下错误。

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'write_dot'
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

python graph dot networkx

2
推荐指数
1
解决办法
2411
查看次数

如何在DOT文件中指定边缘向上

我想呈现一个有向图,如:

    A
   ^ ^
  /   \
 /     \
B       C
Run Code Online (Sandbox Code Playgroud)

但是,无论我以何种顺序排列语句,dot都坚持生成如下图像:

B       C
 \     /
  \   /
   v v
    A
Run Code Online (Sandbox Code Playgroud)

我试过指定端口,但是然后边缘就包起来了。它不会更改节点的位置。

graph dot graphviz

2
推荐指数
2
解决办法
226
查看次数

如何在 VSCode、Windows 10 中可视化带有“Graphviz (dot) Stephanvs”扩展名的 .dot 文件?

  • 操作系统:Windows 10,64 位
  • 编辑器:VSCode 1.55.2(安装了 Graphviz (dot) Stephanvs 扩展)

我正在观看一门课程,他说安装“Graphviz(点)Stephanvs”扩展。

我安装了该扩展,然后重新加载 VSCode。

我有一个 .dot 文件,当我单击...图标时,我没有看到“在侧面打开预览”选项。

我也尝试过ctrl + k- ctrl + k,v-ctrl + shift + v但没有成功。

在此输入图像描述

dot graphviz decision-tree windows-10 visual-studio-code

2
推荐指数
1
解决办法
7679
查看次数

如何在ruby中可视化哈希数据结构?

我有一个哈希对象,其结构看起来类似于:

{:category1 => 
 {:subcategory1 => 
  [ 
   {:article => "some article", :date => "2010-04-04"},
   ...
  ],
  :subc2 => [...] 
 },
 :category2 => {...},
 ...
}
Run Code Online (Sandbox Code Playgroud)

如何将它可视化为红宝石中的图形?

是否有一个简单的方法/ gem/lib将此Hash转换为DOT?

ruby hash graph dot

1
推荐指数
1
解决办法
3945
查看次数

GraphViz没有边缘的节点的点布局

我正在使用GraphViz点布局计算相当大的布局.我的源结构是一个图表,其中一些节点连接而其他节点没有连接.连接节点的布局是完美的,但点对齐所有其他节点的直线行,这导致相当大的输出长度.是否有任何改变摆脱这个?

layout dot graphviz

1
推荐指数
1
解决办法
1589
查看次数

使用PyDot排列Dot图形的头部?

我正在制作一个动态生成的实验室实验图.这就是现在的样子:

实验图

理想情况下,我希望蓝色节点在顶部排成一行,这样无论导致它们的历史有多大,当前的实验都是可见的.有没有办法在GraphViz中做到这一点?我正在使用PyDot,但也打开手动编辑点图.

我在这里发现了一个可能相关的问题,是否会将它们放在子图帮助中?

编辑:这是当前的点代码.

digraph depgraph {
rankdir=BT;
dpi=400;
"/experiments/2013-12-19_planmacro" [shape=rectangle, href="/experiments/2013-12-19_planmacro", fontsize=11, color="#61BD4D", label="Plan 96-well plate montage macro", penwidth=2];
"/experiments/2013-07-01_fluoromax" [shape=rectangle, href="/experiments/2013-07-01_fluoromax", fontsize=11, color="#cccccc", label="Testing OD730", penwidth=2];
"/experiments/2013-06-12_cloning" [shape=rectangle, href="/experiments/2013-06-12_cloning", fontsize=11, color="#cccccc", label="Re-cloning TFs", penwidth=2];
"/experiments/2014-01-02_startwt" [shape=rectangle, href="/experiments/2014-01-02_startwt", fontsize=11, color="#61BD4D", label="Start WT Cultures", penwidth=2];
"/experiments/2013-06-04_learning" [shape=rectangle, href="/experiments/2013-06-04_learning", fontsize=11, color="#cccccc", label="Learning R + Bioconductor", penwidth=2];
"/experiments/2013-07-xx_induction" [shape=rectangle, href="/experiments/2013-07-xx_induction", fontsize=11, color="#61BD4D", label="induction again", penwidth=2];
"/experiments/2013-06-04_bg11" [shape=rectangle, href="/experiments/2013-06-04_bg11", fontsize=11, color="#cccccc", label="BG11 Media + Plates", penwidth=2];
"/experiments/2013-06-13_chipseq" [shape=rectangle, href="/experiments/2013-06-13_chipseq", fontsize=11, color="#61BD4D", …
Run Code Online (Sandbox Code Playgroud)

python graph dot graphviz pydot

1
推荐指数
1
解决办法
1448
查看次数

Graphviz 在子图中渲染节点,为什么?

我想显示一个a指向一个节点的节点bb位于子图中。以下点图可视化代码应该可以工作。

digraph
{
    a;

    subgraph cluster_mysubgraph
    {
        a->b;       
    }
}
Run Code Online (Sandbox Code Playgroud)

唉,虽然节点a是在任何子图之外声明的,但它是在内部渲染的mysubgraph(在 Ubuntu 14.04 上的 graphviz 2.36.0 上观察到):

a 不应该在 b 子图中

我尝试过诸如预声明b之类的变体。没有成功。

解决方法是在另一个集群子图中声明a

digraph
{
    subgraph cluster_pseudo
    {
        a;
    }

    subgraph cluster_mysubgraph
    {
        a->b;       
    }
}
Run Code Online (Sandbox Code Playgroud)

这可以防止a出现在 内部mysubgraph,但另一个子图并不是真正的选择。

解决方法在自己的子图中放置一个,不好

a实际上应该在任何子图之外。

问题

  • 事情应该是这样的吗?
  • 是否有保留预期外观的解决方法?

dot graphviz subgraph

0
推荐指数
1
解决办法
566
查看次数