본문 바로가기

카테고리 없음

Vega를 사용해 차트를 만드는 5가지 방법 (HTML 제외)

HTML 외에도 Vega를 사용하여 그래프를 그리는 방법은 여러 가지가 있습니다. Vega는 다양한 환경에서 사용할 수 있는 도구와 라이브러리를 제공합니다. 아래는 Vega를 활용할 수 있는 다른 방법들입니다.

방법 주요 사용 환경 장점
Vega CLI 명령줄 빠르게 그래프 파일 생성. 서버 사이드 작업에 적합.
Python (Altair/Vega) 데이터 분석 Python의 데이터 분석 도구와 통합 용이.
Node.js 서버 환경 동적으로 그래프 생성 및 파일 출력 가능.
Jupyter Notebook 데이터 실험 데이터 분석 및 시각화를 실시간으로 확인 가능.
Vega Editor 브라우저 실시간 수정 및 시각화 확인. 개발 초기 실험에 적합.

 

 

1. Vega CLI (명령줄 인터페이스)

Vega CLI를 사용하면 그래프를 직접 생성하고 이미지를 파일로 저장할 수 있습니다. 이 방법은 서버 사이드 환경이나 CI/CD 파이프라인에서 유용합니다.

 

설치

npm install -g vega-cli

 

사용 방법

1. Vega 스펙을 JSON 파일로 작성합니다 (예: chart_config.json).

2. 명령줄에서 Vega CLI를 사용해 PNG 또는 SVG로 내보냅니다.

vg2png chart_config.json -o chart.png
vg2svg chart_config.json -o chart.svg

 

2. Python 환경에서 Vega

 

Python 사용자라면 vega 또는 altair 라이브러리를 사용해 Vega 그래프를 그릴 수 있습니다.

 

Vega 라이브러리

 

Vega의 Python 라이브러리를 사용하면 Vega JSON 스펙을 Python 코드로 작성하거나 렌더링할 수 있습니다.

 

설치

pip install vega

 

예제

from vega import Vega

spec = {
    "$schema": "https://vega.github.io/schema/vega/v5.json",
    "width": 400,
    "height": 200,
    "padding": 5,
    "data": [
        {"name": "table", "values": [
            {"category": "A", "amount": 28},
            {"category": "B", "amount": 55},
            {"category": "C", "amount": 43}
        ]}
    ],
    "marks": [
        {
            "type": "rect",
            "from": {"data": "table"},
            "encode": {
                "enter": {
                    "x": {"scale": "xscale", "field": "category"},
                    "y": {"scale": "yscale", "field": "amount"},
                    "width": {"scale": "xscale", "band": 1},
                    "y2": {"scale": "yscale", "value": 0}
                }
            }
        }
    ],
    "scales": [
        {"name": "xscale", "type": "band", "domain": {"data": "table", "field": "category"}, "range": "width"},
        {"name": "yscale", "domain": {"data": "table", "field": "amount"}, "nice": True, "range": "height"}
    ],
    "axes": [
        {"orient": "bottom", "scale": "xscale"},
        {"orient": "left", "scale": "yscale"}
    ]
}

vega_chart = Vega(spec)
vega_chart.display()

 

Altair 라이브러리

 

Altair는 Vega-Lite를 기반으로 한 Python 라이브러리로, 더 간단한 문법을 제공합니다.

 

설치

pip install altair

 

예제

import altair as alt
import pandas as pd

# 데이터 준비
data = pd.DataFrame({
    'category': ['A', 'B', 'C', 'D'],
    'amount': [28, 55, 43, 91]
})

# Altair 그래프 생성
chart = alt.Chart(data).mark_bar().encode(
    x='category',
    y='amount'
)

chart.show()  # 웹 브라우저에 렌더링

 

3. Node.js 환경에서 Vega

 

Node.js를 사용해 서버 사이드에서 Vega를 실행하고 차트를 렌더링할 수 있습니다.

 

설치

npm install vega vega-cli canvas

 

사용 방법

 

Node.js 스크립트에서 Vega를 호출하여 그래프를 생성할 수 있습니다.

const fs = require('fs');
const vega = require('vega');

// Vega 스펙 불러오기
const spec = require('./chart_config.json');

// Vega View 생성
const view = new vega.View(vega.parse(spec), { renderer: 'none' });

// PNG 출력
view.toCanvas().then(canvas => {
    fs.writeFileSync('chart.png', canvas.toBuffer());
    console.log('Chart saved as chart.png');
}).catch(err => {
    console.error(err);
});

 

4. Jupyter Notebook에서 Vega

 

Jupyter Notebook 환경에서 Vega 시각화를 직접 실행할 수 있습니다.

 

설치

pip install altair vega3

 

사용방법

 

Jupyter Notebook 셀에 Altair 또는 Vega3를 사용해 그래프를 렌더링할 수 있습니다.

from IPython.display import display
import json

# Vega JSON 스펙 불러오기
with open('chart_config.json') as f:
    spec = json.load(f)

# Vega 그래프 표시
from vega import Vega
vega_chart = Vega(spec)
display(vega_chart)

 

5. Vega Editor

 

Vega Editor는 브라우저에서 Vega 스펙을 작성하고 결과를 실시간으로 확인할 수 있는 도구입니다.

1. Vega Editor에 접속.

2. JSON 스펙 작성.

3. 결과 확인 및 PNG/SVG로 내보내기.

 

위 방법들 중에서 작업 환경에 맞는 방법을 선택하면 됩니다!