0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GO言語のgo-echartsパッケージを使って時系列チャートを出力する方法

Last updated at Posted at 2024-09-16

はじめに

GO言語で開発したプログラムから、ちょっとしたチャート(グラフ)を出力する時にgo-echartsというパッケージが便利です。

しかし、サンプルプログラムが少ないのでグラフを出力するためのデータ構造がわかりにくいです。そこで、誰かのためになればと思って解説の記事を書いてみました。

go-echartsについて

go-echartsは、JavaScriptのチャートライブラリApache ECharts

を使ったインターラクティブなチャートを含むHTMLファイルをGO言語から出力するものです。このライブラリのサンプル

にあるようなチャートの一部を出力できます。チャートを出力するための設定やデータは、JavaScript版と同じように考えればよいと思います。

go-echartsのサンプルは、

にありますが、自分でビルドして起動しないと表示が見られませんし、解説もありません。

時系列チャートの出力

時系列チャートは、

package main

import (
	"math/rand"
	"os"
	"time"

	"github.com/go-echarts/go-echarts/v2/charts"
	"github.com/go-echarts/go-echarts/v2/opts"
)

// 時系列のランダムデータ作成
func generateTimeLineItems() []opts.LineData {
	items := []opts.LineData{}
	t := time.Now().UnixMilli()
	for i := 0; i < 100; i++ {
		items = append(items, opts.LineData{Value: []interface{}{t + int64(i*1000), rand.Float64()}})
	}
	return items
}

func main() {
	line := charts.NewLine()
	line.SetGlobalOptions(
		charts.WithXAxisOpts(opts.XAxis{Name: "time", Type: "time"}, 0),
		charts.WithTitleOpts(opts.Title{Title: "Time line example", Subtitle: "This is the subtitle."}),
	)

	line.SetXAxis(nil).AddSeries("Time Chart", generateTimeLineItems())

	f, _ := os.Create("time_line.html")
	line.Render(f)
}

のプログラムで出力できます。結果は、

image.png

のようになります。

時系列チャートを出力する時のポイントは、3つです。

X軸を種別を"time"にする

charts.WithXAxisOpts(opts.XAxis{Name: "time", Type: "time"}, 0),

X軸のデータをnilにする

line.SetXAxis(nil)

シリーズのデータを2次元のスライスにする

[mSecのUNIXタイム,Y軸の値]....

t := time.Now().UnixMilli()
for i := 0; i < 100; i++ {
		items = append(items, opts.LineData{Value: []interface{}{t + int64(i*1000), rand.Float64()}})
}

ということです。

Lineだけでなく他の種類のチャート(グラフ)にも応用できます。

この解説を書いた理由

この記事は、

を開発している時に調べたことを元にしています。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?