Javascript 在D3中使用独立数组中的数据创建线图?
我是D3的初学者,想创建一个折线图。如果我的数据位于3个单独的数组中,我将如何执行此操作 除365个值外,我的数据如下所示: 变量日期=[“2013-07-11T00:00:00”、“2013-07-12T00:00:00”、“2013-07-15T00:00:00”, “2013-07-16T00:00:00”、“2013-07-17T00:00:00”、“2013-07-18T00:00:00”] 风险价值头寸=[0,0.004,0.008,0.012,0.016,0.02] var价格=[61.041,60.93,61.063,61.456,61.473,61.68] 仓位是对日期的百分比估计,以便于绘制图表。仓位是x值,价格是y值。然后,我想让x轴显示反映日期的记号(可能是解析日期数组) 我在网上找到了一个教程,但它是用来画圆的,所以我不知道从哪里开始 以下是教程:Javascript 在D3中使用独立数组中的数据创建线图?,javascript,backbone.js,graph,d3.js,linegraph,Javascript,Backbone.js,Graph,D3.js,Linegraph,我是D3的初学者,想创建一个折线图。如果我的数据位于3个单独的数组中,我将如何执行此操作 除365个值外,我的数据如下所示: 变量日期=[“2013-07-11T00:00:00”、“2013-07-12T00:00:00”、“2013-07-15T00:00:00”, “2013-07-16T00:00:00”、“2013-07-17T00:00:00”、“2013-07-18T00:00:00”] 风险价值头寸=[0,0.004,0.008,0.012,0.016,0.02] var价格=[
提前感谢您的帮助 您可以使用一个循环将多个数组转换为一个对象数组,如下所示:
var数据=[{日期:“2013-07-11T00:00:00”,位置:0,价格:61.041},…]
然后将数据数组绑定到svg路径
此外,您可能不需要
位置。
使用a应该可以轻松处理所有这些问题。如果索引在所有数组中都是一致的,您可以使用map
从所有索引中创建一个数组:
var newArray = dates.map(function(d, i){
return { 'date' : d, 'position' : positions[i], 'price' : prices[i] };
};
然后可以使用该数组创建图形
您还可以使用第一个数组作为数据,然后从d3函数中按位置引用其他数据,这些函数都将d
(数据点)和i
(索引)作为输入
例如,在线生成器中,您可以说:
var line = d3.svg.line()
.x(function(d, i) { return x(positions[i]); })
.y(function(d, i) { return y(prices[i]); });
在本例中,
x
和y
将是您为位置
和价格
轴定义的刻度。这种方法会导致比第一种方法稍微混乱一些的代码,我们都知道,梅西没有赢得世界杯。你看到了吗?谢谢。我在网上搜索时偶然发现的。我应该如何调整d3.tsv功能以适应单独的阵列?