Table des matières
Source de données 1: Table de données HTML
Source de données 2: API en temps réel
Source de données 3: Google Sheets
Que allez-vous créer avec les données?
Plus de bibliothèque de graphiques
Plus de lieux de stockage de données
Maison interface Web tutoriel CSS Les nombreuses façons d'obtenir des données dans les graphiques

Les nombreuses façons d'obtenir des données dans les graphiques

Apr 21, 2025 am 09:20 AM

Les nombreuses façons d'obtenir des données dans les graphiques

De nos jours, les données sont partout, que ce soit des fichiers en texte brut, des API REST ou des feuilles Google en ligne ... tout est disponible! C'est cette source diversifiée de données qui rend la construction de graphiques plus que les bases de données de projet locales - où il y a des données, il existe une méthode.

Cet article explorera comment créer des graphiques de visualisation des données JavaScript à l'aide de diverses sources de données.

Si vous souhaitez le faire, nous utiliserons Chart.js, téléchargeons et l'inclurons dans votre environnement de développement:

<code></code>
Copier après la connexion

Source de données 1: Table de données HTML

De nombreux sites Web utilisent des fiches techniques, ce qui est compréhensible car ils sont un excellent moyen d'afficher des données. Mais ne serait-il pas mieux que vous puissiez facilement créer des graphiques visuels avec des données dans les tableaux?

Avec juste une petite quantité de code JavaScript, vous pouvez extraire des données des tables HTML et les préparer à une utilisation dans le graphique. Veuillez consulter le tableau de données suivant:

années Volume des ventes Rignonment ($) Bénéfice ($)
2016 10 200 89
2017 25 550 225
2018 55 1200 600
2019 120 2450 1100

Ce tableau contient des données de vente pour une entreprise. Si nous pouvons le dessiner dans un graphique, il sera à la fois visuellement attrayant et aidera les utilisateurs à voir les données. Commençons!

Tout d'abord, définissons une fonction de graphique. Cette fonction provient directement de la bibliothèque Chart.js, donc si quelque chose n'est pas clair, il est conseillé de vous référer à la documentation. J'ai ajouté quelques commentaires pour mettre en évidence les pièces clés.

 fonction buildChart (étiquettes, valeurs, charttitle) {
  var ctx = document.getElementById ("myChart"). getContext ('2d');
  var mychart = nouveau graphique (ctx, {
    Type: «bar»,
    données: {
      Étiquettes: étiquettes, // Tags de données: [{{
        Étiquette: ChartTitle, // Données de nom de la série: valeurs, // Valeur BackgroundColor: [// Couleur d'arrière-plan personnalisée '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: [// Couleur de bordure personnalisée '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)»
        ],
        BorderWidth: 1 // Largeur de bordure}]
    },
    Options: {
      Réactif: Vrai, // Adaptive RETAILASPECTERTRATIO: FALSE, // Empêcher le comportement par défaut en pleine largeur / pleine hauteur}
  });
  Retour MyChart;
}
Copier après la connexion

Maintenant que nous avons la fonction du graphique pour créer des données de table, écrivons le code HTML pour la table et ajoutant un élément de canevas que Chart.js peut être utilisé pour injecter des éléments de graphique. C'est exactement la même chose que les données de l'exemple de tableau ci-dessus.

Copier après la connexion
années Volume des ventes Rignonment ($) Bénéfice ($)
2016 10 200 89
2017 25 550 225
2018 55 1200 600
2019 120 2450 1100
<canvas id="myChart"></canvas>

Ensuite, nous devons analyser la table en JSON en utilisant JavaScript natif. Chart.js utilisera ce JSON pour remplir le graphique.

 // ... (code de fonction buildChart) ...

var table = document.getElementById ('dataTable');
var json = []; // La première ligne est les en-têtes var en-tête = [];
pour (var i = 0; i 
Copier après la connexion

Nous avons ajouté la dernière ligne de code pour vérifier la sortie dans la console Devtools. Voici les journaux de la console:

Parfait! Notre en-tête de table devient une variable et mappe au contenu dans la cellule de table.

Il ne reste plus qu'à cartographier les étiquettes et la valeur des ventes pour un tableau (l'objet de données de Chart.js nécessite un tableau), puis transmettre les données dans la fonction du graphique.

Ce script mappe les valeurs JSON à un tableau d'années. Nous pouvons l'ajouter directement après la fonction précédente.

 // mapter les valeurs JSON à l'étiquette du tableau d'étiquette var étiquettes = json.map (fonction (e) {
  Retour E.Year;
});
console.log (étiquettes); // ["2016", "2017", "2018", "2019"]

// map les valeurs JSON à la valeur du tableau de valeur var valeurs = json.map (fonction (e) {
  retour E.ItemsSold;
});
console.log (valeurs); // ["10", "25", "55", "120"]

// Appelez la fonction BuildChart et rendez le graphique var chart = buildChart (étiquettes, valeurs, "ventes précédentes");
Copier après la connexion

C'est ça! Les données du graphique ont maintenant été extraites et transmises dans la visualisation JavaScript et rendues.

(... le résultat du rendu du graphique doit être inséré ici, mais comme il ne peut pas être rendu directement, il est omis ...)

Source de données 2: API en temps réel

Il existe de nombreuses API publiques dans le monde, dont beaucoup contiennent de nombreuses données utiles. Utilisons l'une des API pour montrer comment remplir des graphiques avec des données en temps réel. J'utiliserai l'API de la liste Rich Forbes 400 pour dessiner les classements de richesse des dix premières personnes les plus riches du monde. Je sais, n'est-ce pas? ! Je trouve toujours des classements de richesse intéressants et cette API fournit plus de données. Mais maintenant, nous demanderons des données afficher un graphique avec des noms et une valeur nette en temps réel en utilisant Pure JavaScript!

Tout d'abord, nous définissons à nouveau une fonction de graphique, ajoutant certaines options cette fois.

 // ... (code de fonction buildChart, similaire à avant, mais changé en 'horizontalbar' et option de balances ajoutées) ...
Copier après la connexion

Ensuite, nous avons besoin du même élément HTML Canvas pour rendre le graphique:

<canvas id="myChart"></canvas>
Copier après la connexion

Obtenez maintenant des données en temps réel. Voyons ce que l'appel de l'API Forbes revient dans la console:

(... L'exemple des données JSON renvoyé par l'API doit être inséré ici, mais comme l'API ne peut pas être appelée directement, elle est omise ...)

Comme vous pouvez le voir sur les données JSON renvoyées, il y a beaucoup d'informations riches qui peuvent être injectées dans le graphique. Créons donc notre classement!

Avec un code JavaScript simple, nous pouvons demander des données à l'API, choisir et cartographier les valeurs que nous voulons réaliser des variables, et enfin passer dans nos données et rendre le graphique.

 // ... (code de fonction buildChart) ...

var xhttp = nouveau xmlhttprequest ();
xhttp.onreadystateChange = function () {
  if (this.readystate == 4 && this.status == 200) {
    var JSON = JSON.Parse (this.Response);
    // Mapte les balises JSON dans le tableau de valeur var étiquettes = json.map (fonction (e) {
      retour e.name;
    });
    // map les valeurs JSON à la valeur du tableau de valeur var valeurs = json.map (fonction (e) {
      retour (e.realtimeworth / 1000); // diviser par 1000, l'unité est un milliard});
    BuildChart (étiquettes, valeurs, "actifs nets en temps réel"); // passe dans la fonction de données et d'appel}
};
xhttp.open ("get", "https://forbes400.herokuapp.com/api/forbes400?limit=10", false);
xhttp.send ();
Copier après la connexion

(... le résultat du rendu du graphique doit être inséré ici, mais comme il ne peut pas être rendu directement, il est omis ...)

Source de données 3: Google Sheets

Jusqu'à présent, nous avons examiné les données des tables HTML standard et des API pour remplir les graphiques. Mais que se passe-t-il si nous avons déjà une feuille Google avec beaucoup de données? Nous pouvons l'utiliser pour faire des graphiques!

Tout d'abord, il existe des règles pour accéder aux feuilles Google:

  • Google Sheets doit être publié
  • Google Sheets doit être public (c'est-à-dire non réglé sur une visualisation privée)

Tant que ces deux conditions sont remplies, nous pouvons accéder aux feuilles Google au format JSON, ce qui signifie que nous pouvons certainement les attirer dans les graphiques!

Il s'agit d'une feuille Google que j'ai publiée publiquement avec des données fictives. Il contient trois champs de données: ID de machine, date et quantité de produits produits.

Maintenant, si nous regardons l'URL de la table, nous devrons faire attention à tout après la dernière barre oblique:

 <code>https://docs.google.com/spreadsheets/d/1ySHjH6IMN0aKImYcuVHozQ_TvS6Npt4mDxpKDtsFVFg</code>
Copier après la connexion

C'est l'ID de table, et c'est aussi ce que nous devons envoyer des demandes de GET à Google. Pour émettre une demande de GET à JSON, nous insérons la chaîne dans une autre URL:

 <code>https://spreadsheets.google.com/feeds/list/[ID GOES HERE]/od6/public/full?alt=json</code>
Copier après la connexion

Cela nous donnera l'URL suivante:

 <code>https://spreadsheets.google.com/feeds/list/1ySHjH6IMN0aKImYcuVHozQ_TvS6Npt4mDxpKDtsFVFg/od6/public/full?alt=json</code>
Copier après la connexion

Voici la réponse que nous obtenons dans la console:

(... Un échantillon de données JSON renvoyé par l'API Google Sheets doit être inséré ici, mais comme l'API ne peut pas être appelée directement, elle est omise ...)

La partie importante est feed.entry . Il contient des données tabulaires importantes, et lorsque nous y fouillons, cela ressemble à ceci:

(... le fragment de l'objet feed.entry dans l'échantillon de données JSON renvoyé par l'API Google Sheets doit être inséré ici, mettant en évidence gsx$date et gsx$productsproduced , mais comme l'API ne peut pas être appelée directement, elle est omise ...)

Veuillez noter les éléments soulignés en rouge. L'API Google Sheets précède chaque nom de colonne avec gsx$ (par exemple, gsx$date ). C'est exactement ainsi que nous utiliserons ces noms générés de manière unique pour décomposer les données de l'objet. Donc, sachant cela, il est temps d'insérer les données dans un tableau indépendant et de les transmettre dans notre fonction de graphique.

 // ... (code de fonction buildChart, similaire à avant, mais a changé en 'bar' et a ajouté l'option Scales) ...

var xhttp = nouveau xmlhttprequest ();
xhttp.onreadystateChange = function () {
  if (this.readystate == 4 && this.status == 200) {
    var JSON = JSON.Parse (this.Response);
    Console.log (JSON);

    // Mapte les tags JSON à la valeur du tableau var étiquettes = json.feed.entry.map (fonction (e) {
      Retour E.Gsx $ Date. $ T;
    });

    // map les valeurs JSON à la valeur du tableau de valeur var valeurs = json.feed.entry.map (fonction (e) {
      retour par exemple, produits produits produits. $ T;
    });

    BuildChart (étiquettes, valeurs, "données de production");
  }
};
xhttp.open ("get", "https://spreadsheets.google.com/feeds/list/1yshjh6imn0akimycuvhozq_tvs6npt4mdxpkdtsfvfg/od6/public/full?alt=json", false);
xhttp.send ();
Copier après la connexion

(... le résultat du rendu du graphique doit être inséré ici, mais comme il ne peut pas être rendu directement, il est omis ...)

Que allez-vous créer avec les données?

Vous avez peut-être compris qu'il existe plusieurs façons d'obtenir des données pour remplir de beaux graphiques. Tant que nous avons des nombres formatés et une bibliothèque de visualisation des données, nous pouvons avoir des capacités puissantes.

J'espère que maintenant vous pensez aux données que vous pourriez avoir et comment l'insérer dans le graphique! Nous ne couvrons même pas toutes les possibilités ici. Voici quelques ressources supplémentaires que vous pouvez utiliser, et maintenant vous maîtrisez les conseils de fabrication du graphique.

Plus de bibliothèque de graphiques

  • Graphique.js
  • Nvd3 (pour d3.js)
  • amacharts
  • Toile

Plus de lieux de stockage de données

  • Aérinable
  • Notion
  • Trelle

Cette réponse révisée maintient la signification d'origine tout en utilisant différentes structures de formulation et de phrases. Il comprend également des espaces réservés où les images et les résultats du code seraient affichés, reconnaissant les limites de cet environnement textuel. L'image est correctement conservée dans son format d'origine.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

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

Il est sorti! Félicitations à l'équipe Vue pour l'avoir fait, je sais que ce fut un effort massif et une longue période à venir. Tous les nouveaux documents aussi.

Construire une application Ethereum à l'aide de Redwood.js et de la faune Construire une application Ethereum à l'aide de Redwood.js et de la faune Mar 28, 2025 am 09:18 AM

Avec la récente montée du prix du bitcoin sur 20k $ USD, et pour lui, récemment en train de briser 30k, je pensais que cela valait la peine de reprendre une profonde plongeon dans la création d'Ethereum

Pouvez-vous obtenir des valeurs de propriété CSS valides du navigateur? Pouvez-vous obtenir des valeurs de propriété CSS valides du navigateur? Apr 02, 2025 pm 06:17 PM

J'ai eu quelqu'un qui écrivait avec cette question très légitime. Lea vient de bloguer sur la façon dont vous pouvez obtenir les propriétés CSS valides elles-mêmes du navigateur. C'est comme ça.

Cartes empilées avec un positionnement collant et une pincée de sass Cartes empilées avec un positionnement collant et une pincée de sass Apr 03, 2025 am 10:30 AM

L'autre jour, j'ai repéré ce morceau particulièrement charmant sur le site Web de Corey Ginnivan où une collection de cartes se cassent les uns sur les autres pendant que vous faites défiler.

Un peu sur CI / CD Un peu sur CI / CD Apr 02, 2025 pm 06:21 PM

Je dirais que "Site Web" correspond mieux que "Application mobile" mais j'aime ce cadrage de Max Lynch:

Utilisation de Markdown et de la localisation dans l'éditeur de blocs WordPress Utilisation de Markdown et de la localisation dans l'éditeur de blocs WordPress Apr 02, 2025 am 04:27 AM

Si nous devons afficher la documentation à l'utilisateur directement dans l'éditeur WordPress, quelle est la meilleure façon de le faire?

Comparaison des navigateurs pour une conception réactive Comparaison des navigateurs pour une conception réactive Apr 02, 2025 pm 06:25 PM

Il existe un certain nombre de ces applications de bureau où l'objectif montre votre site à différentes dimensions en même temps. Vous pouvez donc, par exemple, écrire

Pourquoi les zones réduites pourpre dans la disposition Flex sont-elles considérées à tort «espace de débordement»? Pourquoi les zones réduites pourpre dans la disposition Flex sont-elles considérées à tort «espace de débordement»? Apr 05, 2025 pm 05:51 PM

Questions sur les zones de slash violet dans les dispositions flexibles Lorsque vous utilisez des dispositions flexibles, vous pouvez rencontrer des phénomènes déroutants, comme dans les outils du développeur (D ...

See all articles