首页 > 解决方案 > 为什么此代码在 viz-js 站点中不起作用?

问题描述

这段代码

digraph R {

   node [shape=record];

   { rank = same; rA; sA; tA; }
   { rank = same; uB; vB; wB; }

   rA -> sA;
   sA -> vB;
   uB -> vB;
   wB -> tA;
}

在http://viz-js.com/中不起作用, 但在http://www.webgraphviz.com/中可以正常工作

为什么?如何修复才能在两个站点上工作?

标签: graphviz

解决方案


有趣的问题。

使用版本 2.38(点 - graphviz 版本 2.38.0 (20140413.2041))我得到了正确的图像(如http://www.webgraphviz.com/所示):

在此处输入图像描述

使用 2.40 版(点 - graphviz 2.40.1 版(20161225.0304))我收到错误消息:

Warning: flat edge between adjacent nodes one of which has a record shape - replace records with HTML-like labels
  Edge rA -> sA
Error: lost rA sA edge
Error: lost uB vB edge

图片看起来像:

在此处输入图像描述

所以问题很可能是 2 个解释器使用的 dot 版本。有一个更新版本的 dot 可用(2.42.2 见https://gitlab.com/graphviz/graphviz),但不太可能将它集成到 viz-js.com 中,就像 viz.js 存储库一样(https://gitlab.com/graphviz/graphviz /github.com/mdaines/viz.js)不幸的是,写着:此存储库已由所有者存档。它现在是只读的。


推荐阅读