使用 Graphviz / yed 生成时间线+图表

cur*_*cat 5 graphviz

我有一个想法,表示类似家谱的东西,其中节点通过有向图连接,但在 y 轴上添加额外的时间维度。因此,想象一下页面顶部代表 1900 年,一直到底部代表 2020 年。

在此输入图像描述

有没有办法在 Graphviz 或 yed 中做这样的事情?基本上自动布局指定的有向图,但 y 轴上节点的位置与时间相关?

小智 8

这是 shells.gv - 部分来源:

digraph shells {
    size="7,8";
    node [fontsize=24, shape = plaintext];

    1972 -> 1976;
    1976 -> 1978;
    1978 -> 1980;
    1980 -> 1982;
    1982 -> 1984;
    1984 -> 1986;
    1986 -> 1988;
    1988 -> 1990;
    1990 -> future;

    node [fontsize=20, shape = box];
    { rank=same;  1976 Mashey Bourne; }
    { rank=same;  1978 Formshell csh; }
    { rank=same;  1980 esh vsh; }
    { rank=same;  1982 ksh "System-V"; }
    { rank=same;  1984 v9sh tcsh; }
    { rank=same;  1986 "ksh-i"; }
    { rank=same;  1988 KornShell Perl rc; }
    { rank=same;  1990 tcl Bash; }
    { rank=same;  "future" POSIX "ksh-POSIX"; }

    Thompson -> Mashey;
    Thompson -> Bourne;
    Thompson -> csh;
    csh -> tcsh;
    Bourne -> ksh;
    Bourne -> esh;
    Bourne -> vsh;
    Bourne -> "System-V";
    Bourne -> v9sh;
    v9sh -> rc;
    Bourne -> Bash;
    "ksh-i" -> Bash;
    KornShell -> Bash;
    esh -> ksh;
    vsh -> ksh;
    Formshell -> ksh;
    csh -> ksh;
    KornShell -> POSIX;
    "System-V" -> POSIX;
    ksh -> "ksh-i";
    "ksh-i" -> KornShell;
    KornShell -> "ksh-POSIX";
    Bourne -> Formshell;

    edge [style=invis];
    1984 -> v9sh -> tcsh ;
    1988 -> rc -> KornShell;
    Formshell -> csh;
    KornShell -> Perl;
}
Run Code Online (Sandbox Code Playgroud)

产生这个: 在此输入图像描述