vue + d3系列 -- 初始篇
安裝
npm install d3 --save-dev
使用
在.vue元件裡引用
import * as d3 from 'd3';
在我看來,d3在很大的程度上借鑑了jquery,尤其是關於選擇器這一塊,當然現在d3在資料圖表展現方面完全是自己的一套東西,你可以把它看成是一個強大的javascript函式庫,用來做資料視覺化的。
d3強大體現在它的可定製性,你可以發揮你的想象,運用d3提供的基礎api,做到你想要的圖表
幾個基礎知識介紹
在做圖之前我們先了解一下基礎知識點
選擇集(可以參考jquery選擇器,用法基本一致)
d3.select() //是選擇所有指定元素的第一個
d3.selectAll() //是選擇指定元素的全部
舉個例子
<div id="force">
<p id="p-one">我是page one</p>
<p class="commonP">我是page two</p>
<p class="commonP">我是page three</p>
</div>
<script>
//選擇第一個p
d3.select("#force").select("#p-one").style("color","red")
//選擇第二個p sellect一個class後,預設第一個
d3.select("#force").select(".commonP").style("color","blue")
//selectAll選擇全部class節點
d3.select("#force").selectAll(".commonP").style("font-size","24px")
</script>
效果圖
繫結資料--把資料繫結到dom節點上
datum() //繫結一個資料到選擇集上
data() //繫結一個陣列到選擇集上,陣列的各項值分別與選擇集的各元素繫結
舉個例子
<div>
<div id="force">
<p></p>
<p></p>
<p></p>
</div>
</div>
<script>
let strArr = ["apple","orange","banana"]
d3.select("body")
.selectAll("p")
.data(strArr)
.text(function (item,index) {
return index + "." + item
})
</script>
看上面的例子結合前面的知識點,我們選擇body下面的p,然後繫結陣列strArr到p上,這就是把資料繫結到節點上,然後遍歷一下,item是繫結陣列的值,index是陣列的下標
如果strArr不是陣列是一個字串或者一個值,那麼這個值會輪流與選中元素繫結,有興趣的同學可以試一下,注意繫結一個值使用dataum
效果圖
append,insert,remove
//append-- 在選擇元素後插入元素
d3.select("#force").select("#p-one").append("p").text("我是append新增元素")
//insert-- 在選擇元素前面插入元素
d3.select("#force").insert("p","#p-one").text("我是insert新增元素")
//刪除元素
d3.select("#force").selectAll(".commonP").remove()
效果圖
坐一個簡單的圖表
介紹一下畫布
html5畫布有兩種,svg和canvas
什麼是svg
svg是一種二維的可縮放的向量圖形,用xml格式定義的圖形,可直接放在html中使用
svg特點
- 向量圖形放大縮小不會失真
- 可對元素新增javascript事件處理
- 可在節點上直接修改屬性
- 不能用於遊戲開發
什麼是canvas
canvas通過js來畫2D的圖形
canvas特點
1.放大會失真
2.不支援js事件處理
3.能以.jpg .png格式儲存
4.適合遊戲開發
從上面的總結可以看出來這兩個畫布各有優缺點,當然其實echarts用的就是canvas,裡面模擬的有事件互動,用起來也是很不錯的
下節畫圖
相關文章
- vue系列元件篇(二)Vue元件
- vue系列基礎篇(一)Vue
- vue 快速入門 系列 —— Vue 例項的初始化過程Vue
- D3原始碼解讀系列之Chord原始碼
- D3原始碼解讀系列之Dispatches原始碼
- D3原始碼解讀系列之Force原始碼
- D3原始碼解讀系列之Hierarchies原始碼
- D3原始碼解讀系列之Path原始碼
- D3原始碼解讀系列之Quadtrees原始碼
- D3原始碼解讀系列之Requests原始碼
- D3原始碼解讀系列之Selections原始碼
- D3原始碼解讀系列之Shape原始碼
- 用 vue + d3 畫一棵樹Vue
- vue2.x原始碼解析系列二: Vue元件初始化過程概要Vue原始碼元件
- Vue管理系統前端系列一vue-cli4.x 初始化專案Vue前端
- 實現微信小程式編譯和執行環境系列(初始篇)微信小程式編譯
- 08-初始vue3Vue
- Web閱讀器開發系列教程(Vue環境篇)WebVue
- Explore D3
- Pytorch系列:(七)模型初始化PyTorch模型
- 【TensorFlow篇】--DNN初始和應用DNN
- Vue.js原始碼解析-Vue初始化流程Vue.js原始碼
- Vue 原始碼解讀(2)—— Vue 初始化過程Vue原始碼
- 【vue3-ts】-小兔鮮兒專案2022新版-系列開篇Vue
- Vue 原始碼分析(v2.5.15)part 1:Vue 初始化Vue原始碼
- vue 給一個值重置初始值Vue
- D3視覺化:(1)初次見面,SVG與D3的魅力視覺化SVG
- Vue.2.0開發後臺系統,採坑系列元件篇(一)Vue元件
- Vue 系列一 之 Vue 基礎Vue
- Mybatis原始碼系列1-Mybaits初始化MyBatis原始碼AI
- 【spring原始碼系列】之【Bean的初始化】Spring原始碼Bean
- vue+antd+select下拉初始化賦值Vue賦值
- vue-cli3初始化專案搭建Vue
- 【Caffe篇】--Caffe solver層從初始到應用
- Vue 原始碼分析系列一:new Vue()Vue原始碼
- vue 快速入門 系列 —— vue-routerVue
- vue 快速入門 系列 —— vue loader 上Vue
- vue 快速入門 系列 —— vue loader 下Vue