0

y軸の最大値に目盛り値が1つしかない単純なグラフを作成しようとしています。私は実際にこれを機能させましたが、関数内に物を含める必要があり、このコードを変更していなくても期待どおりに機能していないため、移動しました。

私はそれを 1 時間以上じっと見つめてきました。

まず、いくつかのコード:

function AlmViz() {
    ... 

    this.x = d3.time.scale();
    this.x.range([0, this.width]);

    this.y = d3.scale.linear();
    this.y.range([this.height, 0]);
}

function loadData(viz) {
    ... 

    viz.yAxis = d3.svg.axis()
        .orient("left")
        .tickSize(0)
        .tickValues([d3.max(viz.y.domain())])   // only one tick at max
        .tickFormat(d3.format(",d"));


    viz.y.domain([0, d3.max(level_data, function(d) { return d[category.name]; })]);

    ...
    viz.svg.append("g")
        .attr("class", "y axis")
        .call(viz.yAxis);
}

var viz = new AlmViz();
loadData(viz);

ただし、y軸は不安定です。ティックには正しいテキストが含まれていますが、間違った場所に配置されています。

<g class="y axis">
     <g class="tick major" style="opacity: 1;" transform="translate(0,7016)">
         <line x2="0" y2="0"></line>
         <text x="-3" y="0" dy=".32em" style="text-anchor: end;">7,016</text>
     </g>
     <path class="domain" d="M0,0H0V1H0"></path>
</g>

問題はtransform="translate(0,7016)です.誰かがそれを修正する方法を知っていますか?

以前の反復で実質的に同じコードがあり、正しく機能していたことに注意してください。詳細については、 https://github.com/jalperin/almviz/blob/d3/alm.jsを参照してください。

4

1 に答える 1