我正在尝试通过书籍和示例来学习D3。我正在研究的一个例子是位于http://bl.ocks.org/mbostock/3884955#index.html的简单(多)折线图。
我可以跟随大部分内容,但我无法理解这一点:
y.domain([
d3.min(cities, function(c) { return d3.min(c.values, function(v) { return v.temperature; }); }),
d3.max(cities, function(c) { return d3.max(c.values, function(v) { return v.temperature; }); })
]);
当我尝试自己编写代码时,使用示例作为备忘单,我想出了这个
y.domain([0, d3.max(data, function(d) { return d.temperature; })]);
因为我希望y范围从0到所有温度的最大值。
我相信我有两个问题:
1)是嵌套的分钟和最大值,因为它在查看数组中每个数组的最大值?
2)我是否正确地认为'城市'是整个数组,而价值是'城市'中温度的数组?
如果这个问题不是非常集中,请道歉。我相信我想弄清楚如何找到阵列数组的最大值。
答案 0 :(得分:2)
嵌套的分钟和最大值是因为它查看了数组中每个数组的最大值吗?
是的!你是正确的城市json是一个数组,其中有另一个数组,其中包含键值这里的想法是找到这个嵌套数组中的最低温度
d3.min(cities, function(c) { return d3.min(c.values, function(v) { return v.temperature; }); }),
我是否正确地认为这些城市'是整个数组,值是'城市内的温度数组'
是的,你是正确的再次将这个json复制到json formatter中,你将能够更好地理解JSON:
cities = [
{
"name":"New York",
"values":[
{
"date":"2011-09-30T18:30:00.000Z",
"temperature":63.4
},
{
"date":"2011-10-01T18:30:00.000Z",
"temperature":58
},
{
"date":"2011-10-02T18:30:00.000Z",
"temperature":53.3
},
{
"date":"2011-10-03T18:30:00.000Z",
"temperature":55.7
},
{
"date":"2011-10-04T18:30:00.000Z",
"temperature":64.2
}
]
},
{
"name":"San Francisco",
"values":[
{
"date":"2011-09-30T18:30:00.000Z",
"temperature":62.7
},
{
"date":"2011-10-01T18:30:00.000Z",
"temperature":59.9
},
{
"date":"2011-10-02T18:30:00.000Z",
"temperature":59.1
},
{
"date":"2011-10-03T18:30:00.000Z",
"temperature":58.8
}
]
},
{
"name":"Austin",
"values":[
{
"date":"2011-09-30T18:30:00.000Z",
"temperature":72.2
},
{
"date":"2011-10-01T18:30:00.000Z",
"temperature":67.7
},
{
"date":"2011-10-02T18:30:00.000Z",
"temperature":69.4
}
]
}
]
希望这有帮助!