【问题标题】:D3.js "Error: Invalid value for <path> attribute" for moving averageD3.js“错误:<path> 属性的值无效”用于移动平均
【发布时间】:2015-05-01 19:54:25
【问题描述】:

我正在尝试在图表的其余部分创建移动平均线。我正在尝试做类似于this.
但是,对于我的数据点,我不断收到错误:

“错误:属性值无效 d="M1.2121212121212122,NaNL1.4141414141414141,NaNC1.6161616161616161,NaN,2.0202020202020203,NaN,2.4242424..."

我相信这是因为我的数据格式不正确,但我不知道如何修改函数以处理我的数据。我的数据目前看起来像:

var data = [ {"x": 1, "y": 113},
{"x": 6, "y": 38},
{"x": 11, "y": 108},
{"x": 16, "y": 245},
{"x": 21, "y": 155},
{"x": 26, "y": 234},
...

谢谢

【问题讨论】:

  • 如果你的数据不是太长,你能把有问题的都包括进去吗?或者更好的是,创建一个代码 sn-p 或 jsfiddle 来重现您的问题。
  • 是100个数据点,所以...
  • var data = [ {"x": 1, "y": 113}, {"x": 6, "y": 38}, {"x": 11, "y" :108},{“x”:16,“y”:245},{“x”:21,“y”:155},{“x”:26,“y”:234},{“x” :31,“y”:64},{“x”:36,“y”:154},{“x”:41,“y”:70},{“x”:46,“y”:258 },{“x”:51,“y”:150},{“x”:56,“y”:78},{“x”:61,“y”:192},{“x”:66 ,“y”:120},{“x”:71,“y”:252},{“x”:76,“y”:131},{“x”:81,“y”:137}, {“x”:86,“y”:269},{“x”:91,“y”:217},{“x”:96,“y”:122},{“x”:101,“ y": 90}, {"x": 106, "y": 177}, {"x": 111, "y": 166}, {"x": 116, "y": 46}, {" x": 121, "y": 37}, {"x": 126, "y": 125}, {"x": 131,
  • 这是允许的最大值
  • 您可以改为编辑问题(并删除这些 cmets)。如果您的数据都是数字,那么您的函数中计算平均值的某些东西是错误的,因为某些东西会产生那些NaNs。我们需要查看更多您的代码。

标签: javascript d3.js average


【解决方案1】:

只需将您的 [{x1,y1}, {x2,y2}, ... {xN,yN}] 对映射到 [y1, y2, ... yN ] 系列,这就是移动平均函数所期望的:

movingAverageLine(data.map(function(d) { return d.y; }))

【讨论】:

  • 谢谢,直到看到@ekuusela 的回答,我才知道该怎么做
【解决方案2】:

这是一个有效的小提琴:http://jsfiddle.net/yz87b53d/3/

您应该接受meetamit's answer,因为这本质上是问题所在。

movingAverageLine(data.map(function(d) { return d.y; }))

【讨论】:

  • 非常感谢。我现在知道该功能是如何工作的。我没有花足够的时间看到我必须将 y 值发送​​到函数。我刚刚开始搞乱 D3.js。
  • 我现在在尝试更改“x-step”值时遇到问题。它在 5 处工作,但在编辑它时,y 值的比例会发生变化,并且不适合数据。
  • 是的,我也错误地将该变量应用为移动平均参数。我现在已经分离了这两个值并更新了小提琴。请注意,如果您的点定义的 x 间隔不同于 5,这也会停止工作。您应该考虑在没有 x 坐标的情况下定义您的点,否则您需要调整移动平均计算。
  • 我意识到移动计数需要分开。我想我必须包含一个 x 坐标,因为我正在尝试使用来自 Strava API 的循环数据。来自它的数据可能会以恒定速率获取,所以在这种情况下,我可以删除 x 坐标。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-10
  • 1970-01-01
  • 2013-07-07
  • 1970-01-01
  • 2015-06-16
  • 1970-01-01
相关资源
最近更新 更多