Maison >développement back-end >Golang >Bonnes pratiques pour créer des visualisations de données avec Go et Dimple.js

Bonnes pratiques pour créer des visualisations de données avec Go et Dimple.js

WBOY
WBOYoriginal
2023-06-17 11:52:511684parcourir

Avec le volume et la complexité croissants des données, la visualisation des données est devenue un sujet brûlant dans le domaine de la visualisation de l'information. Les gens ont découvert que la visualisation des données permet de comprendre rapidement les données, d'identifier des modèles et des tendances et d'en tirer de nouvelles informations. Dans ce processus, l'utilisation de langages de programmation et de bibliothèques JavaScript est très importante, et Go et Dimple.js sont actuellement des outils très populaires. Vous trouverez ci-dessous une bonne pratique pour créer des visualisations de données à l'aide de Go et Dimple.js.

Première étape : Préparation des données

Les données sont la base de la visualisation des données. Avant de démarrer tout projet de visualisation, vous devez d'abord préparer vos données. Les données peuvent provenir de diverses sources telles que des fichiers CSV, l'API JSON ou des bases de données. Dans cet exemple, nous utiliserons un fichier CSV.

Étape 2 : Importer des données à l'aide de Go

Go est un langage de programmation fortement typé qui nous aide à introduire et à traiter des données. Nous utiliserons le package "encoding/csv" pour convertir les données du fichier CSV en valeurs dans une structure Go.

Par exemple, disons que nous avons un fichier appelé « sales.csv » qui contient les données suivantes :

Product,Sales
Product A,1000
Product B,1200
Product C,1500
Product D,2500

Nous pouvons utiliser le code Go suivant pour lire les données :

package main

import (
    "encoding/csv"
    "os"
)

type Data struct {
    Product string
    Sales   int
}

func main() {
    // Open CSV file
    file, err := os.Open("sales.csv")
    if err != nil {
        panic(err)
    }

    // Read CSV data
    reader := csv.NewReader(file)
    records, err := reader.ReadAll()
    if err != nil {
        panic(err)
    }

    // Convert data to struct
    data := make([]Data, 0)
    for _, record := range records[1:] {
        d := Data{
            Product: record[0],
            Sales:   record[1],
        }
        data = append(data, d)
    }
}

Dans cet exemple, nous définissons un nom It est la structure des « Données » et contient deux champs : produit et ventes. Nous utilisons ensuite le package "encoding/csv" pour lire les données du fichier CSV dans la variable "records". Ensuite, nous parcourons la liste des enregistrements et créons une nouvelle liste de « données » avec la même structure.

Quelques notes :

  • Nous utiliserons la fonction "make" pour allouer le nombre et la capacité des tranches de données au moment de la déclaration. Il s'agit d'une astuce d'optimisation pour éviter de réallouer de la mémoire.
  • N'oubliez pas de sauter la première ligne du fichier CSV car il contient généralement des en-têtes et non des données.

Étape 3 : Créez des graphiques à l'aide de Dimple.js

Dimple.js est une bibliothèque JavaScript open source permettant de créer des graphiques SVG interactifs et réactifs. Il vous permet d'utiliser différents types de graphiques tels que des graphiques linéaires, des histogrammes et des nuages ​​de points. Voici un exemple d'utilisation de Dimple.js pour créer un graphique à barres qui montre les ventes de chaque produit :

// Create chart
var svg = dimple.newSvg("#chart", 800, 600);
var chart = new dimple.chart(svg, data);

// Set x and y axes
var x = chart.addCategoryAxis("x", "Product");
var y = chart.addMeasureAxis("y", "Sales");

// Add bars to chart
chart.addSeries(null, dimple.plot.bar);

// Draw chart
chart.draw();

Dans cet exemple, nous créons d'abord un élément SVG, en définissant sa largeur et sa hauteur. Ensuite, nous créons un nouvel objet graphique, en passant la liste de données en paramètre.

Ensuite, nous créons un axe de catégorie "x" en utilisant la méthode "addCategoryAxis" et le champ "Product". On crée ensuite un axe de mesure "y" à l'aide de la méthode "addMeasureAxis" et du champ "Sales".

Ensuite, nous ajoutons la nouvelle série au graphique en utilisant la méthode "addSeries". Le premier paramètre est nul, ce qui signifie que nous n’avons qu’une seule série. Le deuxième paramètre est le type de tracé, "dimple.plot.bar" représente un graphique à barres.

Enfin, nous appelons la méthode "draw" pour afficher le graphique.

Étape 4 : Démarrez le serveur Web

Enfin, nous devons intégrer Go au serveur Web et présenter les données et les graphiques à l'utilisateur. Nous pouvons créer un serveur Web en utilisant la bibliothèque standard « net/http », restituer du HTML dynamique en utilisant « html/template » et servir des fichiers statiques en utilisant « http/fileserver ».

Voici un exemple simple :

package main

import (
    "encoding/csv"
    "html/template"
    "net/http"
    "os"

    "github.com/zenazn/goji"
    "github.com/zenazn/goji/web"
)

type Data struct {
    Product string
    Sales   int
}

func main() {
    // Open CSV file
    file, err := os.Open("sales.csv")
    if err != nil {
        panic(err)
    }

    // Read CSV data
    reader := csv.NewReader(file)
    records, err := reader.ReadAll()
    if err != nil {
        panic(err)
    }

    // Convert data to struct
    data := make([]Data, 0)
    for _, record := range records[1:] {
        d := Data{
            Product: record[0],
            Sales:   record[1],
        }
        data = append(data, d)
    }

    // Serve static files
    static := web.New()
    static.Get("/static/*", http.StripPrefix("/static/",
        http.FileServer(http.Dir("static"))))

    // Render index page
    template := template.Must(template.ParseFiles("templates/index.html"))
    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        template.Execute(w, data)
    })

    // Start server
    goji.Serve()
}

Dans cet exemple, nous ouvrons d'abord le fichier CSV en appelant "os.Open". Ensuite, nous convertissons les données en structure en utilisant le même code qu'à la deuxième étape.

Ensuite, nous créons le serveur web à l'aide du package "github.com/zenazn/goji". Nous enregistrons un handle pour le répertoire de fichiers statiques "/static" en utilisant la méthode "Get" de l'objet Router nouvellement créé. Ensuite, nous utilisons le package "html/template" pour restituer le HTML dynamique de la page d'accueil, en transmettant les données au modèle.

Enfin, nous démarrons le serveur en utilisant la méthode "goji.Serve".

Résumé

Avec la puissante combinaison de Go et Dimple.js, nous pouvons facilement traiter les données et créer des graphiques interactifs. Avec les bons outils et les meilleures pratiques, nous pouvons maximiser l’efficacité de nos données visuelles et en tirer de nouvelles informations et connaissances.

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:
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