edo1z blog

プログラミングなどに関するブログです

Go - 2次関数のPNG画像作成

このライブラリをつかったら簡単にできる。 wcharczuk / go-chart

package main

import (
    "bytes"
    "fmt"
    "github.com/wcharczuk/go-chart"
    "io"
    "os"
)

func main() {
    var x []float64
    var y []float64
    for i := 0.0; i < 100; i++ {
        x = append(x, i-50.0)
        y = append(y, (i-50.0)*(i-50.0))
    }
    graph := chart.Chart{
        Series: []chart.Series{
            chart.ContinuousSeries{
                XValues: x,
                YValues: y,
            },
        },
    }
    buffer := bytes.NewBuffer([]byte{})
    err := graph.Render(chart.PNG, buffer)
    if err != nil {
        fmt.Println("render error")
    }
    out, err := os.Create("./data/graph.png")
    if err != nil {
        fmt.Println("create file error")
    }
    defer out.Close()
    io.Copy(out, buffer)
}