[go] CSV 파일의 데이터 시각화

이번 포스트에서는 Go 언어를 사용하여 CSV(Comma Separated Values) 파일에서 데이터를 읽고 시각화하는 방법에 대해 알아보겠습니다. CSV 파일은 데이터를 효율적으로 저장하고 전송하기 위한 형식으로 자주 사용됩니다. 특히 데이터 분석이나 시각화 작업에 유용합니다.

CSV 파일 읽기

가장 먼저 Go 언어에서 CSV 파일을 읽는 방법에 대해 알아봅시다. encoding/csv 패키지를 사용하여 CSV 파일을 읽고 데이터를 구조체나 2차원 배열 등으로 저장할 수 있습니다. 아래는 CSV 파일을 읽어 구조체에 저장하는 간단한 예제 코드입니다.

package main

import (
	"encoding/csv"
	"fmt"
	"os"
	"log"
)

type Data struct {
	Name string
	Age  int
	City string
}

func main() {
	file, err := os.Open("data.csv")
	if err != nil {
		log.Fatal(err)
	}
	defer file.Close()

	reader := csv.NewReader(file)
	lines, err := reader.ReadAll()
	if err != nil {
		log.Fatal(err)
	}

	var data []Data
	for _, line := range lines {
		data = append(data, Data{
			Name: line[0],
			Age:  line[1],
			City: line[2],
		})
	}

	fmt.Println(data)
}

위 코드에서는 Data 구조체를 정의하고 CSV 파일을 읽어 각 라인의 데이터를 이 구조체에 저장하였습니다.

데이터 시각화

이제 Go 언어에서 데이터를 시각화하기 위해 github.com/wcharczuk/go-chart 라이브러리를 사용해보겠습니다. 이 라이브러리는 다양한 차트와 플롯을 생성하는 데 도움이 됩니다.

아래는 CSV 데이터를 사용하여 간단한 막대 그래프를 그리는 예제 코드입니다.

package main

import (
	"os"
	"log"
	"encoding/csv"
	"strconv"
	"github.com/wcharczuk/go-chart"
)

func main() {
	file, err := os.Open("data.csv")
	if err != nil {
		log.Fatal(err)
	}
	defer file.Close()

	reader := csv.NewReader(file)
	lines, err := reader.ReadAll()
	if err != nil {
		log.Fatal(err)
	}

	var xValues []string
	var yValues []float64
	for _, line := range lines {
		xValues = append(xValues, line[0])
		val, err := strconv.ParseFloat(line[1], 64)
		if err != nil {
			log.Fatal(err)
		}
		yValues = append(yValues, val)
	}

	graph := chart.BarChart{
		Title: "Data Visualization",
		Background: chart.Style{
			Padding: chart.Box{Top: 20, Left: 200},
		},
		Height:   512,
		BarWidth: 60,
		Bars: []chart.Value{
			{Value: yValues[0], Label: xValues[0]},
			{Value: yValues[1], Label: xValues[1]},
			{Value: yValues[2], Label: xValues[2]},
		},
	}

	f, _ := os.Create("output.png")
	defer f.Close()
	graph.Render(chart.PNG, f)
}

위 코드에서는 CSV 파일에서 데이터를 읽어와 막대 그래프를 그리고 이를 output.png 파일로 저장하였습니다.

이제 Go 언어로 CSV 파일의 데이터를 읽고 시각화하는 방법에 대해 알아봤습니다. 데이터 시각화는 강력한 도구이며, 이러한 능력을 통해 데이터를 이해하고 결정에 도움을 줄 수 있습니다. Go 언어를 사용하여 데이터 시각화를 시작해보세요!