D3JS教程

D3.js 轴 API

D3 提供了绘制轴的函数。轴由线条、刻度和标签组成。一个轴使用一个 Scale,所以每个轴都需要一个比例来使用。

配置轴 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>
现在,请求浏览器,我们将看到以下变化。
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4