注意:我们仍然在使用D3的v3,所以v4的东西不起作用:(
我试图以模块化的方式使用相同的代码绘制2个单独的图表,同时将数据作为参数传递。
以下代码中的所有内容都很漂亮, 除了一件小事......
我目前正在使用data1.length
来计算domain
的{{1}}。我希望能够在那里传递一个参数(例如xScale
),以便我可以动态设置它。
如果你想编写一个解决方案,这里有一个方便的小JSFiddle:https://jsfiddle.net/bengrunfeld/8zpd79yp/
TIA
dataSource
答案 0 :(得分:2)
像这样定义xScale,没有域名。
var xScale = d3.scale.linear()
.range([0, width]);
这将设置xScale域动态
function drawChart(dataSource) {
xScale.domain([0, dataSource.length]);
var chart = graph.select(".container")
.append("g")
.append("path")
.attr("d", line(dataSource));
}
所以现在打电话的时候:
drawChart(data1);
drawChart(data2);
将动态设置xScale的域。
工作代码here