tôi đã xác định một máy phát điện phù hợp với d3.js
như sau:Làm thế nào để tính toán giá trị y cho cho x bằng d3.js
var line = d3.svg.line()
.interpolate("monotone")
.x(function(d) {return x(d.date); })
.y(function(d) {return y0(d.visits); });
Dữ liệu được đọc từ một csv với định dạng sau:
date,visits
12/08/12,1
13/08/12,0
14/08/12,0
15/08/12,33
16/08/12,28
các tập tin csv được nạp vào data
, và phân tích cú pháp như sau:
data.forEach(function(d) {
d.date = d3.time.format("%d/%m/%y").parse(d.date);
d.visits = +d.visits;
});
và thêm vào tài liệu với:
svg.append("path")
.datum(data)
.attr("class", "line")
.attr("d", line)
Ở những nơi khác trong kịch bản, tôi cần tìm ra giá trị y là vào một ngày cụ thể. Vì vậy, ví dụ, tôi có thể muốn có được một giá trị y cho dòng nơi ngày là 15/08/12
(tương đương với y0(33)
). Tôi có thể làm cái này như thế nào?
Cảm ơn, điều này làm việc, mặc dù thực sự tôi đã phải sử dụng 'item = data [bisect (dữ liệu), new Date (2012, 8, 15)) - 1];'. Vì khớp chính xác là tôi cần phần tử ở bên trái của phần tử ở bên phải, do đó là -1. Một chút của một hack, nhưng nó hoạt động. Trong trường hợp của tôi có dữ liệu cho tất cả các ngày - nếu đây không phải là trường hợp, thì cách tiếp cận này có thể không hoạt động. – rudivonstaden