gpt4 book ai didi

javascript - 使用 d3.scale.log() 时地平线图不可见

转载 作者:行者123 更新时间:2023-12-02 19:27:26 25 4
gpt4 key购买 nike

我已经使用默认的线性比例成功绘制了地平线图,它们看起来很棒。不幸的是,当我尝试使用 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);

如果我简单地将对数刻度替换为线性刻度,一切都会正常工作。

最佳答案

面积图(其中水平图是一种特殊情况)在对数刻度上没有意义:零表示无穷大。实际上,这表现为渲染错误,因为坐标为 ±Infinity 或 NaN。

如果您想使用对数刻度,则需要不同的不带零基线的图表类型,例如折线图。比较表也可能有效。如果您想保留水平图表并且不想使用线性刻度,请尝试使用 sqrt(或更一般地说,pow)刻度。

关于javascript - 使用 d3.scale.log() 时地平线图不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11924335/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com