D3畫圖學習一


一、D3畫圖簡介

    D3 是最流行的可視化庫之一,它被很多其他的表格插件所使用。它允許綁定任意數據到DOM,然后將數據驅動轉換應用到Document中。你可以使用它用一個數組創建基本的HTML表格,或是利用它的流體過度和交互,用相似的數據創建驚人的SVG條形圖。原諒我上面這句是從網上抄的,語文不太好。反正說白了,D3就是一個用來在web界面畫圖的庫。有了它我們畫各種圖形和坐標軸都更加方便了。

 

二、使用的基本函數

1. 元素選擇函數

    在D3中對HTML元素選取主要用到select和selectAll兩個函數。select用於選取單個元素,selectAll用於選取頁面中所有的該元素。

    函數原型:d3.select()

    函數參數:HTML元素

    函數返回值:選擇的HTML元素對象。

    示例: var  p = d3.select("p");   //選擇頁面中的第一個<p>元素

    函數原型:d3.selectAll()

    函數參數:HTML元素

    函數返回值:選擇的HTML元素對象。

    示例: var p = d3.selectAll("p");  //選擇頁面中所有的<p>元素

    使用方式列舉:

    (1)選取單個元素

<body>
    <p></p>
<body>

d3.select("p">
  .text("測試");    //輸出:測試

    (2)選取所有元素

<body>
    <p></p>
    <p></p>
</body>

d3.selectAll("p")
    .text(function(v,i){
    return "測試" + i;
})
//輸出: 測試0
//     測試1

    (3)根據id選取元素

<body>
    <p></p>
    <p id="ceshi"></p>
</body>

d3.select("#ceshi")
    .text("ID選取");    //輸出:ID選取

    (4)根據class選取元素

<body>
    <p></p>
    <p class="ceshi"></p>
</body>

d3.select(".ceshi")
    .text("class測試");

 

2. 數據綁定函數

    (1)datum函數

    函數原型:datum()

    函數功能:綁定單個數據到選擇集

    示例:

<body>
    <p></p>
    <p></p>
</body>

var  str = "ceshi"
 d3.selsetAll("body")
    .datum(str)
    .text (function(v,i){
    return "第" + i + "個元素是" + v;
})
//輸出:
//第0個元素是ceshi
//第1個元素是ceshi

    (2)data函數

    函數原型:data()

    函數功能:將一個數組綁定到選擇集

    示例:

<body>
    <p></p>
    <p></p>
</body>

var  str = ["ceshi", "data"]
 d3.selsetAll("body")
    .datum(str)
    .text (function(v,i){
    return "第" + i + "個元素是" + v;
})
//輸出:
//第0個元素是ceshi
//第1個元素是data

 

3. 元素添加函數

    函數原型:append()

    函數功能:在選擇集后面添加元素

    示例:

<body>
    <p>段落1</p>
</body>

d3.select(p)
    .append("p")
    .text("段落2");
//顯示:
//段落1
//段落2

    函數原型:insert()

    函數功能:在選擇集前面添加元素

    示例:

<body>
    <p>段落1</p>
</body>

d3.select(p)
    .insert("p")
    .text("段落2");
//顯示:
//段落2
//段落1

 

4. 元素移除函數

    函數原型:remove()

    函數功能:移除元素

    示例:

<body>
    <p>段落1</p>
    <p>段落2</p>
</body>

d3.select(p)
    .remove();
//顯示:
//段落2

    這章就先介紹到這里,下一章將會將一些基本圖形的畫法。有點累了,下班回家。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM