Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk menggunakan bahasa Go untuk visualisasi data?
Dengan perkembangan pesat analisis data dan kecerdasan buatan, visualisasi data telah menjadi alat yang semakin penting. Visualisasi data bukan sahaja membantu orang memahami data dengan lebih intuitif, tetapi juga membantu orang ramai menemui maklumat dan corak yang tersembunyi dalam data dengan lebih baik. Bahasa Go juga merupakan alat yang sangat baik dalam hal ini. Sebagai bahasa pengaturcaraan berprestasi tinggi, bahasa Go mempunyai banyak ciri. Artikel ini akan memperkenalkan cara menggunakan bahasa Go untuk visualisasi data.
Sebelum memperkenalkan penggunaan bahasa Go untuk visualisasi data, kita perlu terlebih dahulu memahami ciri-ciri bahasa Go. Berikut ialah ciri utama bahasa Go.
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.
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 Go ialah bahasa pengaturcaraan ditaip secara statik. Penaipan statik boleh menyemak jenis kod terlebih dahulu dan mengelakkan beberapa ralat jenis.
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.
Dalam bahasa Go, kami boleh menggunakan perpustakaan dan alatan pihak ketiga untuk melaksanakan visualisasi data dengan cepat. Berikut ialah langkah untuk visualisasi data menggunakan bahasa Go.
Sebelum kita mula, kita perlu memasang beberapa perpustakaan dan alatan yang diperlukan. Berikut ialah perpustakaan dan alatan yang perlu dipasang:
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
Sebelum melakukan visualisasi data, kita perlu menyediakan data 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) } }
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") }
Dengan carta di tangan, 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.
Sebagai bahasa pengaturcaraan berprestasi tinggi, bahasa Go 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, menggunakan bahasa Go untuk visualisasi data ialah pilihan yang sangat baik.
Atas ialah kandungan terperinci Bagaimana untuk menggunakan bahasa Go untuk visualisasi data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!