3

私は最近 dc.js を発見し、d3.js の Web サイトhttp://bl.ocks.org/mbostock/3885304で提供されている棒グラフの例を使用して単純な棒グラフを実装しようとしています。

ただし、dc.js 実装の一部として、クロスフィルターのディメンションとグループが必要です。

したがって、「文字」と「頻度」を含む単純な TSV ファイルを使用して、コードを次のように少し変更しました。

d3.tsv('testdata.tsv', function(error, data) {
  var cf = crossfilter(data);

  var dimension = cf.dimension(function(d){
    return d.letter;
  }

  var group = dimension.group().reduce(
    function(p,v){ 
      p.frequency += v.frequency
    }, 
    function(p,v){ 
      p.frequency -= v.frequency
    },
    function(){ 
      return { frequency: 0  };
  });

「頻度」を返すように valueAccessor を設定し、すべての「文字」のドメインで xAxis スケールを序数に設定したため、(棒グラフで) valueAccessor を何に設定する必要があるかについて少し混乱しています。データセットでは、ほぼすべての x 軸値 (「A - Y」) が ZERO ポイントにあり、1 つの x 軸値 (つまり「Z」) が x 軸の線の終わりにあるレンダリングされた棒グラフを取得します。 .

範囲を設定しようとしましたが、うまくいかないようです。私が誤解していることについてのアイデアは大歓迎です!

4

1 に答える 1

8

x 軸の間隔を正しく設定するには、.xUnits プロパティを dc.units.ordinal() に設定する必要がありました。

于 2013-03-12T22:02:30.757 に答える