如何使用d3.js避免图中的log 0

A_u*_*ser 8 javascript d3.js

我目前正在使用库d3.js.I我有使用 动态线图的线图 这里我们有绘制功率线性和日志的选项.但我的问题是我的数据集中可能有一些值为零,因为log 0未定义,因此代码无法绘制它.在我的代码中,比例设置如下

y = d3.scale.log().domain([0.1, max_y _value]).range([h, 0]).nice();
Run Code Online (Sandbox Code Playgroud)

这就是它的使用方式

  lineFunction = d3.svg.line()
        .y(function(d) {
          return y(d);
        });
Run Code Online (Sandbox Code Playgroud)

我知道这是一个奇怪的问题.但是有一种方法我可以处理log 0值,这样如果我有单个零值,其余的都正确绘制.我是否可以在同一语句中给出两个域和范围(处理0值),如果是,它将如何绑定到y轴?

谢谢任何帮助将不胜感激.

A_u*_*ser 15

我通过使用钳位功能解决了我的问题.这就是我改变代码的方式:

y = d3.scale.log().clamp(true).domain([0.1, max_y _value]).range([h, 0]).nice();
Run Code Online (Sandbox Code Playgroud)