Rumah > Artikel > pembangunan bahagian belakang > Amalan terbaik untuk membina visualisasi data dengan Go dan Dimple.js
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:
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!