본문 바로가기
Programming/Go

go-chart 그래프 여러 개 출력하기

by 코딩여걸 2022. 9. 27.
728x90

저번 포스팅에서 go-chart를 github에서 import 해서 그래프를 출력하는 방법에 대해 작성했었다.

output.png

 

이번에는 그래프를 여러 개 출력하는 방법을 알아보자~!

 

이 글을 처음 보시는 분들은 저번 포스팅을 한번 보고 오시는 걸 추천한다!!

https://java-coding.tistory.com/65

 

go-chart 사용해서 그래프 그리기

go언어로 그래프를 그려야 해서 그래프를 그리는 라이브러리가 있나 찾아보다가 go-chart 라이브러리를 발견했다. https://github.com/vicanso/go-charts GitHub - vicanso/go-charts: A charts library for Golan..

java-coding.tistory.com


전체 코드 (main.go)

package main

import (
	"github.com/wcharczuk/go-chart/v2"
	"log"
	"os"
)

var (
	filename    = "output.png"
	numElements = 20
)

func main() {
	x1Values := []float64{0.0, 1.0, 2.0, 3.0, 4.0, 5.0}
	y1Values := []float64{1.0, 1.0, 2.0, 3.0, 5.0, 8.0}

	x2Values := []float64{0.0, 1.0, 2.0, 3.0, 4.0, 5.0}
	y2Values := []float64{5.0, 4.0, 7.0, 2.0, 1.0, 3.0}

	graph := chart.Chart{
		Title: "Sample Chart",
		Series: []chart.Series{
			chart.ContinuousSeries{
				XValues: x1Values,
				YValues: y1Values,
			},
			chart.ContinuousSeries{
				XValues: x2Values,
				YValues: y2Values,
			},
		},
	}

	filename := "output2.png"
	f, err := os.Create(filename)
	if err != nil {
		log.Printf("Failed to create file: %v: %v", filename, err)
		return
	}

	defer f.Close()

	err = graph.Render(chart.PNG, f)
	if err != nil {
		log.Printf("Unable to render graph: %v", err)
		return
	}
}

 

저번 코드에서 살짝 변형되었다.

 

	x1Values := []float64{0.0, 1.0, 2.0, 3.0, 4.0, 5.0}
	y1Values := []float64{1.0, 1.0, 2.0, 3.0, 5.0, 8.0}

	x2Values := []float64{0.0, 1.0, 2.0, 3.0, 4.0, 5.0}
	y2Values := []float64{5.0, 4.0, 7.0, 2.0, 1.0, 3.0}

xValues, yValues의 배열 값들은 원하는 대로 정해주면 된다.

 

		Series: []chart.Series{
			chart.ContinuousSeries{
				XValues: x1Values,
				YValues: y1Values,
			},
			chart.ContinuousSeries{
				XValues: x2Values,
				YValues: y2Values,
			},
		},

이 두 개로 그래프 수를 더 늘리면 된다!

 

출력 결과

output.png

 

728x90

댓글