2

ここにこの折れ線グラフがあります:

jsfiddle.net/yfqQ4/

私の問題は、次のような凡例 (y 軸と x 軸) を使用してバックグラウンドで適切なグリッドを取得できないことです: http://lab.creativebrains.net/linechart.png

誰かがコードスニペットをどのように実装すべきか、またはそのようなものを投稿できますか?

ありがとう!

4

2 に答える 2

7

d3.svg.axis().scale() を使用して、グリッドを座標に結び付けることをお勧めします。私はあなたのコードに基づいて簡単な例を描きました: http://jsfiddle.net/yfqQ4/5/

ここに画像の説明を入力

要点は、既存のスケール x と y を使用し、目盛りをグリッドとして使用することです。heightwidthはコンテナのサイズを定義する変数であることに注意してください。関連するコードは次のとおりです。

var numberOfTicks = 6;

var yAxisGrid = d3.svg.axis().scale(y)
  .ticks(numberOfTicks) 
  .tickSize(width, 0)
  .tickFormat("")
  .orient("right");

var xAxisGrid = d3.svg.axis().scale(x)
  .ticks(numberOfTicks) 
  .tickSize(-height, 0)
  .tickFormat("")
  .orient("top");

svg.append("g")
  .classed('y', true)
  .classed('axis', true)
  .call(yAxisGrid);

svg.append("g")
  .classed('x', true)
  .classed('axis', true)
  .call(xAxisGrid);
于 2014-03-26T03:35:34.517 に答える
5

次のように背景グリッドを描画できます。

//vertical lines
svg.selectAll(".vline").data(d3.range(26)).enter()
    .append("line")
    .attr("x1", function (d) {
    return d * 20;
})
    .attr("x2", function (d) {
    return d * 20;
})
    .attr("y1", function (d) {
    return 0;
})
    .attr("y2", function (d) {
    return 500;
})
    .style("stroke", "#eee");

// horizontal lines
svg.selectAll(".vline").data(d3.range(26)).enter()
    .append("line")
    .attr("y1", function (d) {
    return d * 20;
})
    .attr("y2", function (d) {
    return d * 20;
})
    .attr("x1", function (d) {
    return 0;
})
    .attr("x2", function (d) {
    return 500;
})
    .style("stroke", "#eee");

ここで、jsfiddle (更新) でどのように機能するかを確認できます: http://jsfiddle.net/cuckovic/Phzvy/

于 2013-08-26T09:54:06.080 に答える