Para el tutorial de hoy vamos a empezar a diseñar y crear gráficos de barresLas trailing slashes son las barras que aparecen al final de una URL ( "https://es.ryte.com/" ) y representan un directorio. Si la URL no finaliza con una barra representa un archivo. No obstante, esto son solo guías, no un requerimiento. No obstante, usar una barra como representación de un directorio ha sido aceptado como estándar con el tiempo. Uso de las barras "https://es.ryte.com/" y SEO A pesar de que dichas Suite usando D3.js, sigue leyendo para que sepas cómo hacerlo

Tout d'abord, qu'est-ce que D3.js?

D3.js es una biblioteca de JavaScriptJavaScript es un lenguaje de programación que funciona en el lado del cliente y con el que las webs pueden ser más funcionales. Incorporación en código HTML El código JavaScript puede ser incrustado en las páginas HTML, para que adquieran funcionalidad. Existen varias opciones. Puede estar entre las etiquetas <SCRIPT> y </SCRIPT>, puede estar contenido en un archivo externo, puede ser un parámetro de las etiquetas HTML, y puede estar Suite basada en datos para manipular elementos DOM.

“D3 te ayuda a dar vida a los datos mediante HTMLHTML (Hypertext Markup Language) se usa para estructurar el contenido de texto de un documento web. No sólo se marca el contenido, sino además la meta-información que describe este contenido. Las páginas HTML se almacenan normalmente en el directorio raíz del servidor. Cómo se creó En la era digital, a los usuarios les resulta difícil hallar su camino en las webs y hacer un seguimiento de las estructuras de las Suite, SVG y CSSConcepto de CSS¿Qué es el CSS?CSS es un lenguaje de programación que se usa para definir el estilo y el aspecto de un documento que se ha escrito mediante de un lenguaje de etiquetas, como HTML. Conocido además como hojas de estilo en cascada, es el que se emplea para dar colores, indicar tipos de letra o inclusive resaltar aspectos como el espacio entre items para dotar de estilo a Suite. El énfasis de D3 en los estándares web le brinda todas las capacidades de los navigateursConcepto de Navegadores¿Qué son los Navegadores?Los Navegadores son herramientas informáticas que utilizamos para, normalmente, navegar por Internet y visitar cualquier página web, al mismo tiempo de para hacer otras tareas como ver documentos, observar vídeos o reproducir contenido multimedia de cualquier tipo. Son un tipo de software sencillamente usual y bastante utilizado hoy en día.Insistimos en que es algo que se utiliza con mucha frecuencia, puesto que moverse por Internet Suite modernos sin atarse a un marco propietario, combinando poderosos componentes de visualización y un enfoque basado en datos para la manipulación de DOM «. – d3js.org

Pourquoi devriez-vous créer des graphiques avec D3.js? Pourquoi ne pas simplement montrer une image?

Eh bien, les graphiques sont basés sur des informations provenant de ressources tierces qui nécessitent un affichage dynamique pendant le temps de traitement. De plus, SVG est un outil très puissant qui convient bien à ce cas d'application.

Prenons un détour pour voir quels avantages nous pouvons tirer de l'utilisation de SVG.

Les avantages du SVG

SVG significa gráficos vectoriales escalables, que técnicamente es un lenguaje de marcado basado en XMLEl lenguaje de marcado XML es menos complicado que su nombre ("Extensible Markup Language") puede hacer creer: Un archivo XML contiene texto altamente estructurado, semejante a los archivos HTML. No obstante, la estructuración del texto es tan clara y lógica que puede utilizarse para mapear bases de datos enteras. XML se usa frecuentemente para sitemap que se pueden cargar en la Google Search Console o en las Herramientas para Webmasters Suite.

Il est couramment utilisé pour dessiner des graphiques vectoriels, spécifier des lignes et des formes ou modifier des images existantes.

Avantages:

  • Compatible avec tous les principaux navigateurs
  • A une interface DOM, ne nécessite pas de bibliothèque tierce
  • Évolutif, peut maintenir une haute résolution
  • Taille réduite par rapport aux autres formats d'image.

Les inconvénients:

  • Il ne peut afficher que des images bidimensionnelles;
  • Longue courbe d'apprentissage
  • Le rendu peut prendre du temps avec des opérations intensives en calcul.
  • Malgré ses inconvénients, SVG est un excellent outil pour afficher des icônes, des logos, des illustrations ou dans ce cas des graphiques.

À partir de D3.js

J'ai choisi le graphique à barres pour commencer car il représente un visuel de faible complexité tout en enseignant l'application de base D3.js elle-même. Cela ne devrait pas vous tromper, D3 fournit un excellent ensemble d'outils pour visualiser les données.

Un graphique à barres peut être horizontal ou vertical selon son orientation. J'irai avec le histogramme aka vertical.

En este diagrama, voy a mostrar los 10 lenguajes de programmationConcepto de Programación¿Qué es la Programación?La Programación es el procedimiento al que se recurre para crear algún tipo de aplicación o software, para materializar un concepto o proyecto que requiere de la utilización de un lenguaje informático para poder llevarse a cabo. Es algo que está absolutamente ligado a la figura del programador, y que cada vez está cobrando más relevancia dentro del mundo del marketing.Decimos que tanto esta figura Suite más populares según el resultado de la Encuesta de Desarrolladores 2018 de Stack Overflow .

Il est temps de dessiner!

SVG a un système de coordonnées qui commence à partir du coin supérieur gauche (0; 0). L'axe des x positif va vers la droite, tandis que l'axe des y positif va vers le bas. Par conséquent, la hauteur du SVG doit être prise en compte lors du calcul de la coordonnée y d'un élément.

Je veux créer un graphique de 1000 pixels de large et 600 pixels de haut.

<body>
<svg />
</body>
<script>
const margin = 60;
const width = 1000 - 2 * margin;
const height = 600 - 2 * margin;

const svg = d3.select('svg');
</script>

Dans l'extrait de code ci-dessus, je sélectionne l'élément créé dans le fichier HTML avec D3 select. Cette méthode de sélection accepte tous les types de chaînes de sélection et renvoie le premier élément correspondant. Utilisez selectAll si vous souhaitez les obtenir tous.

También defino un valor de margen que le da un poco de relleno adicional al gráfico. El relleno se puede aplicar con un elemento <g> traducido por el valor deseado. De ahora en adelante, recurro a este grupo para mantener una buena distancia de cualquier otro ContenuEl contenido puede ser muy difícil de definir con precisión. Es una definición que se refiere a las declaraciones contenidas en un documento o publicación de cualquier tipo y puede incluir las tecnologías de la información y la comunicación. Esto cubre todos los tipos de medios como imágenes y texto. A parte de esto, en el campo de la optimización de motores de búsqueda, los términos duplicar contenido, contenido único, Suite de la page.

const chart = svg.append ('g') .attr ('transform', `translate ($ {margin}, $ {margin})`);

Agregar atributos a un elemento es tan fácil como llamar al método attr. El primer parámetro del método toma un attributAtributo es una definición que se usa en varios campos de IT. Generalmente, un atributo se usa para describir un fichero o un campo de datos con más detalle. En la programación orientada a objetos, los atributos son una propiedad o característica que se puede asignar a un objeto (elemento). A través el uso de atributos se pueden asignar valores específicos a ciertos items. Áreas de aplicación Las tres áreas Suite que quiero aplicar al elemento DOM seleccionado. El segundo parámetro es el valor o una función de devolución de llamada que devuelve su valor. El código anterior simplemente mueve el inicio del gráfico a la posición (60; 60) del SVG.

Formats d'entrée D3.js pris en charge

Pour commencer à dessiner, je dois définir la source de données à partir de laquelle je travaille. Pour ce tutoriel, j'utilise un simple tableau JavaScript qui contient des objets avec le nom des langues et leurs pourcentages, mais il est important de mentionner que D3.js prend en charge divers formats de données.

La bibliothèque a des fonctionnalités intégrées pour charger à partir de XMLHttpRequest, de fichiers .csv, de fichiers texte, etc. Chacune de ces sources peut contenir des données que D3.js peut utiliser, la seule chose importante est de construire un tableau à partir de celle-ci. Notez qu'à partir de la version 5.0, la bibliothèque utilise des promesses au lieu de rappels pour charger les données, ce qui n'est pas une modification rétrocompatible.

Mise à l'échelle et axes

Continuons avec les axes du graphique. Pour dessiner l'axe y, Je dois définir la limite de valeur la plus basse et la plus élevée, qui dans ce cas sont 0 et 100.

Je travaille avec des pourcentages dans ce didacticiel, mais il existe des fonctions utilitaires pour les types de données autres que les nombres que j'expliquerai plus tard.

Je dois diviser la hauteur du graphique entre ces deux valeurs à parts égales. Pour cela, je crée quelque chose appelé une fonction de mise à l'échelle.

const yScale = d3.scaleLinear () .range ([hauteur, 0]) .domaine ([0, 100]);

La escala lineal es el tipo de escala más conocido. Convierte un domaineUn dominio es una sección de Internet con direcciones que comparten un sufijo común o están bajo el control de una organización o individuo en particular. Está organizado jerárquicamente. Tanto los objetos físicos como los virtuales pueden ser direccionados con el nombre de dominio. Estos objetos pueden ser webs, ordenadores en red o servicios, como impresoras, faxes o servidores de correo. Cada objeto está referenciado por una dirección IP única, Suite de entrada continuo en un rango de salida continuo. Observa el método rangey domain. El primero toma la longitud que debe dividirse entre los límites de los valores del dominio.

N'oubliez pas que le système de coordonnées SVG commence à partir du coin supérieur gauche, la plage prend donc la hauteur comme premier paramètre et non zéro.

Créer un axe gauche est aussi simple que d'ajouter un autre groupe et d'appeler la méthode axisLeft de D3 avec la fonction d'échelle comme paramètre.

chart.append ('g') .call (d3.axisLeft (yScale));

Maintenant, continuez avec l'axe des x.

const xScale = d3.scaleBand () .range ([0, width]) .domain (sample.map ((s) => s.language)) .padding (0.2) chart.append ('g') .attr ( 'transform', `translate (0, $ {hauteur})`) .call (d3.axisBottom (xScale)); d3-js-tutorial-bar-chart-labels

Notez que j'utilise scaleBand pour l'axe des x, ce qui aide à diviser la plage en bandes et à calculer les coordonnées et les largeurs des barres avec un rembourrage supplémentaire.

D3.js est également capable de gérer le type de date parmi beaucoup d'autres. scaleTime est vraiment similaire à scaleLinear, sauf que le domaine ici est un ensemble de dates.

Barres de dessin dans D3.js

Pensez au type d'entrée dont nous avons besoin pour dessiner les barres. Chacun représente une valeur illustrée par des formes simples, en particulier des rectangles. Dans l'extrait de code suivant, je les attache à l'élément de groupe créé.

chart.selectAll () .data (buts) .enter () .append ('rect') .attr ('x', (s) => xScale (s.language)) .attr ('y', (s) => yScale (s.value)) .attr ('height', (s) => height - yScale (s.value)) .attr ('width', xScale.bandwidth ())

Tout d'abord, vous utilisez selectAll pour sélectionner les éléments dans le graphique qui retourne avec un jeu de résultats vide. Ensuite, la fonction de données qui indique le nombre d'éléments que le DOM doit être mis à jour en fonction de la longueur du tableau. enter identifie les éléments manquants si l'entrée de données est plus longue que la sélection. Cela renvoie une nouvelle sélection représentant les éléments à ajouter. Habituellement, cela est suivi d'un élément append qui ajoute des éléments au DOM.

Fondamentalement, je dis à D3.js d'ajouter un rectangle pour chaque membre du tableau.

Maintenant, cela ajoute simplement des rectangles les uns sur les autres qui n'ont ni hauteur ni largeur. Ces deux attributs doivent être calculés et c'est là que les fonctions de mise à l'échelle sont à nouveau utiles.

Regardez, j'ajoute les coordonnées des rectangles avec l'attr appelé. Le deuxième paramètre peut être un rappel qui prend 3 paramètres: le membre réel des données d'entrée, son index et l'entrée entière.

.attr ('x', (réel, index, tableau) => xScale (valeur.actuelle))

La fonction d'échelle renvoie les coordonnées d'une valeur de domaine donnée. Le calcul des coordonnées est un jeu d'enfant, l'astuce est avec la hauteur de la barre. La coordonnée y calculée doit être soustraite de la hauteur du graphique pour obtenir la représentation correcte de la valeur sous forme de colonne.

Je définis la largeur des rectangles avec la fonction de mise à l'échelle. ScaleBand a également une fonction de bande passante qui renvoie la largeur calculée pour un élément en fonction du jeu de remplissage.

d3-js-tutorial-bar-chart-drawn-out-with-javascript

Beau travail, mais pas si sophistiqué, non?

Pour éviter que notre public ne s'ennuie, ajoutons des informations et améliorons les images pour rendre votre graphique beaucoup plus beau!