echartTest.go 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. package main
  2. import (
  3. "fwh-toolbox-server/utils/echart"
  4. "math/rand"
  5. "os"
  6. "time"
  7. "github.com/go-echarts/go-echarts/v2/opts"
  8. )
  9. // 生成时间-数据序列
  10. func generateLineItems() []opts.LineData {
  11. items := make([]opts.LineData, 0)
  12. now := time.Now()
  13. for i := 0; i < 10; i++ {
  14. // 随机值范围 -300 ~ +300
  15. value := rand.Intn(600) - 300
  16. items = append(items, opts.LineData{
  17. Value: []interface{}{
  18. now.Add(time.Duration(i) * time.Hour).Format(time.DateTime),
  19. value,
  20. },
  21. })
  22. }
  23. return items
  24. }
  25. func main() {
  26. var data []echart.LineChartData = []echart.LineChartData{}
  27. data = append(data, echart.LineChartData{
  28. Legend: "A",
  29. Data: generateLineItems(),
  30. })
  31. data = append(data, echart.LineChartData{
  32. Legend: "B",
  33. Data: generateLineItems(),
  34. })
  35. data = append(data, echart.LineChartData{
  36. Legend: "C",
  37. Data: generateLineItems(),
  38. })
  39. data = append(data, echart.LineChartData{
  40. Legend: "D",
  41. Data: generateLineItems(),
  42. })
  43. lineOpt := echart.LineChartOpt{
  44. Global: echart.ChartOpt{
  45. Title: "功率流图",
  46. },
  47. Smooth: true,
  48. }
  49. line := echart.LineSmoothArea(lineOpt, data)
  50. f, _ := os.Create("line.html")
  51. defer f.Close()
  52. line.Render(f)
  53. }