d3.js v4入門之——座標軸

預備知識

在svg畫布預定義元素裏有7種形狀元素。畫布上的所有圖形都是由這7種元素組成。

  1. 矩形 <rect>
  2. 圓形 <circle>
  3. 橢圓 <ellipse>
  4. 線 <line>
  5. 折線 <polyline>
  6. 多邊形 <polygon>
  7. 路徑 <path>

D3中的座標軸

<!--
@author Semper_Fi
-->
<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <script src="https://d3js.org/d3.v5.min.js"></script>
    <title></title>

</head>

<body>
    <svg id="svg" width="600" height="300" style="outline: 1px solid red;">
    </svg>
</body>
<script>
    var dataset = [100, 50, 10, 26, 18];

    var powerScale = d3.scalePow()
        .exponent(0.5) // 定義指數
        .domain([0, 100])   // 定義底數
        .range([0, 400]);    // 定義值域

    var rectHeight = 25;	//每個矩形所佔的像素高度(包括空白)

    var svg = d3.select("#svg");
    svg.selectAll("rect")
        .data(dataset)
        .enter()
        .append("rect")
        .attr("x", 20)
        .attr("y", function (d, i) {
            return i * rectHeight;
        })
        .attr("width", function (d) {
            return powerScale(d);
        })
        .attr("height", rectHeight - 2)
        .attr("fill", "steelblue");

    var axis = d3.axisBottom() // 指定刻度的方向,這個表示刻度在座標軸下邊。同類型的還有 d3.axisBottom d3.axisLeft d3.axisRight
        .scale(powerScale)  //  綁定比例尺
        .ticks(2);  // 指定刻度數量

    svg.append("g")
        .attr("class", "axis")
        .attr("transform", "translate(20,130)") // 平移操作,2個參數,第一個參數是向右平移的像素,第二個是向下平移的像素。
        .call(axis);
</script>
</html>

效果圖

在這裏插入圖片描述

發佈了22 篇原創文章 · 獲贊 1 · 訪問量 1604
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章