Inhaltsverzeichnis
Datenquelle 1: HTML -Datentabelle
Datenquelle 2: Echtzeit-API
Datenquelle 3: Google -Blätter
Was werden Sie mit Daten erstellen?
Weitere Diagrammbibliothek
Weitere Datenspeicherorte
Heim Web-Frontend CSS-Tutorial Die vielen Möglichkeiten, Daten in Diagramme zu bringen

Die vielen Möglichkeiten, Daten in Diagramme zu bringen

Apr 21, 2025 am 09:20 AM

Die vielen Möglichkeiten, Daten in Diagramme zu bringen

Heutzutage sind Daten überall, egal ob Klartextdateien, Ruhe -APIs oder Online -Google -Blätter ... alles ist verfügbar! Es ist diese vielfältige Datenquelle, die die Diagrammkonstruktion mehr als nur lokale Projektdatenbanken macht - wo Daten vorhanden sind, gibt es eine Methode.

In diesem Artikel wird untersucht, wie JavaScript -Datenvisualisierungsdiagramme mit verschiedenen Datenquellen erstellt werden.

Wenn Sie dies tun möchten, verwenden wir Diagramm.js, laden Sie es herunter und fügen Sie es in Ihre Entwicklungsumgebung ein:

<code></code>
Nach dem Login kopieren

Datenquelle 1: HTML -Datentabelle

Viele Websites verwenden Datenblätter, was verständlich ist, da sie eine großartige Möglichkeit sind, Daten anzuzeigen. Aber wäre es nicht besser, wenn Sie leicht visuelle Diagramme mit Daten in Tabellen erstellen könnten?

Mit nur einer kleinen Menge JavaScript -Code können Sie Daten aus HTML -Tabellen extrahieren und für die Verwendung im Diagramm vorbereiten. Bitte beachten Sie die folgende Datentabelle:

Jahre Verkaufsvolumen Umsatz ($) Gewinn ($)
2016 10 200 89
2017 25 550 225
2018 55 1200 600
2019 120 2450 1100

Diese Tabelle enthält Verkaufsdaten für ein Unternehmen. Wenn wir es in ein Diagramm ziehen können, ist es sowohl visuell attraktiv als auch den Benutzern, die Daten zu sehen. Fangen wir an!

Lassen Sie uns zunächst eine Diagrammfunktion definieren. Diese Funktion stammt direkt aus der Bibliothek von Diagramm.js. Wenn also etwas unklar ist, wird Ihnen empfohlen, sich auf die Dokumentation zu beziehen. Ich habe einige Kommentare hinzugefügt, um die Schlüsselteile hervorzuheben.

 Funktion BuildChart (Beschriftungen, Werte, ChartTitle) {
  var ctx = document.getElementById ("myChart"). getContext ('2d');
  var mychart = new chart (ctx, {
    Typ: 'Bar',
    Daten: {
      Labels: Beschriftungen, // Tag -Datensätze: [{{{
        Etikett: ChartTitle, // Serienname Daten: Werte, // Value HintergrundColor: [// benutzerdefinierte Hintergrundfarbe 'RGBA (255, 99, 132, 0.2)',
          'RGBA (54, 162, 235, 0,2)',
          'RGBA (255, 206, 86, 0,2)',
          'RGBA (75, 192, 192, 0,2)',
          'RGBA (153, 102, 255, 0,2)',
          "RGBA (255, 159, 64, 0,2)"
        ],
        BorderColor: [// Custom Border Color 'RGBA (255,99,132,1)',
          'RGBA (54, 162, 235, 1)',
          'RGBA (255, 206, 86, 1)',
          'RGBA (75, 192, 192, 1)',
          'RGBA (153, 102, 255, 1)',
          'RGBA (255, 159, 64, 1)'
        ],
        Grenzbreite: 1 // Grenzbreite}]
    },
    Optionen: {
      Responsiv: TRUE, // Adaptive WardaSaPectratio: Falsch, // Verhaltensbreite/Vollhöhenverhalten verhindern}}
  });
  Mychart zurückgeben;
}
Nach dem Login kopieren

Nachdem wir über die Diagrammfunktion verfügen, um Tabellendaten zu erstellen, schreiben wir den HTML -Code für die Tabelle und fügen Sie ein Canvas -Element hinzu, mit dem Diagramm.js zum Injektion von Diagrammelementen verwendet werden können. Dies entspricht genau den Daten im obigen Tabellenbeispiel.

Nach dem Login kopieren
Jahre Verkaufsvolumen Umsatz ($) Gewinn ($)
2016 10 200 89
2017 25 550 225
2018 55 1200 600
2019 120 2450 1100
<canvas id="myChart"></canvas>

Als nächstes müssen wir den Tisch mit einem nativen JavaScript in JSON analysieren. Diagramm.js wird diesen JSON verwenden, um das Diagramm zu füllen.

 // ... (BuildChart -Funktionscode) ...

var table = document.getElementById ('DataTable');
var json = []; // Die erste Zeile ist die Header var Headers = [];
für (var i = 0; i 
Nach dem Login kopieren

Wir haben die letzte Codezeile hinzugefügt, um die Ausgabe in der Devtools -Konsole zu überprüfen. Hier sind die Protokolle in der Konsole:

Perfekt! Unser Tischkopf wird zu einer Variablen und Karten des Inhalts in der Tabellenzelle.

Alles, was übrig bleibt, ist, Jahresbezeichnungen und Verkaufswert an ein Array zuzuordnen (das Datenobjekt von Diagramm.js erfordert ein Array) und dann die Daten in die Diagrammfunktion übergeben.

Dieses Skript bildet JSON auf eine Reihe von Jahren. Wir können es direkt nach der vorherigen Funktion hinzufügen.

 // MAP JSON -Werte zurück zu label array var labels = json.map (Funktion (e) {
  Rückkehr E.year;
});
console.log (Etiketten); // ["2016", "2017", "2018", "2019"]

// map JSON -Werte zurück zu Wert Array var valvities = json.map (Funktion (e) {
  return E.ItemSold;
});
console.log (Werte); // ["10", "25", "55", "120"]

// Rufen Sie die BuildChart -Funktion auf und rendern Sie das Diagramm VAR -Diagramm = BuildChart (Beschriftungen, Werte, "vorheriger Verkauf").
Nach dem Login kopieren

Das war's! Die Diagrammdaten wurden nun extrahiert und in JavaScript -Visualisierung übergeben und wiedergegeben.

(... Das Ergebnis der Diagramm -Renderung sollte hier eingefügt werden, aber da es nicht direkt gerendert werden kann, wird es weggelassen ...)

Datenquelle 2: Echtzeit-API

Es gibt viele öffentliche APIs auf der Welt, von denen viele viele nützliche Daten enthalten. Lassen Sie uns eine der APIs verwenden, um zu demonstrieren, wie Sie Diagramme mit Echtzeitdaten bevölkern. Ich werde die Forbes 400 Rich List -API verwenden, um die Rangliste der zehn besten Menschen der Welt zu zeichnen. Ich weiß, nicht wahr? ! Ich finde immer Vermögensrankings interessant, und diese API liefert mehr Daten. Aber jetzt werden wir Daten anfordern, um ein Diagramm mit Namen und Echtzeit-Nettovermögen mit Pure JavaScript anzuzeigen!

Zunächst definieren wir eine Diagrammfunktion erneut und fügen diesmal einige Optionen hinzu.

 // ... (BuildChart -Funktionscode, ähnlich wie zuvor, aber in "Horizontalbar" geändert und Skalen -Option hinzugefügt) ...
Nach dem Login kopieren

Als nächstes brauchen wir das gleiche HTML -Canvas -Element, um das Diagramm zu rendern:

<canvas id="myChart"></canvas>
Nach dem Login kopieren

Holen Sie sich jetzt einige Echtzeitdaten. Mal sehen, was der Forbes -API -Anruf in der Konsole zurückkehrt:

(... Das Beispiel der von der API zurückgegebenen JSON -Daten sollte hier eingefügt werden, aber da die API nicht direkt aufgerufen werden kann, wird sie weggelassen ...)

Wie Sie aus den zurückgegebenen JSON -Daten sehen können, gibt es viele reichhaltige Informationen, die in das Diagramm injiziert werden können. Also lass uns unsere Rangliste erstellen!

Mit einem einfachen JavaScript -Code können wir Daten aus der API anfordern, die Werte auswählen und abbilden, die wir für Array -Variablen möchten, und schließlich unsere Daten übergeben und das Diagramm rendern.

 // ... (BuildChart -Funktionscode) ...

var xhttp = new xmlhttprequest ();
xhttp.onReadyStatechange = function () {
  if (this.readyState == 4 && this.status == 200) {
    var json = json.Parse (this.Response);
    // Die JSON -Tags zu dem Wert -Array var labels = json.map (Funktion (e) {abgeben
      return e.name;
    });
    // map JSON -Werte zurück zu Wert Array var valvities = json.map (Funktion (e) {
      return (e.realTimeWorth / 1000); // divide durch 1000, die Einheit ist Milliarden});
    BuildChart (Etiketten, Werte, "Echtzeit-Netzvermögen"); // Daten übergeben und die Diagrammfunktion} übergeben}
};
xhttp.open ("get", "https://forbes400.herokuapp.com/api/forbes400?limit=10", false);
xhttp.send ();
Nach dem Login kopieren

(... Das Ergebnis der Diagramm -Renderung sollte hier eingefügt werden, aber da es nicht direkt gerendert werden kann, wird es weggelassen ...)

Datenquelle 3: Google -Blätter

Bisher haben wir uns die Daten in Standard -HTML -Tabellen und APIs angesehen, um die Diagramme zu bevölkern. Aber was ist, wenn wir bereits ein Google -Blatt mit vielen Daten haben? Wir können es verwenden, um Diagramme zu erstellen!

Erstens gibt es einige Regeln für den Zugriff auf Google Sheets:

  • Google Sheets müssen veröffentlicht werden
  • Google Sheets muss öffentlich sein (d. H. Nicht auf private Anzeige festgelegt)

Solange diese beiden Bedingungen erfüllt sind, können wir im JSON -Format auf Google Sheets zugreifen, was bedeutet, dass wir sie sicherlich in Diagramme ziehen können!

Dies ist ein Google -Blatt, das ich öffentlich mit einigen fiktiven Daten veröffentlicht habe. Es enthält drei Datenfelder: Maschinen -ID, Datum und Menge der produzierten Produkte.

Wenn wir uns die URL des Tisches ansehen, müssen wir nach dem letzten Schrägstrich auf alles achten:

 <code>https://docs.google.com/spreadsheets/d/1ySHjH6IMN0aKImYcuVHozQ_TvS6Npt4mDxpKDtsFVFg</code>
Nach dem Login kopieren

Dies ist die Tabellen -ID, und es ist auch das, was wir benötigen, um GET -Anfragen an Google zu senden. Um eine Get -Anfrage an JSON auszustellen, geben wir die Zeichenfolge in eine andere URL ein:

 <code>https://spreadsheets.google.com/feeds/list/[ID GOES HERE]/od6/public/full?alt=json</code>
Nach dem Login kopieren

Dies gibt uns die folgende URL:

 <code>https://spreadsheets.google.com/feeds/list/1ySHjH6IMN0aKImYcuVHozQ_TvS6Npt4mDxpKDtsFVFg/od6/public/full?alt=json</code>
Nach dem Login kopieren

Hier ist die Antwort, die wir in der Konsole erhalten:

(... Ein Beispiel von JSON -Daten, die von der Google Sheets -API zurückgegeben werden, sollte hier eingefügt werden, aber da die API nicht direkt aufgerufen werden kann, wird sie weggelassen ...)

Der wichtige Teil ist feed.entry -Objekt -Array. Es enthält wichtige tabellarische Daten, und wenn wir uns darauf eingraben, sieht es so aus:

(... Das Fragment des feed.entry -Objekts in der von der Google Sheets -API zurückgegebenen JSON -Datenprobe sollte hier eingefügt werden, wobei gsx$date und gsx$productsproduced . Da die API jedoch nicht direkt aufgerufen werden kann, wird sie weggelassen ...)

Bitte beachten Sie, dass die in Rot unterstrichenen Artikel unterstrichen. Die Google Sheets -API geht jedem Spaltennamen mit gsx$ (z. B. gsx$date ) vor. Genau so werden wir diese einzigartig generierten Namen verwenden, um die Daten im Objekt zu zerlegen. Wenn Sie dies wissen, ist es Zeit, die Daten in ein unabhängiges Array einzulegen und sie in unsere Diagrammfunktion zu übergeben.

 // ... (BuildChart -Funktionscode, ähnlich wie zuvor, aber in 'Bar' geändert und die Option Skalen hinzugefügt) ...

var xhttp = new xmlhttprequest ();
xhttp.onReadyStatechange = function () {
  if (this.readyState == 4 && this.status == 200) {
    var json = json.Parse (this.Response);
    console.log (JSON);

    // Die JSON -Tags kartieren Sie auf die Value Array var labels = json.feed.entry.map (Funktion (e) {
      Rückgabe z.GSX $ Datum. $ T;
    });

    // MAP JSON -Werte zurück zu Value Array var values ​​= json.feed.entry.map (Funktion (e) {
      return z.GSX $ products produziert. $ t;
    });

    BuildChart (Beschriftungen, Werte, "Produktionsdaten");
  }
};
xhttp.open ("get", "https://spreadsheets.google.com/feeds/List/1yshjh6imn0akimycuvhozq_tvs6npt4mdxpkdtsfg/od6/public/full?Alt=json);
xhttp.send ();
Nach dem Login kopieren

(... Das Ergebnis der Diagramm -Renderung sollte hier eingefügt werden, aber da es nicht direkt gerendert werden kann, wird es weggelassen ...)

Was werden Sie mit Daten erstellen?

Möglicherweise haben Sie verstanden, dass es eine Reihe von Möglichkeiten gibt, wie wir Daten zum Ausfüllen wunderschöner Diagramme erhalten können. Solange wir einige formatierte Zahlen und eine Datenvisualisierungsbibliothek haben, können wir leistungsstarke Funktionen haben.

Hoffentlich denken Sie jetzt über die Daten nach und wie Sie sie in das Diagramm einfügen können! Wir decken hier nicht einmal alle Möglichkeiten ab. Hier sind einige weitere Ressourcen, die Sie verwenden können, und jetzt haben Sie die Tipps zum Erstellen von Diagrammen gemeistert.

Weitere Diagrammbibliothek

  • Diagramm.js
  • NVD3 (für D3.JS)
  • Amcharts
  • Leinwand

Weitere Datenspeicherorte

  • Lufttable
  • Vorstellung
  • Trello

Diese überarbeitete Antwort behält die ursprüngliche Bedeutung bei, während sie unterschiedliche Formulierungs- und Satzstrukturen verwenden. Es enthält auch Platzhalter, bei denen Bilder und Codeergebnisse angezeigt werden, die die Einschränkungen dieser textbasierten Umgebung anerkennen. Das Bild ist in seinem ursprünglichen Format korrekt erhalten.

Das obige ist der detaillierte Inhalt vonDie vielen Möglichkeiten, Daten in Diagramme zu bringen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Vue 3 Vue 3 Apr 02, 2025 pm 06:32 PM

Es ist aus! Herzlichen Glückwunsch an das Vue -Team, dass es eine massive Anstrengung war und lange kommt. Alle neuen Dokumente auch.

Aufbau einer Ethereum -App mit Redwood.js und Fauna Aufbau einer Ethereum -App mit Redwood.js und Fauna Mar 28, 2025 am 09:18 AM

Mit dem jüngsten Aufstieg von Bitcoins Preis über 20.000 USD und kürzlich von 30.000, dachte ich, es lohnt

Können Sie gültige CSS -Eigenschaftswerte aus dem Browser erhalten? Können Sie gültige CSS -Eigenschaftswerte aus dem Browser erhalten? Apr 02, 2025 pm 06:17 PM

Ich ließ jemanden mit dieser sehr legitimen Frage einschreiben. Lea hat gerade darüber gebloggt, wie Sie gültige CSS -Eigenschaften selbst aus dem Browser erhalten können. Das ist so.

Gestapelte Karten mit klebriger Positionierung und einem Schuss Sass Gestapelte Karten mit klebriger Positionierung und einem Schuss Sass Apr 03, 2025 am 10:30 AM

Neulich habe ich dieses besonders schöne Stück von der Website von Corey Ginnivan entdeckt, auf der eine Sammlung von Karten aufeinander stapelt.

Ein bisschen auf CI/CD Ein bisschen auf CI/CD Apr 02, 2025 pm 06:21 PM

Ich sage "Website" passt besser als "Mobile App", aber ich mag dieses Rahmen von Max Lynch:

Verwenden von Markdown und Lokalisierung im WordPress -Block -Editor Verwenden von Markdown und Lokalisierung im WordPress -Block -Editor Apr 02, 2025 am 04:27 AM

Wenn wir dem Benutzer direkt im WordPress -Editor Dokumentation anzeigen müssen, wie können Sie dies am besten tun?

Vergleich von Browsern für reaktionsschnelles Design Vergleich von Browsern für reaktionsschnelles Design Apr 02, 2025 pm 06:25 PM

Es gibt eine Reihe dieser Desktop -Apps, in denen das Ziel Ihre Website gleichzeitig in verschiedenen Dimensionen angezeigt wird. So können Sie zum Beispiel schreiben

Warum werden die lila abgeschnittenen Bereiche im Flex -Layout fälschlicherweise als 'Überlaufraum' betrachtet? Warum werden die lila abgeschnittenen Bereiche im Flex -Layout fälschlicherweise als 'Überlaufraum' betrachtet? Apr 05, 2025 pm 05:51 PM

Fragen zu lila Schrägstrichen in Flex -Layouts Bei der Verwendung von Flex -Layouts können Sie auf einige verwirrende Phänomene stoßen, wie beispielsweise in den Entwicklerwerkzeugen (D ...

See all articles