标签: graphviz

在Graphviz中将集群放在相同的排名上

我希望这两个节点出现在同一级别:

在此输入图像描述

digraph G {
    subgraph cluster1 {
        label="Local Datacenter";
        router1;
        host1;
    }
    subgraph cluster2 {
        label="Remote Datacenter";
        router2;
        host2;
    }
    router1 -> router2;
    router2 -> host2;
    router1 -> host1;
}
Run Code Online (Sandbox Code Playgroud)

我已经尝试使用rank=samerank=min,但他们不给我我需要什么.

有趣的是,如果我设置rankdir=LR并注释掉两个路由器到主机的边缘,它会给我我想要的外观 - 但我想保持边缘不变.

graphviz

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

如何在点中控制子图的布局?

我有digraph许多独立和简单subgraphs的各种尺寸.dot水平放置所有这些子图,所以我最终得到一个40000x200输出文件,例如:

G1 G2 G3 G.....4 G5
Run Code Online (Sandbox Code Playgroud)

我如何告诉dot在两个维度中布局这些子图以获得类似的东西:

G1 G2 G3
G.....4
G5
Run Code Online (Sandbox Code Playgroud)

谢谢.

dot graphviz

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

如何在GraphViz中设置点格式的输出大小?

我想确保布局后所有节点都在某个范围内(比如[0,0,W,H]).

我认为边界框将是使用bb属性的解决方案,但dotneato都只是覆盖它.

例如我的图表:

strict digraph {
    1,2,3;
    1 -> 3;
    3 -> 2;
}
Run Code Online (Sandbox Code Playgroud)

产量neato -Gbb="0,0,50,50" -T dot file.txt:

strict digraph {
        graph [bb="0,0,120.49,162.36"];
        node [label="\N"];
        1        [height=0.5,
                pos="27,18",
                width=0.75];
        3        [height=0.5,
                pos="70.233,75.918",
                width=0.75];
        1 -> 3   [pos="e,57.954,59.469 39.043,34.133 43.004,39.441 47.504,45.468 51.827,51.261"];
        2        [height=0.5,
                pos="93.485,144.36",
                width=0.75];
        3 -> 2   [pos="e,87.436,126.56 76.221,93.545 78.643,100.67 81.496,109.07 84.177,116.97"];
}
Run Code Online (Sandbox Code Playgroud)

我得到的任何值相同的位置bb或者任意组合sizedpi.

我需要的是在给定的框中包含所有节点.

有什么建议怎么做?

全文:

我正在使用来自networkx的*graphviz_layout*来布局我的图表.我用pyprocessing绘制图形.我想避免重新缩放*graphviz_layout*的结果,如果有办法告诉neato我的界限.

graphviz networkx pygraphviz pyprocessing

31
推荐指数
1
解决办法
3万
查看次数

如何将默认节点形状设置为框而不是椭圆形?

我的图表中有一些用dot语言编写的长标签.结果,(默认的形状是椭圆形的)我的图形中有一些不太实用的薄实长卵形,占用了很多空间.

除非另有说明,否则我想将所有节点的默认形状设置为框.

我已经看到了node符号,但它需要列出受样式影响的任何节点.

用点语言可以吗?

dot graphviz

30
推荐指数
3
解决办法
5179
查看次数

Graphviz中隐藏的边缘

我正在尝试使用Graphviz(符合neato)创建图形,我想将节点放在特定位置.为此,我为所有边指定了精确的边长.但是,我不希望所有边缘在最终图像中可见.

你知道隐藏边缘的方法吗?我应该提一下,我尝试将边缘着色为白色,但是发生的是我在图形节点上画了白线 - 它不是很美观......

visualization graph graphviz neato

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

Graphviz:如何设置'默认'箭头样式?

考虑这个dot语言代码:

digraph graphname {
    subgraph clusterA {
        node [shape=plaintext,style=filled];
        1 -> 2 [arrowhead=normal,arrowtail=dot];
        2 -> 3 -> X2 -> 5;
        6;
        7;
        label = "A";
        color=blue
    }
}
Run Code Online (Sandbox Code Playgroud)

在上面的示例中,只有1 -> 2连接将arrowhead=normal,arrowtail=dot应用样式; 所有其他箭头将是"默认"样式.

我的问题是 - 如何设置箭头样式(对于整个子图 - 或整个图形),而不必[arrowhead=normal,arrowtail=dot];在每个边连接旁边复制粘贴" "?

编辑:仅供参考 - 杰西答案不包含任何代码; 我写了那个片段并在这里占据了这个空间 - 由于不明原因,主持人将其从这里剪掉并粘贴到Jesse的答案中.

dot graphviz

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

自上而下的子图,左右内的子图

我想让我的图表看起来像这样:

但我只能得到这个:

问题是,rankdir 不工作subgraph.那么,如何模仿呢?

代码:

digraph G {
    node [shape = circle]
    0 [style = invis]

    0 -> "0A"

    subgraph clusterA {
        label=A
        "0A"
        "1A"
        "2A" -> "0A" [label=•]
    }

    subgraph clusterB {
        label=B
        "0B"
        "1B"
        "2B" -> "0B" [label=•]
    }

        subgraph clusterC {
        label=C
        "0C"
        "1C"
        "2C" -> "0C" [label=•]
    }

    subgraph clusterD {
        label=D
        "0D"
        "1D"
        "2D" -> "0D" [label=•]
    }

    subgraph clusterE {
        label=E
        "0E"
        "1E"
        "2E" -> "0E" [label=•]
    }

    subgraph clusterF …
Run Code Online (Sandbox Code Playgroud)

graphviz subgraph

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

Graphviz输出一团糟

我正在尝试使用GraphViz以点格式显示以下数据:

digraph n {
  node [nodesep=2.0, fontsize=11];
  graph [ overlap=false];
  edge[weight=0.2];
  A -> B [label="I/5"]
  A -> A [label="*/0"]
  A -> C [label="ii/2"]
  A -> H [label="vii/1"]
  B -> D [label="iii/1"]
  B -> E [label="IV/2"]
  B -> F [label="V/2"]
  B -> B [label="vi/2"]
  C -> F [label="V/2"]
  C -> H [label="vii/1"]
  D -> E [label="IV/2"]
  E -> D [label="iii/2"]
  E -> G [label="iv/1"]
  E -> F [label="V/3"]
  F -> B [label="I/4"]
  F -> B [label="vi/1"]
  F -> B [label="*/0"]
  G …
Run Code Online (Sandbox Code Playgroud)

graphviz

29
推荐指数
3
解决办法
2万
查看次数

将字符串传递给agraph.py中的老化.networkx和pygraphviz的问题

给出这个初始图:

import networkx as nx
G=nx.MultiGraph()
fromnodes=[0,0,1,1,1,1,1,2,3,4,5,5,5,7,8,9,10]
tonodes=[1,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]
dupedgeind=0
for x,y in zip(fromnodes,tonodes):
    if G.has_edge(x,y):
        dupedgeind=dupedgeind+1
        G.add_edge(x,y,key=dupedgeind)
    else:
        dupedgeind=0
        G.add_edge(x,y,key=dupedgeind)
Run Code Online (Sandbox Code Playgroud)

有人可以重新创建此错误吗?

pos=nx.nx_agraph.pygraphviz_layout(G,prog='sfdp')

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python27\lib\site-packages\networkx\drawing\nx_agraph.py", line 262, in pygraphviz_layout
    A=to_agraph(G)
  File "C:\Python27\lib\site-packages\networkx\drawing\nx_agraph.py", line 155, in to_agraph
    A.add_edge(u,v,key=str(key),**str_edgedata)
  File "C:\Python27\lib\site-packages\pygraphviz\agraph.py", line 484, in add_edge
    eh = gv.agedge(self.handle, uh, vh, key, _Action.find)
KeyError: 'agedge: no key'
Run Code Online (Sandbox Code Playgroud)

问题与调用graphviz的老化函数有关,它似乎与key参数的格式不一样; 当我改变时(第480行agraph.py):

...
    eh = gv.agedge(self.handle, uh, vh, key , _Action.create)
... …
Run Code Online (Sandbox Code Playgroud)

c python swig graphviz networkx

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

改进节点标签上的下标和上标的定位

在节点标签上同时使用下标和上标时,是否可以更改定位,使它们直接位于彼此之上.

例:

digraph G {
        x11[label=<X<SUB>1</SUB><SUP>(1)</SUP>>];   
        x21[label=<X<SUB>2</SUB><SUP>(1)</SUP>>];
        x11 -> x21 
    }
Run Code Online (Sandbox Code Playgroud)

哪个产生

在此输入图像描述

是否有可能(#)直接在上方#而不是略微向右?谢谢


我尝试添加一个自定义css脚本(re:HTML:我可以将下标文本放在上标吗?下)到我的dot脚本中stylesheet = "styles.css";(re:在Graphviz上的HTML标签中使用CSS类),但是,它会返回错误

错误:<span>第1行上的未知HTML元素

dot graphviz

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

标签 统计

graphviz ×10

dot ×4

networkx ×2

c ×1

graph ×1

neato ×1

pygraphviz ×1

pyprocessing ×1

python ×1

subgraph ×1

swig ×1

visualization ×1