如何用D3.js创建非层次关系圆图?

ALx*_*ALx 6 data-visualization d3.js

我正在尝试创建一个图表,该图表显示同一层次结构级别上的节点之间的链接,但是在圆形布局中显示不同的组.它基本上是附加到Circos对象的关键字/标签/组的可视化:

var data = 
    [
        {
            "name": "Adam",
            "tags": ["tall", "blonde"]
        },
        {
            "name": "Barbara",
            "tags": ["tall", "brunette", "student", "single"]
        }
    ];
Run Code Online (Sandbox Code Playgroud)

或者,就像我正在尝试做的事情:

var data =
    [
        {
            "name": "Project 1",
            "categories":
            [
                "Category A",
                "Category B",
                "Category C",
                "Category D"
            ]
        },
        {
            "name": "Project 2",
            "categories":
            [
                "Category C",
                "Category D",
                "Category E"
            ]
        },
        {
            "name": "Project 3",
            "categories":
            [
                "Category A",
                "Category E"
            ]
        },
        {
            "name": "Project 4",
            "categories":
            [
                "Category A",
                "Category C",
                "Category D",
                "Category E"
            ]
        },
        {
            "name": "Project 5",
            "categories":
            [
                "Category A",
                "Category B",
                "Category D"
            ]
        }
    ];
Run Code Online (Sandbox Code Playgroud)

每个对象可以具有与出现在圆圈中的节点副本的数量相对应的多个类别.在视觉上,它应该看起来像这样:

圆形图

D3.js有可能吗?如果是这样,哪个布局?它看起来像是chord(但没有值)和bundle(没有层次结构)之间的东西.

我想这个脚本需要遍历JSON数据并首先找到所有唯一类别,然后根据连接到它的内容和数量来分配和链接每个对象的节点.最后,它会标记每个类别.

任何想法,将不胜感激.