D3.js SVG绘图实践:趋势缩略图

前言

写码,看书,思考,这周挺多感触的。

因为手上的项目前端用了Angular,所以UI改版的时候考虑了Angular-material,学校的项目前端用了React,所以也想接入ant-design mobile的那套设计规范,这两个都是业界非常不错的UI库,看他们的文档都会让你觉得能使手上的web应用瞬间高大上起来。

其实不然,即便是开源,也不是拿来就用那么美好,那晚尝试接入ant-design的轮播组件,出现下一张图片的一部分盖在上一张图片上情况,而官方文档写得极少,于是去看源码,发现了一些bug,自己用一些比较hack的方法纠正后发现组件体积大概有30k(压缩后),于是自己实现了一个light-swiper,未压缩只有4k,兼容性够用。

这件事让我清醒了一些,过去自己喜欢并且推崇的那些库,其实自己并没有深入地去了解别人的实现,万一某天这些通用性的库不能满足你的个性化需求,你该何去何从。

工具固然重要,可只有不依赖工具,工具才是真正为你所用。


不多说了,下面简单说说怎么用D3.js画一个趋势缩略图,先上效果图(截于Google Trend):

svg趋势图

D3.js与SVG

SVG比较熟的老司机肯定一眼看穿这个图是怎么组成的:

svg趋势图源码

就是两个SVG的path(不了解的可以先了解一下),第一个用于绘制折线,第二个用于绘制区域。一开始我想一个path用于绘制区域就能达到这种效果了吧,后来效果不佳,还是采取了Google的实践,后面会提到。


标题还提到了D3.js,简单介绍一下。

D3.js是一个用于数据可视化的js库,以数据驱动的方式去操作SVG,或原生的DOM,数据驱动的方式很有意思,下面看代码会有感触。

d3.js官网

源码

很简单的一个东西,直接放码过来好了:

<!DOCTYPE html>
<html>
<head>
<!-- 引入d3库 -->
<script src="
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值