Итак, у меня есть график, отображающий трафик против даты и скорости по сравнению с датой. Я пытаюсь затенять область между двумя линиями. Тем не менее, я хочу затенять его другим цветом, в зависимости от того, какая линия выше. Следующее работает без этого последнего требования:
var area = d3.svg.area()
.x0(function(d) { return x(d3.time.format("%m/%d/%Y").parse(d.original.date)); })
.x1(function(d) { return x(d3.time.format("%m/%d/%Y").parse(d.original.date)); })
.y0(function(d) { return y(parseInt(d.original.traffic)); })
.y1(function(d) { return y(parseInt(d.original.rate)); })
Однако, добавив последнее требование, я попытался использовать defined():
.defined(function(d){ return parseInt(d.original.traffic) >= parseInt(d.original.rate); })
Теперь это в основном работает, за исключением случаев, когда пересекаются линии. Как затенять область под одной строкой МЕЖДУ пунктами? Это затенение основано на точках, и я хочу, чтобы он затенялся по линии. Если у меня нет двух последовательных точек на одной стороне линии, я вообще не получаю никакого затенения.