Rumah >pembangunan bahagian belakang >Golang >Amalan terbaik untuk membina visualisasi data dengan Go dan Dimple.js

Amalan terbaik untuk membina visualisasi data dengan Go dan Dimple.js

WBOY
WBOYasal
2023-06-17 11:52:511684semak imbas

Dengan peningkatan volum dan kerumitan data, visualisasi data telah menjadi topik hangat dalam bidang visualisasi maklumat. Orang ramai mendapati bahawa memvisualisasikan data membantu memahami data dengan cepat, mengenal pasti corak dan arah aliran serta memperoleh cerapan dan cerapan baharu daripada data tersebut. Dalam proses ini, penggunaan bahasa pengaturcaraan dan perpustakaan JavaScript adalah sangat penting, dan Go dan Dimple.js pada masa ini adalah alat yang sangat popular. Di bawah ialah amalan terbaik untuk membina visualisasi data menggunakan Go dan Dimple.js.

Langkah Pertama: Penyediaan Data

Data ialah asas visualisasi data. Sebelum memulakan sebarang projek visualisasi, anda perlu menyediakan data anda terlebih dahulu. Data boleh datang daripada pelbagai sumber seperti fail CSV, API JSON atau pangkalan data. Dalam contoh ini kami akan menggunakan fail CSV.

Langkah 2: Gunakan Go untuk mengimport data

Go ialah bahasa pengaturcaraan ditaip kuat yang membantu kami memperkenalkan dan memproses data. Kami akan menggunakan pakej "pengekodan/csv" untuk menukar data dalam fail CSV kepada nilai dalam struktur Go.

Sebagai contoh, katakan kita mempunyai fail yang dipanggil “sales.csv” yang mengandungi data berikut:

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

Kita boleh menggunakan kod Go berikut untuk membaca data:

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)
    }
}

Dalam contoh ini, kami mentakrifkan struktur yang dipanggil "Data" dengan dua medan: Produk dan Jualan. Kami kemudian menggunakan pakej "pengekodan/csv" untuk membaca data daripada fail CSV ke dalam pembolehubah "rekod". Seterusnya, kami mengulangi senarai rekod dan mencipta senarai "data" baharu dengan struktur yang sama.

Beberapa nota:

  • Kami akan menggunakan fungsi "buat" untuk memperuntukkan bilangan dan kapasiti kepingan data pada masa pengisytiharan. Ini adalah helah pengoptimuman untuk mengelakkan pengagihan semula memori.
  • Jangan lupa untuk melangkau baris pertama fail CSV kerana ia biasanya mengandungi pengepala dan bukan data.

Langkah 3: Buat carta menggunakan Dimple.js

Dimple.js ialah perpustakaan JavaScript sumber terbuka untuk mencipta carta SVG yang interaktif dan responsif. Ia membolehkan anda menggunakan pelbagai jenis carta seperti carta garisan, histogram dan plot serakan. Berikut ialah contoh penggunaan Dimple.js untuk mencipta carta bar yang memaparkan jualan setiap produk:

// 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();

Dalam contoh ini, kami mula-mula mencipta elemen SVG, menetapkan lebar dan ketinggiannya. Kemudian, kami mencipta objek carta baharu, melepasi senarai data sebagai parameter.

Seterusnya, kami mencipta paksi kategori "x" menggunakan kaedah "addCategoryAxis" dan medan "Produk". Kami kemudian membuat paksi ukuran "y" menggunakan kaedah "addMeasureAxis" dan medan "Jualan".

Kami kemudian menambah siri baharu pada carta menggunakan kaedah "addSeries". Parameter pertama adalah nol, yang bermaksud kami hanya mempunyai satu siri. Parameter kedua ialah jenis plot, "dimple.plot.bar" mewakili carta bar.

Akhir sekali, kami memanggil kaedah "lukisan" untuk memaparkan carta.

Langkah 4: Mulakan pelayan web

Akhir sekali, kita perlu menyepadukan Go dengan pelayan web dan membentangkan data serta carta kepada pengguna. Kami boleh mencipta pelayan web menggunakan perpustakaan standard "net/http", menghasilkan HTML dinamik menggunakan "html/template", dan menyediakan fail statik menggunakan "http/fileserver".

Berikut ialah contoh mudah:

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()
}

Dalam contoh ini, kami mula-mula membuka fail CSV dengan memanggil "os.Open". Seterusnya, kami menukar data ke dalam struktur menggunakan kod yang sama seperti dalam langkah dua.

Kemudian, kami mencipta pelayan web menggunakan pakej "github.com/zenazn/goji". Kami mendaftarkan pemegang untuk direktori fail statik "/statik" menggunakan kaedah "Dapatkan" objek Penghala yang baru dibuat. Seterusnya, kami menggunakan pakej "html/template" untuk memaparkan HTML dinamik halaman utama, menghantar data ke templat.

Akhir sekali, kami memulakan pelayan menggunakan kaedah "goji.Serve".

Ringkasan

Dengan gabungan hebat Go dan Dimple.js, kami boleh memproses data dengan mudah dan mencipta carta interaktif. Dengan alatan yang betul dan amalan terbaik, kami boleh memaksimumkan keberkesanan data visual kami dan memperoleh cerapan dan cerapan baharu daripadanya.

Atas ialah kandungan terperinci Amalan terbaik untuk membina visualisasi data dengan Go dan Dimple.js. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn