MySQL からデータを取得し、そのデータを使用して D3.js でグラフを作成するコードを作成する必要があります。次の形式で静的データを指定すると、D3.js コードが機能します。
{
"name": " ",
"children": [{
"name": "HSC",
"size": 0.20,
"children": [
[{
"name": "MPP",
"size": 15,
"children": [{
"name": "CMP",
"size": 8,
"children": [{
"name": "MEP",
"size": 6
}, {
"name": "GMP",
"size": 10,
"children": [{
"name": "early PM",
"size": 2,
"children": [{
"name": "early PM",
"size": 2,
"children": []
}]
}]
}]
}]
}]
},
{
"name": "AML",
"size": 1,
"children": [{
"name": "AML t(8,21)",
"size": 30
}, {
"name": "AML t(11q23)",
"size": 10
}, {
"name": "AML inv(16)",
"size": 8
}, {
"name": "AML t(15,17)",
"size": 11
}]
}
], "size": 1
}
したがって、NetworkX を使用して上記のような JSON 構造を作成できる Python で記述されたコードが必要です。
これまでの私のコード:
n = 1 # the number of children for each node
depth = 1 # number of levels, starting from 0
G = nx.Graph()
G.add_node(1) # initialize root
ulim = 0
for level, row in enumerate(rows): #each row contains name and a size
print row # loop over each level
nl = n**level # number of nodes on a given level
llim = ulim + 1 # index of first node on a given level
ulim = ulim + nl # index of last node on a given level
for i in range(nl): # loop over nodes (parents) on a given level
parent = llim + i
offset = ulim + i * n + 1 # index pointing to node just before first child
for j in range(n): # loop over children for a given node (parent)
child = offset + j
G.add_node(child)
G.add_edge(parent, child)