D3.js - API Axis
D3 fornisce funzioni per disegnare gli assi. Un asse è composto da linee, segni di spunta ed etichette. Un asse utilizza una scala, quindi a ogni asse dovrà essere assegnata una scala con cui lavorare.
Configurazione dell'API Axis
È possibile configurare l'API utilizzando il seguente script.
<script src = "https://d3js.org/d3-axis.v1.min.js"></script>
<script>
</script>
Metodi API Axis
D3 fornisce le seguenti funzioni significative per disegnare gli assi. Sono descritti in breve come segue.
d3.axisTop() - Questo metodo viene utilizzato per creare un asse orizzontale superiore.
d3.axisRight() - Questo metodo viene utilizzato per creare un asse verticale orientato a destra.
d3.axisBottom() - Questo metodo viene utilizzato per creare un asse orizzontale inferiore.
d3.axisLeft() - Crea l'asse verticale sinistro.
Esempio di lavoro
Impariamo come aggiungere gli assi xey a un grafico. Per fare ciò, dobbiamo attenerci ai passaggi indicati di seguito.
Step 1 - Define variables - Definisci SVG e variabili di dati utilizzando il codice seguente.
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 - Creare una funzione lineare di scala per entrambi gli assi x e y come definito di seguito.
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]);
Qui abbiamo creato una scala lineare e specificato il dominio e l'intervallo.
Step 3 - Add scales to x-axis - Ora possiamo aggiungere scale all'asse x usando il seguente codice.
var x_axis = d3.axisBottom()
.scale(xscale);
Qui, usiamo d3.axisBottom per creare il nostro asse x e fornirgli la scala, definita in precedenza.
Step 4 - Add scales to the y-axis - Usa il codice seguente per aggiungere scale all'asse y.
var y_axis = d3.axisLeft()
.scale(yscale);
Qui, usiamo d3.axisLeft per creare il nostro asse y e fornirgli la scala che abbiamo definito sopra.
Step 5 - Apply transformation - È possibile aggiungere un elemento del gruppo e inserire l'asse x, y, definito di seguito.
svg.append("g")
.attr("transform", "translate(50, 10)")
.call(y_axis);
Step 6 - Append group elements - Applicare elementi di transizione e gruppo utilizzando il codice seguente.
var xAxisTranslate = height/2 + 10;
svg.append("g")
.attr("transform", "translate(50, " + xAxisTranslate +")")
.call(x_axis)
Step 7 - Working Example- L'elenco completo del codice è fornito nel seguente blocco di codice. Crea una pagina webaxes.html e aggiungi le seguenti modifiche.
<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>
Ora, richiedi il browser e vedremo le seguenti modifiche.