zoukankan      html  css  js  c++  java
  • d3.js入门学习

    个人感觉前端数据可视化是个趋势,并且现在所在公司也是有做这块的项目,虽然我目前还没有接触到公司数据可视化的项目,但是,今后总是要接触的嘛。

    今天看了一下公司目前所用的两种数据可视化工具---D3和ECharts,ECharts由于是国产的,文档和demo都很全,简单看了一下,感觉很好上手,没有必要把太多时间花在ECharts上,反观D3,中文文档很匮乏,api讲得也不是很易于理解,但是功能很强大啊,所以,我决定开始学习D3。


    通过查询,大概知道了D3就是通过js来操作DOM,包括但不仅限于创建节点、节点绑定数据,所以D3大概就是将源生js操作DOM的方法做了封装,并且借助H5的svg标签来绘制图形;

    说到H5的图形绘制,有svg和canvas;svg是矢量图,放大不失真,canvas是位图,放大失真,但是canvas更适合做游戏开发,说到游戏开发就不得不说js游戏引擎了,听说白鹭引擎挺不错~咳咳,跑题了。下面开始记录D3相关API的使用(图文教程,你值得拥有,如果有不对的地方也欢迎提出)

    一、为项目引入D3

    我这里是直接在vue项目中引入d3的,项目目录下:npm i d3

    随便打开一个文件(.vue),切记,这里在main.js里import是无效的,要到用到D3的组件/页面l里import D3,如下:

    import * as d3 from 'd3';

    二、开始表演

    image.png

    正如你所看到的的那样,当前页面有一个类名为skill的div,里面有两个空白的p标签,接下来,我要通过D3为其导入数据:

    image.png

    稍微有点js基础的都就能看出这句话的意思,只不过这块有两个知识点需要提一下:

    ①链式语法,原理就是每个方法执行结束之后返回特定对象或者this对象(具体可查阅java23种设计模式)

    ②这里的init()数据初始化操作要放在Vue实例的mounted生命周期,created生命周期亲测无效(具体参考vue生命周期)

    三、检查结果

    image.png

    ok,就这样,D3已经在vue项目中成功运行,更多d3相关,敬请期待我后续博客!

  • 相关阅读:
    PHP 使用 ElasticSearch
    PHP面试题目
    MySQL取得某一范围随机数
    Git版本控制的基本命令
    PHP中array_merge和array相加的区别分析
    nginx服务器常见错误代码500、501、502、503、504、505
    Laravel小项目之第4节 Laravel-通过表单实现新增及操作状态提示功能
    前端基础 jQuery
    前端基础 DOM & BOM
    前端基础 & 初识JS(JavaScript)
  • 原文地址:https://www.cnblogs.com/eco-just/p/9926698.html
Copyright © 2011-2022 走看看