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

digraph G {
    subgraph cluster1 {
        label="Local Datacenter";
        router1;
        host1;
    }
    subgraph cluster2 {
        label="Remote Datacenter";
        router2;
        host2;
    }
    router1 -> router2;
    router2 -> host2;
    router1 -> host1;
}
我已经尝试使用rank=same和rank=min,但他们不给我我需要什么.  
有趣的是,如果我设置rankdir=LR并注释掉两个路由器到主机的边缘,它会给我我想要的外观 - 但我想保持边缘不变.
我有digraph许多独立和简单subgraphs的各种尺寸.dot水平放置所有这些子图,所以我最终得到一个40000x200输出文件,例如:
G1 G2 G3 G.....4 G5
我如何告诉dot在两个维度中布局这些子图以获得类似的东西:
G1 G2 G3
G.....4
G5
谢谢.
我想确保布局后所有节点都在某个范围内(比如[0,0,W,H]).
我认为边界框将是使用bb属性的解决方案,但dot和neato都只是覆盖它.
例如我的图表:
strict digraph {
    1,2,3;
    1 -> 3;
    3 -> 2;
}
产量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"];
}
我得到的任何值相同的位置bb或者任意组合size和dpi.
我需要的是在给定的框中包含所有节点.
有什么建议怎么做?
全文:
我正在使用来自networkx的*graphviz_layout*来布局我的图表.我用pyprocessing绘制图形.我想避免重新缩放*graphviz_layout*的结果,如果有办法告诉neato我的界限.
我的图表中有一些用dot语言编写的长标签.结果,(默认的形状是椭圆形的)我的图形中有一些不太实用的薄实长卵形,占用了很多空间.
除非另有说明,否则我想将所有节点的默认形状设置为框.
我已经看到了node符号,但它需要列出受样式影响的任何节点.
用点语言可以吗?
我正在尝试使用Graphviz(符合neato)创建图形,我想将节点放在特定位置.为此,我为所有边指定了精确的边长.但是,我不希望所有边缘在最终图像中可见.
你知道隐藏边缘的方法吗?我应该提一下,我尝试将边缘着色为白色,但是发生的是我在图形节点上画了白线 - 它不是很美观......
考虑这个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
    }
}
在上面的示例中,只有1 -> 2连接将arrowhead=normal,arrowtail=dot应用样式; 所有其他箭头将是"默认"样式.
我的问题是 - 如何设置箭头样式(对于整个子图 - 或整个图形),而不必[arrowhead=normal,arrowtail=dot];在每个边连接旁边复制粘贴" "?
编辑:仅供参考 - 杰西的答案不包含任何代码; 我写了那个片段并在这里占据了这个空间 - 由于不明原因,主持人将其从这里剪掉并粘贴到Jesse的答案中.
我想让我的图表看起来像这样:

但我只能得到这个:

问题是,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 …我正在尝试使用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 …给出这个初始图:
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)
有人可以重新创建此错误吗?
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'
问题与调用graphviz的老化函数有关,它似乎与key参数的格式不一样; 当我改变时(第480行agraph.py):
...
    eh = gv.agedge(self.handle, uh, vh, key , _Action.create)
... …在节点标签上同时使用下标和上标时,是否可以更改定位,使它们直接位于彼此之上.
例:
digraph G {
        x11[label=<X<SUB>1</SUB><SUP>(1)</SUP>>];   
        x21[label=<X<SUB>2</SUB><SUP>(1)</SUP>>];
        x11 -> x21 
    }
哪个产生
是否有可能(#)直接在上方#而不是略微向右?谢谢
我尝试添加一个自定义css脚本(re:HTML:我可以将下标文本放在上标吗?下)到我的dot脚本中stylesheet = "styles.css";(re:在Graphviz上的HTML标签中使用CSS类),但是,它会返回错误
错误:
<span>第1行上的未知HTML元素