Вы определяете генератор пути area
, но не используете его для генерации пути для вашей строки.
Вместо этого (в скрипте, но не в коде выше) вы определилигенератор строк называется valueline
и использует его для генерации пути.
Если есть заливка, генератор строк закроет конец строки с началом строки и заполнит прилагаемую строкупробел, поэтому вы видите заливку над линией.
С помощью генератора area вы указываете свойство y0
, которое в случае вашей диаграммы просто будет нижнейграфика. Выходной путь затем закроется вдоль базовой линии, и любая примененная заливка будет для всей области.
Ваше определение пути с использованием генератора пути области будет просто:
svg.append("path")
.attr("class", "line")
.attr("stroke", color)
.attr("stroke-width", 3)
.attr("fill", "url(#gradient)")
.attr("d", area(data));
ТамЭто проблема, связанная с тем, что, поскольку вы не используете сплошную заливку для своей области, и вы используете , используя обводку, нижний край области также будет закрашен. Вы можете добавить пару пикселей на высоту параметра y0
вашей функции area
, чтобы ось х покрывала его ...
https://jsfiddle.net/qp8xvhaL/