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を参照してください。