Maison >développement back-end >Golang >Bonnes pratiques pour créer des visualisations de données avec Go et Dimple.js
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 :
É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!