728x90
go언어로 그래프를 그려야 해서 그래프를 그리는 라이브러리가 있나 찾아보다가 go-chart 라이브러리를 발견했다.
https://github.com/vicanso/go-charts
이제 이걸 사용해서 그래프를 그려보려 했다.
어떻게 만들어야 할지 모르겠어서 youtubu를 찾아보다가 이 동영상을 발견했다.
https://www.youtube.com/watch?v=VQeceaFif4c
동영상을 보면서 따라 해 봤는데 뭔가가 다른 것 같았다.
일단 다 따라서 쳐 보고 새 프로젝트를 만들어서 동영상을 참고하여 다시 만들어봤다!
먼저 코드를 작성하기 전에 go-chart library를 import 해보자!
Terminal에 밑에 코드를 써준다.
> go get -u github.com/vicanso/go-charts
> go get -u github.com/vicanso/go-charts/v2
그러면 이런 식으로 나올 것이다.
전체 코드 (main.go)
package main
import (
"github.com/wcharczuk/go-chart/v2"
"log"
"os"
)
func main() {
xValues := []float64{5.0, 1.0, 2.0, 3.0, 4.0, 5.0}
yValues := []float64{1.0, 1.0, 2.0, 3.0, 5.0, 8.0}
graph := chart.Chart{
Series: []chart.Series{
chart.ContinuousSeries{
XValues: xValues,
YValues: yValues,
},
},
}
filename := "output.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
}
}
🫧 전체 코드 살짝 다른 방법으로 쓰는 법
더보기
package main
import (
"github.com/wcharczuk/go-chart/v2"
"log"
"os"
)
func main() {
graph := chart.Chart{
Series: []chart.Series{
chart.ContinuousSeries{
XValues: []float64{1.0, 2.0, 3.0, 4.0},
YValues: []float64{1.0, 2.0, 3.0, 4.0},
},
},
}
filename := "output.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
}
}
출력 결과
전체 코드를 작성 후에 터미널에서 실행을 시키면
> go run main.go
이렇게 그래프가 잘 출력되는 것을 볼 수 있다.
🚨 실습하면서 주의할 점!
코드를 작성하면서 작은 실수로 오류가 났다.
이 부분에서 xValues: xValues, yValues: yValues가 아니라 XValues: xValues, YValues: yValues로 해야 한다.
이런 작은 오타 때문에 힘들게 오류를 찾는 시간을 절약했으면 해서 남긴다~!
💎 느낀 점
- 동영상과 문법상 좀 다른 부분도 있는데 영상을 보고 그대로 따라 하는 것만이 아닌 내 코드 혹은 실행이 잘 되는 코드로 내가 찾아서 출력했다는 것이 뿌듯했다 ㅎㅎ 다른 그래프도 자유롭게 만들 수 있게 많이 연습하고 포스팅할 것이다
728x90
'Programming > Go' 카테고리의 다른 글
go-chart 그래프 여러 개 출력 시 변하는 색상 확인하기 (0) | 2022.09.27 |
---|---|
go-chart 그래프 여러 개 출력하기 (0) | 2022.09.27 |
Go(Golang) 학습할 때 유용한 사이트 (0) | 2022.08.22 |
Go(Golang)의 fmt.Errorf() (0) | 2022.08.19 |
[FPDF] 한글 처리 (0) | 2022.08.09 |
댓글