我实现了一个d3折线图,该折线图从CSV文件读取数据,然后绘制多条线以响应鼠标悬停事件。使用下面的代码,它在平移和缩放中可以正常工作(很抱歉,它太长且有点凌乱,但我觉得最好显示完整的代码):
d3.csv("ijisb.csv", function(error, data) {
var margin = {top: 50, right: 120, bottom: 50, left: 70},
width = 1200 - margin.left - margin.right,
height = 800 - margin.top - margin.bottom;
var parseDate = d3.time.format("%m%d").parse;
var color = d3.scale.category20();
color.domain(d3.keys(data[0]).filter(function(key) { return key !== "date"; }));
data.forEach(function(d) {
d.date = parseDate(d.date);
});
var sources = color.domain().map(function(name) {
return {
name: name,
values: data.map(function(d) {
return {date: d.date, temperature: +d[name]};
})
};
});
var x = d3.time.scale()
.range([0, width])
.domain([
d3.min(data, function(d) …
Run Code Online (Sandbox Code Playgroud)