1

f我制作了一个多线图,我想管理空值。我有 2 种空值 '' 和 '' 所以我用它来映射 csv

var column = color.domain().map(function(name) {
  return {
    name: name,
    values: data.map(function(d) {
      if(d[name] === '' || d[name] === ' '){
        //if the data is empty I store it in d.vale as a string
        return {name: name, id: d.id, value: d[name]};
      }
      else{
        //if the value is not empty I store it in d.value as number and replacing the coma with a dot (replacedot function)
        return {name: name, id: d.id, value: +replace(replacedot(d[name]))};
      }

    })
  };
});

比在 line.defined 里面我检查 d.vale 是否不是一个字符串,如果不是我返回它:

var line = d3.svg.line()
.defined(function(d) { if(typeof d.value !== 'string'){ return d.value;}})

这可以很好地转义空值,但如果数据集中有一个 0.0 值,它会转义到...

我该如何解决?

谢谢丹尼尔

4

1 回答 1

4

.defined函数应该根据是否定义了行来返回真/假。您当前的函数不返回任何内容或返回值。明确地返回真/假比依赖对返回值的正确解释更安全,即使用

.defined(function(d) { return (typeof d.value !== 'string'); })
于 2013-10-07T10:27:51.137 回答