Golang으로 차트 그리기
입문
고랑으로 도표를 그릴 때 걸려 넘어져서 비망록으로 남겼어요.
보아하니
gonum plot
편할 것 같다.하지만 구 기사라면
go get
위치를 참조한 것 같다 google code.현재
github
로 이동하여 다음 작업을 수행합니다.go get gonum.org/v1/plot/...
두 데이터 그룹
(8.0, 2.0)
과(3.0, 6.0)
를 축으로 각각 100개의class1,class2를 생성하고 고스 분포에 따라 학습 데이터plot
를 생성한다.다음은 코드입니다. 그림의 생성부터
plot
까지 주석문을 참조하십시오.package main
import (
"image/color"![plot.png](https://qiita-image-store.s3.amazonaws.com/0/123283/3a191005-7612-21c4-88ef-aa6b3f3c5e29.png)
"math/rand"
"time"
"gonum.org/v1/plot"
"gonum.org/v1/plot/plotter"
"gonum.org/v1/plot/vg"
)
func main() {
// 図の生成
p, err := plot.New()
if err != nil {
panic(err)
}
//label
p.Title.Text = "Points Example"
p.X.Label.Text = "X"
p.Y.Label.Text = "Y"
// 補助線
p.Add(plotter.NewGrid())
//クラス1
x1, y1 := 8.0, 2.0
//クラス2
x2, y2 := 3.0, 6.0
//各クラスのサンプル
n := 200
// 散布図の作成
plot1, err := plotter.NewScatter(randomPoints(n, x1, y1))
if err != nil {
panic(err)
}
plot2, err := plotter.NewScatter(randomPoints(n, x2, y2))
if err != nil {
panic(err)
}
//色を指定する.
plot1.GlyphStyle.Color = color.RGBA{R: 255, B: 128, A: 55}
plot2.GlyphStyle.Color = color.RGBA{R: 155, B: 128, A: 255}
//plot1,plot2をplot
p.Add(plot1)
p.Add(plot2)
//label
p.Legend.Add("class1", plot1)
p.Legend.Add("class2", plot2)
// 座標範囲
p.X.Min = 0
p.X.Max = 10
p.Y.Min = 0
p.Y.Max = 10
// plot.pngに保存
if err := p.Save(6*vg.Inch, 6*vg.Inch, "plot.png"); err != nil {
panic(err)
}
}
//ガウス分布
func random(axis float64) float64 {
//分散
dispersion := 1.0
rand.Seed(time.Now().UnixNano())
return rand.NormFloat64()*dispersion + axis
}
//学習データの生成
func randomPoints(n int, x, y float64) plotter.XYs {
pts := make(plotter.XYs, n)
for i := range pts {
pts[i].X = random(x)
pts[i].Y = random(y)
}
return pts
}
결과
실제로plot를 진행할 수 있다.
참고 문헌
Go에서 차트를 수정하는 패키지를 시도했습니다.
gonum
Reference
이 문제에 관하여(Golang으로 차트 그리기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yutsuki/items/7de97e09289a915f86b9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)