Bahasa Go boleh melakukan visualisasi. Dalam bahasa Go, kami boleh menggunakan perpustakaan dan alatan pihak ketiga untuk merealisasikan visualisasi data dengan cepat Sebagai bahasa pengaturcaraan yang cekap dan berprestasi tinggi, bahasa Go boleh membantu kami melaksanakan visualisasi data dengan mudah.
Persekitaran pengendalian tutorial ini: sistem Windows 10, versi go1.20.1, komputer Dell G3.
Sebelum memperkenalkan penggunaan bahasa Go untuk visualisasi data, kita perlu terlebih dahulu memahami ciri-ciri bahasa Go. Berikut ialah ciri utama bahasa Go.
Prestasi serentak tinggi
Bahasa Go ialah bahasa pengaturcaraan berdasarkan operasi serentak Ia mencapai prestasi serentak tinggi melalui mekanisme seperti Goroutine, Channel dan Mutex. Ini memudahkan untuk menulis program serentak yang cekap.
Perpustakaan standard yang kaya
Bahasa Go menyediakan perpustakaan standard yang sangat kaya, meliputi pengaturcaraan rangkaian, I/O, pemprosesan fail, dsb. Dengan sokongan perpustakaan standard ini, kami boleh membangunkan program dengan mudah.
Bahasa ditaip statik
Bahasa Go ialah bahasa pengaturcaraan ditaip secara statik. Penaipan statik boleh menyemak jenis kod terlebih dahulu dan mengelakkan beberapa ralat jenis.
Sokongan kompilasi silang
Bahasa Go menyokong kompilasi silang, yang membolehkan kami menyusun atur cara dengan mudah ke dalam fail boleh laku untuk platform yang berbeza. Ini membolehkan pembangunan dan penggunaan untuk platform yang berbeza.
Gunakan bahasa Go untuk visualisasi data
Dalam bahasa Go, kami boleh menggunakan perpustakaan dan alatan pihak ketiga untuk mencapai visualisasi data dengan cepat.
Langkah untuk menggunakan bahasa Go untuk visualisasi data
Langkah 1: Pasang perpustakaan dan alatan yang diperlukan
Sebelum kita mula, kita perlu memasang beberapa perpustakaan dan alatan yang diperlukan. Berikut ialah perpustakaan dan alatan yang perlu dipasang:
GoChart: perpustakaan carta dalam bahasa Go. Digunakan untuk menjana carta. Gin: Rangka kerja web untuk bahasa Go. Digunakan untuk membina pelayan web dan mengendalikan permintaan HTTP. Gorm: perpustakaan ORM untuk bahasa Go. Digunakan untuk mengendalikan pangkalan data.
Anda boleh memasang perpustakaan dan alatan ini menggunakan arahan berikut:
go get -u github.com/wcharczuk/go-chart
go get -u github.com/gin-gonic/gin
go get -u github .com/jinzhu/gorm
Langkah 2: Sediakan data
Sebelum melakukan visualisasi data, kita perlu menyediakan data terlebih dahulu. Berikut ialah contoh fail CSV:
日期,收入,支出 2020-01-01,10000,8000 2020-01-02,12000,9000 2020-01-03,11000,10000 2020-01-04,13000,8000 2020-01-05,14000,12000
Kita boleh menggunakan Gorm untuk membaca fail CSV ini ke dalam pangkalan data. Berikut ialah kod untuk contoh:
package main import ( "bufio" "encoding/csv" "io" "log" "os" "time" "github.com/jinzhu/gorm" _ "github.com/jinzhu/gorm/dialects/sqlite" ) type Record struct { gorm.Model Date time.Time `gorm:"not null"` Income int `gorm:"not null"` Expense int `gorm:"not null"` } func main() { db, err := gorm.Open("sqlite3", "test.db") if err != nil { log.Fatal(err) } defer db.Close() db.AutoMigrate(&Record{}) file, err := os.Open("data.csv") if err != nil { log.Fatal(err) } defer file.Close() reader := csv.NewReader(bufio.NewReader(file)) for { line, err := reader.Read() if err == io.EOF { break } else if err != nil { log.Fatal(err) } date, err := time.Parse("2006-01-02", line[0]) if err != nil { log.Fatal(err) } income, err := strconv.Atoi(line[1]) if err != nil { log.Fatal(err) } expense, err := strconv.Atoi(line[2]) if err != nil { log.Fatal(err) } record := Record{ Date: date, Income: income, Expense: expense, } db.Create(&record) } }
Langkah 3: Jana carta
Dengan data, kita boleh mula menjana carta. Dalam bahasa Go, kita boleh menggunakan GoChart untuk menjana carta. Berikut ialah contoh kod untuk menjana carta baris:
package main import ( "net/http" "strconv" "github.com/gin-gonic/gin" "github.com/wcharczuk/go-chart" "github.com/jinzhu/gorm" _ "github.com/jinzhu/gorm/dialects/sqlite" ) func main() { db, err := gorm.Open("sqlite3", "test.db") if err != nil { log.Fatal(err) } defer db.Close() r := gin.Default() r.GET("/", func(c *gin.Context) { var records []Record db.Find(&records) var xvalues []time.Time var yvalues1 []float64 var yvalues2 []float64 for _, record := range records { xvalues = append(xvalues, record.Date) yvalues1 = append(yvalues1, float64(record.Income)) yvalues2 = append(yvalues2, float64(record.Expense)) } graph := chart.Chart{ Title: "收入支出", XAxis: chart.XAxis{ Name: "日期", Ticks: []chart.Tick{ {Value: chart.TimeToFloat64(xvalues[0]), Label: xvalues[0].Format("2006-01-02")}, {Value: chart.TimeToFloat64(xvalues[len(xvalues)-1]), Label: xvalues[len(xvalues)-1].Format("2006-01-02")}, }, }, YAxis: chart.YAxis{ Name: "金额", }, Series: []chart.Series{ chart.TimeSeries{ Name: "收入", XValues: xvalues, YValues: yvalues1, }, chart.TimeSeries{ Name: "支出", XValues: xvalues, YValues: yvalues2, }, }, } buffer := bytes.NewBuffer([]byte{}) graph.Render(chart.PNG, buffer) c.Data(http.StatusOK, "image/png", buffer.Bytes()) }) r.Run(":8080") }
Langkah 4: Mulakan pelayan web
Dengan carta, kita boleh memulakan pelayan web. Dalam bahasa Go, kita boleh menggunakan Gin untuk memulakan pelayan web. Berikut ialah contoh kod:
func main() { db, err := gorm.Open("sqlite3", "test.db") if err != nil { log.Fatal(err) } defer db.Close() r := gin.Default() r.GET("/", func(c *gin.Context) { var records []Record db.Find(&records) // 生成图表的代码 // ... c.Data(http.StatusOK, "image/png", buffer.Bytes()) }) r.Run(":8080") }
Sekarang, kita boleh melawati http://localhost:8080 dalam penyemak imbas untuk melihat carta baris yang dijana.
Kesimpulan
Bahasa Go, sebagai bahasa pengaturcaraan berprestasi tinggi, boleh membantu kami melakukan visualisasi data dengan mudah. Dalam artikel ini, kami memperkenalkan cara menggunakan bahasa Go untuk menjana carta dengan cepat dan menggunakan Gin untuk memulakan pelayan web untuk memaparkan carta ini. Jika anda berminat dengan visualisasi data, maka menggunakan bahasa Go untuk visualisasi data ialah pilihan yang sangat baik.
Atas ialah kandungan terperinci Bolehkah bahasa Go digunakan untuk visualisasi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!