如何让 d3 折线图下方的区域填充为渐变?

Dav*_*ave 5 css gradient linechart area d3.js

我正在使用 d3 v4。我想创建一个折线图,其中图表下方的区域是由从顶部的暗到底部的亮的渐变填充的区域。我认为这是配置这样的渐变的方法

  svg.append("linearGradient")
        .attr("id", "area-gradient")
        .attr("gradientUnits", "userSpaceOnUse")
        .attr("x1", 0).attr("y1", y(0))
        .attr("x2", 0).attr("y2", y(1000))
    .selectAll("stop")
        .data([
            {offset: "0%", color: "navy"},
            {offset: "30%", color: "navy"},
            {offset: "45%", color: "navy"},
            {offset: "55%", color: "navy"},
            {offset: "60%", color: "navy"},
            {offset: "100%", color: "navy"}
        ])
    .enter().append("stop")
        .attr("offset", function(d) { return d.offset; })
        .attr("stop-color", function(d) { return d.color; });
Run Code Online (Sandbox Code Playgroud)

并使用这种风格

.area {                         
    fill: url(#area-gradient);                  
    stroke-width: 0px;          
}
Run Code Online (Sandbox Code Playgroud)

但正如你从我的小提琴 - https://jsfiddle.net/yw46ycse/3/中看到的,我拥有的是一个坚实的区域。我还需要做什么才能使图表下方的区域成为渐变?

Nas*_*r T 5

这是您正在寻找的解决方案的版本吗?您可以使用透明作为停止颜色{offset: "95%", color: "transparent"}

这是你的小提琴的修改版本,我用来根据你的需要制作它。

https://codepen.io/Nasir_T/pen/OjOWxz

希望这可以帮助。