範囲です。このために私は、スタックレイアウトを使用して、私は現時点ではJSONで私のデータセットを更新します。表示のみ全体値Iは、ウェブサイトのビューのリアルタイム表現を表示するd3jsを使用してい0-1又は0-2
y軸に表示されるビューが1つしかない場合(グラフのビューの量に関連するダイナミック)、軸のラベルは次のとおりです。1 =>0, 0.2, 0.4, 0.6, 0.8, 1
、軸のラベルは2 =>0, 0.5, 1, 1.5, 2
それはページのビューを表示するので、これは私のデータセットの意味がない、とあなたは半分のビューを持つことができません。
私はこれだけのスケールのうち、全体の値を取得する必要がありますthe documentation of rangeRound()によると
var y_inverted = d3.scale.linear().domain([0, 1]).rangeRound([0, height]);
に私のy軸をベースd3jsでリニアスケールを持っています。私の軸を描画するために私が使用します。
var y_axis = svg.append("g")
.attr("class", "y axis")
.attr("transform", "translate(0,0)")
.call(y_inverted.axis = d3.svg.axis()
.scale(y_inverted)
.orient("left")
.ticks(5));
それは私が呼び出すことによって、この毎秒更新リアルタイムアプリケーションであるため:私が使用するデータを知っているよう
function update(){
y_inverted.domain([yStackMax, 0]);
y_axis.transition()
.duration(interval)
.ease("linear")
.call(y_inverted.axis);
}
yStackMaxは限り、stacklayoutから計算されるが、 y値には整数のみが含まれています。
var yStackMax = d3.max(layers, function(layer) {
return d3.max(layer, function(d) {
return d.y0 + d.y;
});
});
私はy軸に適切な値を得るためにいくつかのことを試みました。
d3.svg.axis()
.scale(y_inverted)
.orient("left")
.ticks(5).tickFormat(d3.format(",.0f"))
は私に最も近いSOFARを手に入れたが、それはまだそれが2だときyStackMax
は、2ティック1ですが、yStackMax
あれば、それはまた、動作するはずときのみ1つの目盛りを持つことで基本的に私が欲しいもの0, 0, 0, 1, 1, 1
を表示します12または1,000,000
あなたは答えの一つに満足している場合は、それを受け入れてください。 – Juve