Para el tutorial de hoy vamos a empezar a diseñar y crear gráficos de RiegelLas 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 Plus usando D3.js, sigue leyendo para que sepas cómo hacerlo

Was ist 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 Plus 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 Plus, 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 Plus. El énfasis de D3 en los estándares web le brinda todas las capacidades de los BrowserConcepto 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 Plus 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

Warum sollten Sie Diagramme mit D3.js erstellen? Warum nicht einfach ein Bild zeigen?

Nun, die Diagramme basieren auf Informationen von Ressourcen von Drittanbietern, die während der Verarbeitungszeit eine dynamische Anzeige erfordern. Außerdem ist SVG ein sehr leistungsfähiges Tool, das für diesen Anwendungsfall gut geeignet ist.

Machen wir einen Umweg, um zu sehen, welche Vorteile die Verwendung von SVG bietet.

Die Vorteile von 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 Plus.

Es wird häufig verwendet, um Vektorgrafiken zu zeichnen, Linien und Formen anzugeben oder vorhandene Bilder zu ändern.

Vorteile:

  • Kompatibel mit allen gängigen Browsern
  • Hat DOM-Schnittstelle, benötigt keine Drittanbieter-Bibliothek
  • Skalierbar, kann eine hohe Auflösung beibehalten
  • Reduzierte Größe im Vergleich zu anderen Bildformaten.

Nachteile:

  • Es können nur zweidimensionale Bilder angezeigt werden.
  • Lange Lernkurve
  • Das Rendern kann bei rechenintensiven Vorgängen zeitaufwändig sein.
  • Trotz seiner Nachteile ist SVG ein großartiges Werkzeug zum Anzeigen von Symbolen, Logos, Illustrationen oder in diesem Fall Grafiken.

Beginnend mit D3.js.

Ich habe mich zunächst für das Balkendiagramm entschieden, da es eine visuelle Darstellung mit geringer Komplexität darstellt, während die grundlegende D3.js-Anwendung selbst unterrichtet wird. Dies sollte Sie nicht täuschen, D3 bietet eine Reihe großartiger Tools zur Visualisierung von Daten.

Ein Balkendiagramm kann je nach Ausrichtung horizontal oder vertikal sein. Ich werde mit dem Säulendiagramm alias vertikal gehen.

En este diagrama, voy a mostrar los 10 lenguajes de ProgrammierungConcepto 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 Plus más populares según el resultado de la Encuesta de Desarrolladores 2018 de Stack Overflow .

Zeit zum Zeichnen!

SVG hat ein Koordinatensystem, das in der oberen linken Ecke beginnt (0; 0). Die positive x-Achse geht nach rechts, während die positive y-Achse nach unten geht. Daher muss die Höhe des SVG bei der Berechnung der y-Koordinate eines Elements berücksichtigt werden.

Ich möchte eine Grafik erstellen, die 1000 Pixel breit und 600 Pixel hoch ist.

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

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

Im obigen Codefragment wähle ich das erstellte Element in der HTML-Datei mit D3 select aus. Diese Auswahlmethode akzeptiert alle Arten von Auswahlzeichenfolgen und gibt das erste übereinstimmende Element zurück. Verwenden Sie selectAll, wenn Sie alle erhalten möchten.

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 InhaltEl 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, Plus der Seite.

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

Unterstützte D3.js-Eingabeformate

Um mit dem Zeichnen zu beginnen, muss ich die Datenquelle definieren, aus der ich arbeite. Für dieses Tutorial verwende ich ein einfaches JavaScript-Array, das Objekte mit den Namen der Sprachen und deren Prozentsätzen enthält. Es ist jedoch wichtig zu erwähnen, dass D3.js verschiedene Datenformate unterstützt.

Die Bibliothek verfügt über integrierte Funktionen zum Laden von XMLHttpRequest, CSV-Dateien, Textdateien usw. Jede dieser Quellen kann Daten enthalten, die D3.js verwenden kann. Das einzig Wichtige ist, daraus ein Array zu erstellen. Beachten Sie, dass die Bibliothek ab Version 5.0 Versprechen anstelle von Rückrufen verwendet, um Daten zu laden. Dies ist keine abwärtskompatible Änderung.

Skalierung und Achsen

Fahren wir mit den Achsen des Diagramms fort. Achse zeichnen yIch muss die niedrigste und höchste Wertgrenze festlegen, die in diesem Fall 0 und 100 sind.

Ich arbeite in diesem Tutorial mit Prozentsätzen, aber es gibt Dienstprogrammfunktionen für andere Datentypen als Zahlen, die ich später erläutern werde.

Ich muss die Höhe des Graphen zwischen diesen beiden Werten zu gleichen Teilen teilen. Dafür erstelle ich eine sogenannte Skalierungsfunktion.

const yScale = d3.scaleLinear () .range ([height, 0]) .domain ([0, 100]);

La escala lineal es el tipo de escala más conocido. Convierte un DomainUn 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, Plus 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.

Denken Sie daran, dass das SVG-Koordinatensystem in der oberen linken Ecke beginnt, sodass der Bereich die Höhe als ersten Parameter und nicht Null verwendet.

Das Erstellen einer linken Achse ist so einfach wie das Hinzufügen einer weiteren Gruppe und das Aufrufen der axisLeft-Methode von D3 mit der Skalierungsfunktion als Parameter.

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

Fahren Sie nun mit der x-Achse fort.

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

Beachten Sie, dass ich scaleBand für die x-Achse verwende, um den Bereich in Bänder zu unterteilen und die Koordinaten und Breiten der Balken mit zusätzlicher Auffüllung zu berechnen.

D3.js kann unter anderem auch den Datumstyp verarbeiten. scaleTime ist scaleLinear sehr ähnlich, außer dass es sich bei der Domain hier um eine Reihe von Daten handelt.

Zeichnen von Balken in D3.js.

Überlegen Sie, welche Art von Eingabe wir benötigen, um die Balken zu zeichnen. Jedes stellt einen Wert dar, der mit einfachen Formen, insbesondere Rechtecken, dargestellt wird. Im folgenden Codeausschnitt hänge ich sie an das erstellte Gruppenelement an.

chart.selectAll () .data (Ziele) .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 ())

Zuerst verwenden Sie selectAll, um die Elemente im Diagramm auszuwählen, die mit einer leeren Ergebnismenge zurückgegeben werden. Dann die Datenfunktion, die angibt, wie viele Elemente das DOM basierend auf der Länge des Arrays aktualisiert werden soll. enter identifiziert fehlende Elemente, wenn die Dateneingabe länger als die Auswahl ist. Dies gibt eine neue Auswahl zurück, die die hinzuzufügenden Elemente darstellt. Normalerweise folgt ein Anhängeelement, das dem DOM Elemente hinzufügt.

Grundsätzlich fordere ich D3.js auf, für jedes Mitglied des Arrays ein Rechteck hinzuzufügen.

Jetzt werden nur noch Rechtecke übereinander hinzugefügt, die weder Höhe noch Breite haben. Diese beiden Attribute müssen berechnet werden, und hier bieten sich wieder Skalierungsfunktionen an.

Schau, ich füge die Koordinaten der Rechtecke mit dem aufgerufenen attr hinzu. Der zweite Parameter kann ein Rückruf sein, der drei Parameter akzeptiert: das tatsächliche Element der Eingabedaten, seinen Index und die gesamte Eingabe.

.attr ('x', (aktuell, Index, Array) => xScale (aktuell.Wert))

Die Skalierungsfunktion gibt die Koordinate für einen bestimmten Domänenwert zurück. Das Berechnen der Koordinaten ist ein Kinderspiel, der Trick liegt in der Höhe des Balkens. Die berechnete y-Koordinate muss von der Höhe des Diagramms abgezogen werden, um die korrekte Darstellung des Werts als Spalte zu erhalten.

Ich definiere die Breite der Rechtecke mit der Skalierungsfunktion. Auch scaleBand hat eine Bandbreitenfunktion, die die berechnete Breite für ein Element basierend auf dem Füllsatz zurückgibt.

d3-js-tutorial-Balkendiagramm-mit-Javascript herausgezogen

Gute Arbeit, aber nicht so schick, oder?

Um zu verhindern, dass sich unser Publikum langweilt, fügen wir Informationen hinzu und verbessern die Bilder, damit Ihre Grafik viel besser aussieht!