Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在D3中使用独立数组中的数据创建线图?_Javascript_Backbone.js_Graph_D3.js_Linegraph - Fatal编程技术网

Javascript 在D3中使用独立数组中的数据创建线图?

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价格=[

我是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轴显示反映日期的记号(可能是解析日期数组)

我在网上找到了一个教程,但它是用来画圆的,所以我不知道从哪里开始

以下是教程:


提前感谢您的帮助

您可以使用一个循环将多个数组转换为一个对象数组,如下所示:

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功能以适应单独的阵列?