2017-11-15 16 views
4

d3jsv4でd3.hierarchyを使用してサンバーストチャートを取得しようとしています。私はexampleと同じことをしました。しかし、私がオブジェクトの配列として取得していたデータと、例で使用したものと同じではないので、データが例と同じになるように小さな関数を追加しました。以下は、機能D3js v4を使用したd3.hierarchyのサンバーストチャートのデータ

const arrayToObject = (array) => 
    array.reduce((obj, item) => { 
     obj[item.name] = item 
     return obj 
}, {}) 

はここでフィドルのリンクです:https://jsfiddle.net/snt1/mbszu1u5/8/

はありがとうございました。

+1

あなたの質問や問題は何ですか? –

+0

@TomShanley "nullのプロパティ 'data'を読み取ることができず、代わりに黒い円が表示されるというエラーが表示されます。 – SNT

+1

docsは、期待されるデータフォーマットが配列children 'のプロパティを持つオブジェクトであることを示しています。https://github.com/d3/d3-hierarchy – ksav

答えて

3

私はこれが答えですかどうかわからないんだけど(私はそれだと思う)、または私がコメントとしてこれを投稿する必要がありますがここにあなたのコードを持つことだ:

d3.hierarchy()は名前」を持つオブジェクトを探します"と"子ども "のデータを操作し、そのデータを操作してからpartition(root)で使用します。あなたはhttps://bl.ocks.org/maybelinot/5552606564ef37b5de7e47ed2b7dc099でコードをデバッグする場合、私はちょうどオブジェクトにdata配列をラップする場合、あなたは、d3.hierarchy()があなたのコードで{name: "flare", children: Array[15]}

としてオブジェクトを受け取ることがわかります

は、言う: {name: "test", children: data}は、それが作成されます色と適切なタイトルのサンバースト。

ここにはFIDDLEの変更があります。 (btw私はarrayToObjectをコメントしました)

これが役立つことを願っています。 :)

関連する問題