javascript中D3圖形庫使用方法

來源:互聯網
上載者:User


並在標籤中引入:<script src =http://d3.v2.min.js></script>

用D3實現資料視覺效果,首先需要定義資料。我們將採用json格式的資料。當然可以使用其他類型的資料。

var data = {“east” : [ {"orderNum":12}

, {"orderNum":20}

, {"orderNum":30}

, {"orderNum":40}

, {"orderNum":40}

]};

在D3中的select命令,主要功能是選擇資料要操作的元素。

下面正式書寫D3語句。在script標籤中,我們定義一個dirst方法,參數為上面定義的data 資料。

Function dirst(){
 
D3.selectAll(“body”)
 
 .append(“svg”)
 
.attr(“width”,”1000”)
 
.attr(“height”,”600”)
 
.style(“background”,”pink”)
 
.selectAll(“circle”)
 
.data(data.east)
 
.enter()
 
.append(“circle”)
 
d3.selectAll("circle")
 
.attr("cx",function(d){ return Math.random()*900+(d.orderNum+10)})
 
.attr("cy",function(d){return Math.random()*(500)+(d.orderNum+10)})
 
.attr("r",function(d){return d.orderNum})
 
.style("fill",red)
 
.style("stroke","black")
 
.style("stroke-width",1)
 
};
 

D3.select(“body”)我們選擇了body這個標籤元素。

在這裡首先介紹一個概念,SVG:用於描述二維向量圖形的一種圖形格式。

因此任何SVG圖形的表現都必須在SVG內部實現。

.append(“svg”)添加SVG標籤.

並且設定了SVG的寬,高和背景顏色。

.attr(“width”,300),注意SVG標籤的許多屬性是沒有’px’的。

在SVG上建立circle元素。每個circle元素包含著一組data. orderNum的成員數組。

如數學概念一樣,如果要確定一個圓,需要知道他的圓心和半徑。

.attr(“cx”,function(d){ return Math.random()*900+(d.orderNum+10)})

.attr(“cy”,function(d){return Math.random()*(500)+(d.orderNum+10)})

就是用來分別確定x軸和y軸上的圓心。我們在回呼函數中使用隨機數實現圓的x軸和y軸的圓心。

在這裡需要說明一下,圓心CX的範圍在10至900之間。

因為我們設的SVG寬度為1000.如果X軸的圓心大約等於1000或者小於0。那麼我們建立的circle在X軸上就會跳出我們SVG的寬度。

同樣Y軸也是如此。

.attr(“r”,function(d){return d.orderNum})為圓的半徑,也使用一個回呼函數確定。傳回值為data數組中的某個資料。

.style(“fill”,red)

.style(“stroke”,”black”)

如上所示我們也設定了circle的填充顏色和邊框顏色。與CSS不同的是邊框顏色用stroke-border定義,類似css中border-color .而fill代表著填充顏色。

這已經實現了一個簡單的將資料通過D3展現成圖形。D3的其他功能會在後面繼續實踐。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.