
- D3.js 教程
- D3.js - 首頁
- D3.js - 簡介
- D3.js - 安裝
- D3.js - 概念
- D3.js - 選擇
- D3.js - 資料連線
- D3.js - SVG 簡介
- D3.js - SVG 變換
- D3.js - 過渡
- D3.js - 動畫
- D3.js - 繪製圖表
- D3.js - 圖表
- D3.js - 地理資料
- D3.js - 陣列 API
- D3.js - 集合 API
- D3.js - 選擇 API
- D3.js - 路徑 API
- D3.js - 比例尺 API
- D3.js - 軸 API
- D3.js - 形狀 API
- D3.js - 顏色 API
- D3.js - 過渡 API
- D3.js - 拖拽 API
- D3.js - 縮放 API
- D3.js - 請求 API
- 分隔符分隔值 API
- D3.js - 定時器 API
- D3.js - 工作示例
- D3.js 有用資源
- D3.js - 快速指南
- D3.js - 有用資源
- D3.js - 討論
D3.js - 軸 API
D3 提供了繪製軸的功能。一個軸由線、刻度和標籤組成。軸使用比例尺,因此每個軸都需要指定一個與其一起工作的比例尺。
配置軸 API
您可以使用以下指令碼配置 API。
<script src = "https://d3js.org/d3-axis.v1.min.js"></script> <script> </script>
軸 API 方法
D3 提供了以下幾個重要的繪製軸函式。簡要描述如下。
d3.axisTop() − 此方法用於建立頂部水平軸。
d3.axisRight() − 此方法用於建立垂直右側軸。
d3.axisBottom() − 此方法用於建立底部水平軸。
d3.axisLeft() − 它建立左側垂直軸。
工作示例
讓我們學習如何向圖表新增 x 軸和 y 軸。為此,我們需要按照以下步驟操作。
步驟 1 − 定義變數 − 使用以下程式碼定義 SVG 和資料變數。
var width = 400, height = 400; var data = [100, 150, 200, 250, 280, 300]; var svg = d3.select("body") .append("svg") .attr("width", width) .attr("height", height);
步驟 2 − 建立線性比例尺函式 − 為 x 軸和 y 軸建立線性比例尺函式,如下所示。
var xscale = d3.scaleLinear() .domain([0, d3.max(data)]) .range([0, width - 100]); var yscale = d3.scaleLinear() .domain([0, d3.max(data)]) .range([height/2, 0]);
在這裡,我們建立了一個線性比例尺並指定了域和範圍。
步驟 3 − 將比例尺新增到 x 軸 − 現在,我們可以使用以下程式碼將比例尺新增到 x 軸。
var x_axis = d3.axisBottom() .scale(xscale);
在這裡,我們使用 d3.axisBottom 建立 x 軸,並提供前面定義的比例尺。
步驟 4 − 將比例尺新增到 y 軸 − 使用以下程式碼將比例尺新增到 y 軸。
var y_axis = d3.axisLeft() .scale(yscale);
在這裡,我們使用 d3.axisLeft 建立 y 軸,並提供前面定義的比例尺。
步驟 5 − 應用變換 − 您可以附加一個組元素並插入 x、y 軸,如下所示。
svg.append("g") .attr("transform", "translate(50, 10)") .call(y_axis);
步驟 6 − 附加組元素 − 使用以下程式碼應用過渡和組元素。
var xAxisTranslate = height/2 + 10; svg.append("g") .attr("transform", "translate(50, " + xAxisTranslate +")") .call(x_axis)
步驟 7 − 工作示例 − 完整的程式碼清單在以下程式碼塊中給出。建立一個網頁 axes.html 並對其進行以下更改。
<html> <head> <script type = "text/javascript" src = "https://d3js.org/d3.v4.min.js"></script> <style> svg text { fill: purple; font: 12px sans-serif; text-anchor: end; } </style> </head> <body> <script> var width = 400, height = 400; var data = [100, 120, 140, 160, 180, 200]; var svg = d3.select("body") .append("svg") .attr("width", width) .attr("height", height); var xscale = d3.scaleLinear() .domain([0, d3.max(data)]) .range([0, width - 100]); var yscale = d3.scaleLinear() .domain([0, d3.max(data)]) .range([height/2, 0]); var x_axis = d3.axisBottom().scale(xscale); var y_axis = d3.axisLeft().scale(yscale); svg.append("g") .attr("transform", "translate(50, 10)") .call(y_axis); var xAxisTranslate = height/2 + 10; svg.append("g") .attr("transform", "translate(50, " + xAxisTranslate +")") .call(x_axis) </script> </body> </html>
現在,請求瀏覽器,我們將看到以下更改。
廣告