我有以下数据:
parseDate = d3.time.format("%Y").parse,
format = d3.time.format("%Y");
var myData = [
{ dataField: "A", coords: [
{xCoord: parseDate('1990') , yCoord: Math.random() * 100},
{xCoord: parseDate('1991') , yCoord: Math.random() * 100},
{xCoord: parseDate('1992') , yCoord: Math.random() * 100},
{xCoord: parseDate('1993') , yCoord: Math.random() * 100},
{xCoord: parseDate('1994') , yCoord: Math.random() * 100},
{xCoord: parseDate('1995') , yCoord: Math.random() * 100},
{xCoord: parseDate('1996') , yCoord: Math.random() * 100},
{xCoord: parseDate('1997') , yCoord: Math.random() * 100},
{xCoord: parseDate('1998') , yCoord: Math.random() * 100},
{xCoord: parseDate('1999') , yCoord: Math.random() * 100}
]
},
{ dataField: "B",coords: [
{xCoord: parseDate('1990') , yCoord: Math.random() * 100},
{xCoord: parseDate('1991') , yCoord: Math.random() * 100},
{xCoord: parseDate('1992') , yCoord: Math.random() * 100},
{xCoord: parseDate('1993') , yCoord: Math.random() * 100},
{xCoord: parseDate('1994') , yCoord: Math.random() * 100},
{xCoord: parseDate('1995') , yCoord: Math.random() * 100},
{xCoord: parseDate('1996') , yCoord: Math.random() * 100},
{xCoord: parseDate('1997') , yCoord: Math.random() * 100},
{xCoord: parseDate('1998') , yCoord: Math.random() * 100},
{xCoord: parseDate('1999') , yCoord: Math.random() * 100}
]
}
我正在尝试使用 d3 创建折线图。另外,我有代码:
var data = function (d) { return d.coords; };
var xValue = function (d) { return d.xCoord; };
var yValue = function (d) { return d.yCoord; };
我一直在创建我的规模:
xScale = d3.time.scale()
.domain([new Date(1988,10,30),new Date(2000,01,30)])
.range([margin.left, 600 - margin.right]);
但是,我的目标是让我的域将自己调整为最小的一年到最大的一年(或者甚至可能在每个方向上延长一年)。但到目前为止,我一直没有成功。我试图使用
.domain(d3.extent(data, xValue));
但一直没有运气。我对 javascript 还很陌生,我认为我的困难在于我存储数据的方式。任何想法都会很棒。