点中的维恩图

时间:2018-03-07 14:36:49

标签: dot venn-diagram

我一直试图在Dot中实施维恩图。虽然Venn Diagrams可能在Dot中没有用,但它主要是因为我可以将它作为一个非常基本的构建块。

我提供了一些尝试这样做的方法:

graph G {
    subgraph cluster0 {
        color=white;

        subgraph cluster0 {
            label="1";
            color=black;
            a;
            b;
        }

        subgraph cluster1 {
            label="2";
            color=black;
            b;
            c;
        }
    }


    subgraph cluster1 {
        color=white;

        subgraph cluster2 {
            label="1";
            color=black;
            d;
        }

        subgraph cluster3 {
            label="1+2";
            color=black;
            e;
        }

        subgraph cluster4 {
            label="2";
            color=black;
            f;
        }
    }


    subgraph cluster2 {
        color=white;

        subgraph cluster5 {
            label="1";
            color=black;
            g;

            subgraph cluster6 {
                label="2";
                color=black;
                h;
            }
        }

        subgraph cluster6 {
            label="2";
            color=black;
            i;
        }
    }

    a -- d -- g [penwidth=0];
    b -- e -- h [penwidth=0];
    c -- f -- i [penwidth=0];
}

产:

three example Venn diagrams

这些都有问题:

  • 第一个说b位于1,但不是2。它应该在两者中。
  • 第二个看起来与12分开。并且很难显示它们两者。
  • 第三个是近乎完美的IMO,只需要将两个2子图连接在一起。

为了防止出现XY问题,我有:

  • 两台服务器,
  • 两台服务器之间的docker swarm和
  • 三个应用程序。位于:

    • 一个在第一台服务器上,而不在docker swarm中。
    • 其中一个位于docker swarm的第一台服务器上。
    • 其中一个位于docker swarm的第二台服务器上。

导致:

graph G {
    subgraph cluster0 {
        color=white;

        subgraph cluster0 {
            label="Server1";
            color=black;
            a;

            subgraph cluster0 {
                label="Docker";
                b;
            }
        }

        subgraph cluster1 {
            label="Server2";
            color=black;

            subgraph cluster0 {
                label="Docker";
                c;
            }
        }
    }


    subgraph cluster1 {
        color=white;

        subgraph cluster0 {
            label="Server1";
            color=black;

            d;
        }

        subgraph cluster1 {
            label="Docker";
            color=black;

            subgraph cluster0 {
                label="Server1";
                e;
            }

            subgraph cluster1 {
                label="Server2";
                f;
            }
        }
    }

    a -- d [penwidth=0];
    b -- e [penwidth=0];
    c -- f [penwidth=0];
}

Two different ways to display the docker server grouping

1 个答案:

答案 0 :(得分:-1)

我不确定你的问题到底是什么?但是使用graphviz可能无法进行维恩图。见Venn Diagram Drawing Algorithms