D3.js 实现线的渐变

<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <script type="text/javascript" src="../lib/d3/d3.v3.js"></script>
  <title>PolylineGradient</title>
</head>
<body>
<script type='text/javascript'>
  //数据
var lineData=[{"x":1,   "y":5},  {"x":20,  "y":20},
              {"x":40,  "y":10},{"x":60,  "y":40},
              {"x":80,  "y":5},  {"x":100,"y":60}];

//线生成器
var lineFunction = d3.svg.line()
                         .x(function(d){return d.x;})
                         .y(function(d){return d.y;})
                         .interpolate("cardinal");
 
//svg容器
var svgContainer = d3.select("body").append("svg")
                                    .attr("width",200)
                                    .attr("height",200);
// 定义渐变色带,可以参考SVG的定义
var a = d3.rgb(255,0,0);	//红色
var b = d3.rgb(0,255,0);	//绿色
var defs = svgContainer.append("defs");
var linerGradient = defs.append("linearGradient")
					.attr("id","linearColor")
					.attr("x1","0%")
					.attr("y1","0%")
					.attr("x2","100%")
					.attr("y2","0%");
var stop1 = linerGradient.append("stop")
					.attr("offset","0%")
					.style("stop-color",a.toString());
var stop2 = linerGradient.append("stop")
					.attr("offset","100%")
					.style("stop-color",b.toString());
//把path扔到容器中-- lineData和lineFunction,并给d赋属性
var lineGraph = svgContainer.append("path")
                    .attr("d",lineFunction(lineData))
                    //.attr("stroke","blue")
					// 线的渐变使用参数为stroke
					.attr("stroke","url(#"+linerGradient.attr("id")+")")
                    .attr("stroke-width",12)
                    .attr("fill","none");
</script>
</body>

</html>

 

转载于:https://my.oschina.net/u/615762/blog/1502945

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值