2017-01-17 7 views
1

単一のオブジェクトを使用して棒グラフを作成しようとしています。このオブジェクトを大きなデータセットから切り離しましたが、今は.dataを使用して問題が発生しています。 .bindが動作する唯一のフォーマットは、配列内のいくつかのオブジェクトであるようです。ユーザーが特定の日付をクリックすると、データセットからオブジェクトを取得し、対応する棒グラフを作成するようにプロジェクトが作成されます。この文脈でbindは機能しますか? D3でd3js:1つのオブジェクト内でデータをバインドする方法

Object {Date: "2010", Paper and Paperboard: "71310", Glass: "11520", Ferrous: "16920", Aluminum: "3510"} 

答えて

1

data()機能は三つのこと受け入れ:

  1. 配列
  2. 機能
  3. 何も

あなたは1つだけを持っている場合は、言われていることをオブジェクトの場合、配列にラップする必要があります。

var myData = [{Date: "2010", Paper and Paperboard: "71310", Glass: "11520", Ferrous: "16920", Aluminum: "3510"}]; 

そして:

data(myData) 

か、あるいは:

var myObject = {Date: "2010", Paper and Paperboard: "71310", Glass: "11520", Ferrous: "16920", Aluminum: "3510"}; 

data([myObject]) 

しかし、あなたはあなたの入力した選択で一つだけの要素を持っています。

より良い方法は、オブジェクトの配列を作成するために、そのオブジェクトを反復処理することです。

PS:data()関数は、オブジェクトの特定のタイプを受け入れ、我々は配列を呼び出している:我々は、すべてのJavaScriptで配列はオブジェクトですが、私はここに私のポイントが明確であると考えていることを知っています。

+0

もう一度おねがいしますが、私はd3が自分のオブジェクトを複数のデータエントリとして扱うことができることを期待していました。私はオブジェクトの配列を作成しようとします – st4rgut

+0

はい、これを試して、それは確かに最高のアプローチです。 –

関連する問題