Graphviz:改进思维导图

3

想要制作如下思维导图:

图片链接已失效。

我尝试了以下方法:

digraph Alf {
size = "15";
node [ shape = record , style=filled, fillcolor="#efefef",fontname=Helvetica, fontsize=10.5, fontcolor="#2b2b2b", height=0.25, width=1, penwidth=0 ];
edge [arrowhead=normal,arrowsize=0.5,len=0.5, color="#bfbfbf"];

root [label ="Autors i teories de la comunicació no verbal"];
1 [ label="es concreta en", fontcolor="#00aeef", fontsize=9.5, fillcolor=white ];

root->1;
1->"LOE" 
1->"Estratègies";
1->"Activitats";
1->"Recursos";

2 [label="programes d'aprenentatge", fontcolor="#00aeef", fontsize=9.5, fillcolor=white]; 

"LOE"->2 
"Estratègies"->2;
"Activitats"->2;
"Recursos"->2;

3 [label="es pot fer gràcies a", fontcolor="#00aeef", fontsize=9.5, fillcolor=white]; 
2->"Comunicació no verbal"->3;

3->"Recordatori de\nconductes innates";
3->"Intencionalitat";
3->"Observació";
3->"Imitació";
}

这是什么生成的?非常相似,但不完全相同:-( 如您所见。

graphviz diagram

有人能给我展示最接近的解决方案或改进代码吗?


链接已失效。 - Christoph90
3个回答

6
我相信您想要一个形状为节点,如下所示:
digraph Alf {
size = "15";
node [ shape = record , style=filled, fillcolor="#efefef",fontname=Helvetica, fontsize=10.5, fontcolor="#2b2b2b", height=0.25, width=1, penwidth=0 ];
edge [arrowhead=normal,arrowsize=0.5,len=0.5, color="#bfbfbf"];

root [label ="Autors i teories de la comunicació no verbal"];
1 [shape=point penwidth height=0 width=0]


root->1 [ label=" es concreta en", fontcolor="#00aeef", fontsize=9.5, fillcolor=white arrowhead=none fontname=Helvetica];

1->"LOE" 
1->"Estratègies";
1->"Activitats";
1->"Recursos";

2 [shape=point penwidth height=0 width=0]



"LOE"->2 [arrowhead=none]; 
"Estratègies"->2 [arrowhead=none];
"Activitats"->2 [arrowhead=none];
"Recursos"->2 [arrowhead=none];


3 [shape=point penwidth=0 height=0 width=0];

2->"Comunicació no verbal" [label=" programes d'aprenentatge", fontcolor="#00aeef", fontsize=9.5, fillcolor=white fontname=Helvetica];
"Comunicació no verbal" -> 3 [label=" es pot fer gràcies a" fontcolor="#00aeef" fontsize=9.5 fillcolor=white arrowhead=none fontname=Helvetica]; 

3->"Recordatori de\nconductes innates";
3->"Intencionalitat";
3->"Observació";
3->"Imitació";
}

graphviz result


真的做得很好!只有第二点,在“学习程序”标签之前,不是最好的解决方案。有没有办法清除箭头,只保留点呢? - xbelanch
是的,对于边缘,您需要使用 arrowhead=none。请查看更改后的答案。 - René Nyffenegger

3
另一种可能性:
digraph Alf {
  size = "15";
  node [ shape = record, style=filled, fillcolor="#efefef", fontname=Helvetica,
         fontsize=10.5, fontcolor="#2b2b2b", height=0.25, width=1, penwidth=0 ];
  edge [ arrowhead=normal, arrowsize=0.5, len=0.5, fontcolor="#00aeef",
         fontname=Helvetica, fontsize=9.5 ];

  root [ label ="Autors i teories ..." ];
  1 [ style=invis, label="" ];
  root->1 [ headclip=false,arrowhead=none ] ;

  {
    rank=same ;
    1 ; "1b" ;
  }
  "1b" [ shape=none,style=solid,label="es concreta en" ];
  1 -> "1b" [ style=invis ];

  1->"LOE" [ tailclip=false ];
  1->"Estrategies" [ tailclip=false ];
  1->"Activitats" [ tailclip=false ];
  1->"Recursos" [ tailclip=false ];

  2 [ style=invis, label="" ];
  "LOE"->2 [ headclip=false,arrowhead=none ] ;
  "Estrategies"->2 [ headclip=false,arrowhead=none ];
  "Activitats"->2 [ headclip=false,arrowhead=none ];
  "Recursos"->2 [ headclip=false,arrowhead=none ];

  {
    rank=same ;
    2 ; "2b" ;
  }
  "2b" [ shape=none,style=solid,label="programes d'aprenentatge" ];
  2 -> "2b" [ style=invis ];

  2->"Comunicacio no verbal" [ tailclip=false ];

  3 [style=invis, label="" ];
  "Comunicacio no verbal" -> 3 [ headclip=false,arrowhead=none ];

  {
    rank=same ;
    3 ; "3b" ;
  }
  "3b" [ shape=none,style=solid,label="es pot fer gracies a" ];
  3 -> "3b" [ style=invis ];

  3->"Recordatori de\nconductes innates" [ tailclip=false ];
  3->"Intencionalitat" [ tailclip=false ];
  3->"Observacio" [ tailclip=false ];
  3->"Imitacio" [ tailclip=false ];
}

Graphviz output


干得好!另一个问题是箭头和节点之间的距离。原始图形留出了一点空间(视觉上更加舒适),边的长度也缩短了。 - xbelanch

1

要去掉箭头,只需将arrowhead=none添加到边缘或默认边缘定义(edge[...])中,就像我在下面做的那样:

digraph Alf {
size = "15";
node [ shape = record , style=filled, fillcolor="#efefef",fontname=Helvetica, fontsize=10.5, fontcolor="#2b2b2b", height=0.25, width=1, penwidth=0 ];
edge [arrowhead=normal,arrowsize=0.5,len=0.5, color="#bfbfbf"];

root [label ="Autors i teories de la comunicació no verbal"];
1 [shape=point penwidth height=0 width=0]


root->1 [ label=" es concreta en", fontcolor="#00aeef", fontsize=9.5, fillcolor=white arrowhead=none fontname=Helvetica];

1->"LOE" 
1->"Estratègies";
1->"Activitats";
1->"Recursos";

2 [shape=point penwidth height=0 width=0]


edge[arrowhead=none]
"LOE"->2 
"Estratègies"->2;
"Activitats"->2;
"Recursos"->2;
edge[arrowhead=normal]

3 [shape=point penwidth=0 height=0 width=0];

2->"Comunicació no verbal" [label=" programes d'aprenentatge", fontcolor="#00aeef", fontsize=9.5, fillcolor=white fontname=Helvetica];
"Comunicació no verbal" -> 3 [label=" es pot fer gràcies a" fontcolor="#00aeef" fontsize=9.5 fillcolor=white arrowhead=none fontname=Helvetica]; 

3->"Recordatori de\nconductes innates";
3->"Intencionalitat";
3->"Observació";
3->"Imitació";
}

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接