【发布时间】:2015-07-30 03:05:52
【问题描述】:
我正在创建多个由 csv 文件中的“符号”堆叠的折线图。
这就是 csv 的样子:
symbol,date,price
Agency,2015/5/6,33
Agency,2015/5/7,29
Agency,2015/5/8,32
test,2015/5/6,23
test,2015/5/7,19
test,2015/5/8,22
example,2015/5/6,43
example,2015/5/7,49
example,2015/5/8,42
因此,对于 csv 文件中包含的每个符号,都会绘制一个单独的图表。到目前为止,这一切都很好。
但我正在努力为每一行添加点。
这是创建点的部分(my fiddle 中的第 142 - 148 行):
var circles = svg.selectAll("dot")
.data(data)
.enter().append("circle")
.attr("r", 2)
.attr("cx", function(d) { return x(d.date); })
.attr("cy", function(d) { return y(d.price); })
.style("fill", "black");
但此代码会创建由 最后一个“符号” 的值填充的点,该值从 csv 中取出,而不是为每个“符号”分开。
我在这里对 stackoverflow 进行了很多研究,但我发现没有一个解决方案或提示对我有用。
在这个例子中http://jsbin.com/isuris/1/edit?html,output我找到了这个部分:
// add circles
pathContainers.selectAll('circle')
.data(function (d) { return d; })
.enter().append('circle')
.attr('cx', function (d) { return xScale(d.x); })
.attr('cy', function (d) { return yScale(d.y); })
.attr('r', 3);
所以我尝试像这样更改我的小提琴http://fiddle.jshell.net/doyL1L0p/1/ 的第 143 行:
.data(function (d) { return d; })
但这不起作用,“错误”的点消失了。
所以我尝试了这个:
.data(function (d) { return d.key; })
因为使用“d.key”会显示单独的“符号”值。但是知道我在控制台中收到了这个错误:
Unexpected value NaN for attribute cx
Unexpected value NaN for attribute cy
然后我尝试更改第 146 和 147 行:
.attr("cx", function(d) { return x(d.date); })
.attr("cy", function(d) { return y(d.price); })
但没有成功。
我尝试了许多其他从 stackoverflow 发布的“解决方案”以及我在网络上找到的其他解决方案,但都没有再次成功。
谁能告诉我如何解决这个问题?
又是小提琴:
【问题讨论】:
标签: javascript jquery csv d3.js