En aquest tema, aprendrem sobre un dels conceptes fonamentals de D3.js: les seleccions. Les seleccions són la base per manipular el Document Object Model (DOM) amb D3.js. A través de les seleccions, podem accedir als elements del DOM, modificar-los i enllaçar-los amb dades.

Conceptes Clau

  1. Seleccions: Permeten seleccionar elements del DOM per manipular-los.
  2. Metodes de Selecció: d3.select i d3.selectAll.
  3. Manipulació d'Elements: Modificar atributs, estils i contingut dels elements seleccionats.
  4. Enllaç de Dades: Associar dades als elements seleccionats.

Seleccions en D3.js

d3.select i d3.selectAll

D3.js proporciona dos mètodes principals per fer seleccions:

  • d3.select: Selecciona el primer element que coincideix amb el selector especificat.
  • d3.selectAll: Selecciona tots els elements que coincideixen amb el selector especificat.

Exemple de d3.select

// Selecciona el primer element <p> del document
d3.select("p")
  .style("color", "blue"); // Canvia el color del text a blau

Exemple de d3.selectAll

// Selecciona tots els elements <p> del document
d3.selectAll("p")
  .style("color", "green"); // Canvia el color del text a verd

Manipulació d'Elements

Un cop hem seleccionat els elements, podem manipular-los utilitzant diversos mètodes proporcionats per D3.js.

Modificant Atributs

// Selecciona tots els elements <circle> i els assigna un radi de 10
d3.selectAll("circle")
  .attr("r", 10);

Modificant Estils

// Selecciona tots els elements <rect> i els assigna un color de fons vermell
d3.selectAll("rect")
  .style("fill", "red");

Modificant Contingut

// Selecciona el primer element <h1> i canvia el seu text
d3.select("h1")
  .text("Nou Títol");

Enllaç de Dades

Un dels aspectes més poderosos de D3.js és la capacitat d'enllaçar dades als elements del DOM. Això ens permet crear visualitzacions dinàmiques basades en dades.

Exemple d'Enllaç de Dades

// Dades a enllaçar
var data = [10, 20, 30, 40, 50];

// Selecciona tots els elements <div> i els enllaça amb les dades
d3.selectAll("div")
  .data(data)
  .style("height", function(d) {
    return d + "px"; // Assigna l'alçada de cada <div> segons el valor de les dades
  });

Exercicis Pràctics

Exercici 1: Seleccionant i Modificant Elements

  1. Selecciona tots els elements <p> del document.
  2. Canvia el color del text a blau.
  3. Canvia el contingut del text a "Text modificat".

Solució

d3.selectAll("p")
  .style("color", "blue")
  .text("Text modificat");

Exercici 2: Enllaçant Dades

  1. Crea un conjunt de dades: [5, 10, 15, 20, 25].
  2. Selecciona tots els elements <div> del document.
  3. Enllaça les dades als elements <div> i assigna l'alçada de cada <div> segons el valor de les dades.

Solució

var data = [5, 10, 15, 20, 25];

d3.selectAll("div")
  .data(data)
  .style("height", function(d) {
    return d + "px";
  });

Errors Comuns i Consells

  • Error Comú: No veure canvis després de fer una selecció.

    • Solució: Assegura't que els elements que estàs seleccionant existeixen al DOM i que el selector és correcte.
  • Consell: Utilitza la consola del navegador per verificar les seleccions.

    • d3.select("p") i d3.selectAll("p") poden ser provats directament a la consola per veure quins elements són seleccionats.

Conclusió

En aquesta secció, hem après sobre les seleccions en D3.js, com utilitzar d3.select i d3.selectAll, i com manipular elements del DOM. També hem vist com enllaçar dades als elements seleccionats. Aquestes habilitats són fonamentals per treballar amb D3.js i crear visualitzacions dinàmiques i interactives. En la següent secció, aprofundirem en com seleccionar elements del DOM de manera més detallada.

D3.js: De Principiant a Avançat

Mòdul 1: Introducció a D3.js

Mòdul 2: Treballant amb Seleccions

Mòdul 3: Dades i Escales

Mòdul 4: Creant Visualitzacions Bàsiques

Mòdul 5: Visualitzacions Avançades

Mòdul 6: Interactivitat i Animació

Mòdul 7: Treballant amb Dades Reals

Mòdul 8: Rendiment i Optimització

Mòdul 9: Millors Pràctiques i Tècniques Avançades

Mòdul 10: Projecte Final

© Copyright 2024. Tots els drets reservats