Учебники

D3.js — Axis API

D3 предоставляет функции для рисования осей. Ось состоит из линий, галочек и меток. Ось использует шкалу, поэтому каждой оси должен быть присвоен масштаб для работы.

Конфигурирование Axis API

Вы можете настроить API, используя следующий скрипт.

<script src = "https://d3js.org/d3-axis.v1.min.js"></script>
<script>

</script>

Методы Axis API

D3 предоставляет следующие важные функции для рисования осей. Они описаны вкратце следующим образом.

  • d3.axisTop () — этот метод используется для создания верхней горизонтальной оси.

  • d3.axisRight () — этот метод используется для создания вертикальной направленной оси.

  • d3.axisBottom () — этот метод используется для создания нижней горизонтальной оси.

  • d3.axisLeft () — создает левую вертикальную ось.

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 и добавьте в нее следующие изменения.

Live Demo

<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>

Теперь запросите браузер, и мы увидим следующие изменения.