【问题标题】:D3: Multi-Series chart not working with last versionD3:多系列图表不适用于最新版本
【发布时间】:2015-11-09 15:02:44
【问题描述】:

我试图创建一个多系列折线图,我发现了这个有用的例子http://bl.ocks.org/bobmonteverde/2070069

问题在于它适用于 d3 的先前版本(版本 2)和最后一个版本(版本 3)的一些问题。经过调试,我发现错误出现在 D3 的 transition 函数中,当它尝试执行 transition = node[ns][id0]node[ns] 未定义时。我有这个工作 jsfiddle http://jsfiddle.net/jupa_aguilar/0L1pyw8u/。我还观察到对于 d3.v2.js,d3_selectionPrototype.transition 是:

d3_selectionPrototype.transition = function() {
var subgroups = [], subgroup, node;
for (var j = -1, m = this.length; ++j < m; ) {
  subgroups.push(subgroup = []);
  for (var group = this[j], i = -1, n = group.length; ++i < n; ) {
    subgroup.push((node = group[i]) ? {
      node: node,
      delay: d3_transitionDelay,
      duration: d3_transitionDuration
    } : null);
  }
}
return d3_transition(subgroups, d3_transitionId || ++d3_transitionNextId, Date.now());};

对于 d3.v3.js:

d3_transitionPrototype.transition = function() {
var id0 = this.id, id1 = ++d3_transitionId, ns = this.namespace, subgroups = [], subgroup, group, node, transition;
for (var j = 0, m = this.length; j < m; j++) {
  subgroups.push(subgroup = []);
  for (var group = this[j], i = 0, n = group.length; i < n; i++) {
    if (node = group[i]) {
      transition = node[ns][id0];
      d3_transitionNode(node, i, ns, id1, {
        time: transition.time,
        ease: transition.ease,
        delay: transition.delay + transition.duration,
        duration: transition.duration
      });
    }
    subgroup.push(node);
  }
}
return d3_transition(subgroups, ns, id1);};

对此有什么想法吗?

【问题讨论】:

  • 那是你在小提琴里放的一些狂野的混合曲!您内联了属于非常非常旧的 NVD3 版本的图表 lineWithLegend 的一些代码片段。该图表已于 2012 年 6 月被弃用,并已从 NVD3 中完全删除。这个旧版本的 NVD3 基于 D3 v2,这就是它在这种设置中工作的原因。我怀疑是否值得尝试运行此配置。我建议更新到最新版本的 D3 和 NVD3 并从头开始。这可能会更快,让您免于头痛。
  • 有道理!我将使用每个库的最新版本。谢谢!

标签: javascript d3.js nvd3.js


【解决方案1】:

最好使用 D3 最新版本开始您的代码。D3 最新版本与上一个版本相比有一些变化。

因此,请使用您从互联网上获得的舒适版本查看示例并尝试实施该示例,而不是自己将旧版本图表转换为新版本。

如果您想查看示例,请访问此 Multi Series Line chart with D3 V3

【讨论】:

  • 感谢您的帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-06-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-07
相关资源
最近更新 更多