次のデータがあります。
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 にかなり慣れていないので、私の苦労はデータの保存方法にあると思います。どんなアイデアでも素晴らしいでしょう。