デフォルトの線形スケールを使用して地平線チャートを正常に描画しましたが、見栄えがします。残念ながら、d3.scale.log()スケーラーを使用しようとすると、グラフが表示されません。エラーはなく、何もありません。問題は入力データのゼロにあると思っていましたが、メトリックがゼロ以外の単一の値を返した場合でも、これが発生します。次に例を示します。
context = cubism.context(), horizon = context.horizon();
horizon.scale(d3.scale.log());
var flatMetric = context.metric(function(start, stop, step, callback) {
var values = [];
// convert start & stop to milliseconds
start = +start;
stop = +stop;
while (start < stop) {
start += step;
values.push(10);
}
callback(null, values);
});
d3.select("body").selectAll(".horizon")
.data([flatMetric]).enter().append("div")
.attr("class", "horizon")
.call(horizon);
対数目盛を線形目盛に置き換えるだけで、すべてが正常に機能します。