powerFlowEchartTest.go 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  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 generateSocItems() []opts.LineData {
  26. items := make([]opts.LineData, 0)
  27. now := time.Now()
  28. for i := 0; i < 10; i++ {
  29. // 随机值范围 0 ~ 100
  30. value := rand.Intn(100)
  31. items = append(items, opts.LineData{
  32. Value: []interface{}{
  33. now.Add(time.Duration(i) * time.Hour).Format(time.DateTime),
  34. value,
  35. },
  36. })
  37. }
  38. return items
  39. }
  40. func main() {
  41. var powerFlowData []echart.PowerFlowChartData = []echart.PowerFlowChartData{}
  42. powerFlowData = append(powerFlowData, echart.PowerFlowChartData{
  43. Legend: "A",
  44. Data: generateLineItems(),
  45. })
  46. powerFlowData = append(powerFlowData, echart.PowerFlowChartData{
  47. Legend: "B",
  48. Data: generateLineItems(),
  49. })
  50. powerFlowData = append(powerFlowData, echart.PowerFlowChartData{
  51. Legend: "C",
  52. Data: generateLineItems(),
  53. })
  54. powerFlowData = append(powerFlowData, echart.PowerFlowChartData{
  55. Legend: "D",
  56. Data: generateLineItems(),
  57. })
  58. var socData echart.SocChartData = echart.SocChartData{
  59. Data: generateSocItems(),
  60. }
  61. lineOpt := echart.LineChartOpt{
  62. Global: echart.ChartOpt{
  63. Title: "功率流图",
  64. },
  65. }
  66. line := echart.CreatePowerFlowChart(lineOpt, powerFlowData, socData)
  67. f, _ := os.Create("line.html")
  68. defer f.Close()
  69. line.Render(f)
  70. }