D3.js:座標軸

來源:互聯網
上載者:User

標籤:

座標軸: 是可視化圖表中經常出現的一種圖形,由一些列線段和刻度組成。座標軸在 SVG 中是沒有現成的圖形元素的,需要用其他的元素組合構成。D3 提供了座標軸的組件,如此在 SVG 畫布中繪製座標軸變得像添加一個普通元素一樣簡單。

- 座標軸的組成

在 SVG 畫布的預定義元素裡,有六種基本圖形:

  • 矩形
  • 圓形
  • 橢圓
  • 線段
  • 折線
  • 多邊形

另外,還有一種比較特殊,也是功能最強的元素:

  • 路徑

畫布中的所有圖形,都是由以上七種元素組成。顯然,這裡面沒有座標軸 這種元素。因此,我們需要用其他元素來組合成座標軸,最終使其變為類似以下的形式:

<g><!-- 第一個刻度 --><g><line></line>   <!-- 第一個刻度的直線 --><text></text>   <!-- 第一個刻度的文字 --></g><!-- 第二個刻度 --><g><line></line>   <!-- 第二個刻度的直線 --><text></text>   <!-- 第二個刻度的文字 --></g> ......<!-- 座標軸的軸線 --><path></path></g>

- 定義座標軸

// 資料var dataset = [2.5, 2.1, 1.7, 1.3, 0.9];// 定義比例尺var linear = d3.scale.linear()    .domain([0, d3.max(dataset)])    .range([0, 250]);var axis = d3.svg.axis()    .scale(linear)      // 指定比例尺    .orient("bottom")   // 指定刻度的方向    .ticks(7);          // 指定刻度的數量
  • d3.svg.axis():D3 中座標軸的組件,能夠在 SVG 中產生組成座標軸的元素。
  • scale():指定比例尺。
  • orient():指定刻度的朝向,bottom 表示在座標軸的下方顯示。
  • ticks():指定刻度的數量。

- 在SVG中添加座標軸

svg.append("g")   .call(axis);

- 設定座標軸的樣式和位置

<style>.axis path,.axis line{    fill: none;    stroke: black;    shape-rendering: crispEdges;}.axis text {    font-family: sans-serif;    font-size: 11px;}</style>

座標軸的位置,可以通過 transform 屬性來設定。通常在添加元素的時候就一併設定,寫成如下形式:

svg.append("g")  .attr("class","axis")  .attr("transform","translate(20,130)")  .call(axis);

頁面效果:

 

D3.js:座標軸

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.