D3.js - API Axis
D3 fornece funções para desenhar eixos. Um eixo é feito de linhas, carrapatos e rótulos. Um eixo usa uma escala, então cada eixo precisará receber uma escala para trabalhar.
Configurando a API Axis
Você pode configurar a API usando o seguinte script.
<script src = "https://d3js.org/d3-axis.v1.min.js"></script>
<script>
</script>
Métodos Axis API
D3 fornece as seguintes funções significativas para desenhar eixos. Eles são descritos resumidamente a seguir.
d3.axisTop() - Este método é usado para criar um eixo horizontal superior.
d3.axisRight() - Este método é usado para criar um eixo vertical orientado para a direita.
d3.axisBottom() - Este método é usado para criar um eixo horizontal inferior.
d3.axisLeft() - Cria eixo vertical esquerdo.
Exemplo de Trabalho
Vamos aprender como adicionar os eixos xey a um gráfico. Para fazer isso, precisamos seguir as etapas abaixo.
Step 1 - Define variables - Defina SVG e variáveis de dados usando o código abaixo.
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);
Step 2 - Create a scale linear function - Crie uma função linear de escala para os eixos xey conforme definido abaixo.
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]);
Aqui, criamos uma escala linear e especificamos o domínio e o intervalo.
Step 3 - Add scales to x-axis - Agora, podemos adicionar escalas ao eixo x usando o código a seguir.
var x_axis = d3.axisBottom()
.scale(xscale);
Aqui, usamos d3.axisBottom para criar nosso eixo xe fornecê-lo com a escala, que é definida anteriormente.
Step 4 - Add scales to the y-axis - Use o seguinte código para adicionar escalas ao eixo y.
var y_axis = d3.axisLeft()
.scale(yscale);
Aqui, usamos o d3.axisLeft para criar nosso eixo y e fornecê-lo com a escala que definimos acima.
Step 5 - Apply transformation - Você pode anexar um elemento de grupo e inserir os eixos x, y, que é definido abaixo.
svg.append("g")
.attr("transform", "translate(50, 10)")
.call(y_axis);
Step 6 - Append group elements - Aplique elementos de transição e grupo usando o seguinte código.
var xAxisTranslate = height/2 + 10;
svg.append("g")
.attr("transform", "translate(50, " + xAxisTranslate +")")
.call(x_axis)
Step 7 - Working Example- A listagem completa do código é fornecida no seguinte bloco de código. Crie uma página da webaxes.html e adicione as seguintes alterações a ele.
<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>
Agora, solicite o navegador e veremos as seguintes alterações.