折线图自定义X值访问器
Line Chart Custom X Value Accessor
我正在画一张折线图。下面的数组不是传递给d3js的典型数据,所以我知道我需要编写一个自定义函数来访问正确的数据,如.x(function(d) { return xScale(parseDate(d.date)) })
。这适用于包含对象的数组,但我似乎无法使它适用于包含值的对象数组(请参见balance
)。我该怎么写?有没有更好的文档来编写这些访问者?我一直找不到一个一致和彻底的资源。
var test_accounts = [
{name: "test1",
balance:
[
{date: "2014-07-15", y: 20},
{date: "2014-07-15", y: 10},
{date: "2014-07-16", y: 40},
{date: "2014-07-16", y: 10},
{date: "2014-07-17", y: 4},
{date: "2014-07-17", y: 10},
{date: "2014-07-18", y: 30},
{date: "2014-07-18", y: 10},
{date: "2014-07-19", y: 10},
{date: "2014-07-19", y: 10},
{date: "2014-07-20", y: 0},
{date: "2014-07-20", y: 10},
{date: "2014-07-21", y: 10},
{date: "2014-07-21", y: 10},
{date: "2014-07-22", y: 80},
{date: "2014-07-22", y: 10}
]},
{name: "test2",
balance:
[
{date: "2014-07-15", y: 50},
{date: "2014-07-15", y: 30},
{date: "2014-07-16", y: 70},
{date: "2014-07-16", y: 20},
{date: "2014-07-17", y: 40},
{date: "2014-07-17", y: 50},
{date: "2014-07-18", y: 10},
{date: "2014-07-18", y: 30},
{date: "2014-07-19", y: 60},
{date: "2014-07-19", y: 40},
{date: "2014-07-20", y: 10},
{date: "2014-07-20", y: 60},
{date: "2014-07-21", y: 80},
{date: "2014-07-21", y: 50},
{date: "2014-07-22", y: 90},
{date: "2014-07-22", y: 20}
]}
];
var line = d3.svg.line()
.x(function(d) { return xScale(parseDate(d.date)) })
.y(function(d) { return yScale(d.y) })
.interpolate("linear");
// draw the line
var drawline = svg.selectAll("svg")
.data(line1node).enter()
.append("path")
.attr("d", line)
.attr("class", "line")
.attr("stroke", function(d, i) { return linecolors(i); })
.attr("stroke-width", 2)
.attr("fill", "none")
.attr("transform", "translate(0,0)");
注意:这只是一个代码片段,所以我省略了比例和轴,因为我知道它们很好用。
在哪里分配路径的"d"
属性
.attr("d", line)
对于d
是其基准的每个元素,line(d)
最终被调用。CCD_ 6被期望为点的阵列。
由于您将数组嵌套在对象中,因此需要提供一个提取balance
数组的函数:
.attr("d", function(d) { return line(d.balance); })
相关文章:
- 如何访问自定义 HTML 属性
- AngularJS:如何访问自定义指令中的input[date]min属性
- 如何在 Aurelia(奥雷利亚)中访问自定义元素中的变量
- 聚合物 - 访问自定义元素内的 DOM 输入元素
- 如何从 React 中的事件对象访问自定义属性
- 使用NetSuite SuiteScript访问自定义列的文本值
- 如何访问自定义绑定中的可观察量
- AngularJS:使用 element.bind('input') 访问自定义指令中的事件
- 聚合物,访问自定义元素/命名空间问题
- 使用 OpenCPU 访问自定义 R 函数
- KnockoutJS:访问自定义组件之外的可观察变量
- 从iframe中访问自定义属性
- 循环访问自定义 UL LI A 列表,并仅隔离具有所选类名的项
- 无法通过javascript访问自定义文本框属性
- 访问自定义ui-router配置属性中的$stateParams
- 如何访问自定义销毁绑定中的变量
- 访问自定义组件数据/方法
- 通过jquery访问自定义属性
- 我可以访问自定义html标签
或& lt; slot>内容 - 使用serializeArray()访问自定义属性