3

解決策は簡単だと思いますが、円をジオマップにプロットするときに半径の範囲を制限する方法を見つけようとしています。サイズの範囲がかなり広い値があり、値が大きいほどマップのかなりの量をカバーすることになります。

d3.csv("getdata.php", function(parsedRows) {

    data = parsedRows
    for (i = 0; i < data.length; i++) {
      var mapCoords = this.xy([data[i].long, data[i].lat])
      data[i].lat = mapCoords[0]
      data[i].long = mapCoords[1]
    }

    vis.selectAll("circle")
    .data(data)
    .enter().append("svg:circle")
    .attr("cx", function(d) { return d.lat })
    .attr("cy", function(d) { return d.long })
    .attr("stroke-width", "none")
    .attr("fill", function() { return "rgb(255,148,0)" })
    .attr("fill-opacity", .4)
    .attr("r", function(d) { return Math.sqrt(d.count)})
  })

これは私が今持っているものです。

4

1 に答える 1

2

(最小/最大入力値)と(最小/最大出力許容値)scalesを設定して、d3を使用することをお勧めします。これを簡単にするために、ドメインの値を使用して設定することを躊躇しないでください。domainranged3.mind3.max

d3.scaler属性値を割り当てるときに使用できる関数を返します。例えば:

var scale = d3.scale.linear.domain([ inputMin, inputMax ]).range([ outputMin, outputMax ]);
vis.selectAll("circle")
  // etc...
  .attr( 'r', function(d) { return scale(d.count) });
于 2013-02-28T04:13:00.973 に答える