본문 바로가기
파이썬(Python)

파이썬 Altair 라이브러리

by sailing-blog 2023. 1. 3.
반응형

Altair은 시각화 라이브러리로, Python에서 쉽게 차트나 그래프를 그릴 수 있도록 해줍니다. Altair은 데이터 전처리나 시각화 작업을 위한 다른 라이브러리와 달리, 직접 그래프를 그리는 코드를 작성할 필요가 없습니다. 대신 적절한 옵션을 설정하고 원하는 그래프의 형태를 정의할 수 있는 직관적인 인터페이스를 제공합니다.

Altair은 다음과 같은 작업을 지원합니다:

 - 선 그래프, 점 그래프, 막대 그래프, 상자 그림, 산점도 등 다양한 차트 유형을 지원합니다.
 - 데이터를 쉽게 정제하고 시각화 할 수 있는 기능을 제공합니다.
 - 인터렉티브한 차트를 생성할 수 있도록 해줍니다.
 - Matplotlib, Seaborn과 같은 다른 시각화 라이브러리와 통합할 수 있습니다.

 

 


Altair 라이브러리는 Python의 기본 패키지가 아니기 때문에 설치가 필요합니다. 설치는 다음과 같이 수행할 수 있습니다.
콘솔에서 다음 명령어를 입력해 Altair 패키지를 설치합니다.

pip install altair



설치가 완료되면 Python 코드에서 Altair 라이브러리를 임포트할 수 있습니다.

import altair as alt



Altair을 설치하기 위해서는 일반적으로 pip 패키지 관리자를 사용할 수 있습니다. 이를 위해서는 이미 Python이 설치되어 있어야 합니다. Python이 설치되어 있지 않다면 아래 링크에서 설치할 수 있는 최신 버전을 다운로드 받아 설치할 수 있습니다.

https://www.python.org/downloads/

Altair 라이브러리는 Python 3.6 이상을 지원합니다.

 

 


Altair을 사용하여 시각화를 하기 위해서는 우선 데이터를 적절한 형태로 준비해야 합니다. Altair은 Pandas DataFrame 형태의 데이터를 입력받기 때문에, 일반적인 경우 Pandas를 사용하여 데이터를 정제한 후 Altair로 전달합니다.

그래프를 그리기 위해서는 우선 alt.Chart 객체를 생성합니다. 생성한 Chart 객체에는 데이터와 그래프의 형태를 정의할 수 있는 여러 옵션이 제공됩니다. 예를 들어 아래와 같이 선 그래프를 그리기 위해서는 아래와 같이 코드를 작성할 수 있습니다.

import altair as alt
import pandas as pd

# 데이터 준비
df = pd.DataFrame({
    'x': [1, 2, 3],
    'y': [4, 5, 6],
    'label': ['A', 'B', 'C']
})

# 선 그래프 생성
chart = alt.Chart(df).mark_line(point=True).encode(
    x='x:Q',
    y='y:Q',
    color='label:N'
)

# 그래프 출력
chart.display()



생성한 Chart 객체를 출력할 때는 display() 메서드를 사용합니다. 이 메서드는 기본적으로 Matplotlib를 사용하여 그래프를 출력합니다. 인터렉티브한 차트를 생성하기 위해서는 Chart.save() 메서드를 사용하여 HTML 파일로 저장할 수 있습니다. 저장된 HTML 파일은 웹 브라우저에서 열어볼 수 있으며, 인터렉티브한 차트가 제공됩니다.

chart.save('chart.html')


Altair에서는 차트의 스타일을 지정할 수 있는 옵션도 제공합니다. 예를 들어 아래와 같이 그래프의 제목과 축 라벨을 지정할 수 있습니다.

chart = alt.Chart(df).mark_line(point=True).encode(
    x='x:Q',
    y='y:Q',
    color='label:N'
).properties(
    title='Line Chart',
    xaxis=alt.X('x:Q', axis=alt.Axis(title='X-axis')),
    yaxis=alt.Y('y:Q', axis=alt.Axis(title='Y-axis'))
)




Altair에서는 다양한 스타일의 마커를 제공합니다. 아래는 Altair에서 제공하는 마커 종류입니다.

 - mark_area: 영역 그래프
 - mark_bar: 막대기 그래프
 - mark_circle: 원형 마커
 - mark_line: 선 그래프
 - mark_point: 점 그래프
 - mark_rect: 직사각형 그래프
 - mark_rule: 수평선 그래프
 - mark_square: 정사각형 그래프
 - mark_text: 텍스트 그래프

그래프를 그리기 위해서는 아래와 같이 적절한 마커를 지정합니다.

chart = alt.Chart(df).mark_line().encode(
    x='x:Q',
    y='y:Q'
)



마커의 색상은 color 속성으로 지정할 수 있습니다. 색상은 직접 색상 코드를 지정할 수도 있고, 데이터에 기반한 색상을 지정할 수도 있습니다.

chart = alt.Chart(df).mark_line().encode(
    x='x:Q',
    y='y:Q',
    color='label:N'
)



마커의 크기는 size 속성으로 지정할 수 있습니다. 크기는 직접 숫자로 지정할 수도 있고, 데이터에 기반한 크기를 지정할 수도 있습니다.

chart = alt.Chart(df).mark_line().encode(
    x='x:Q',
    y='y:Q',
    size='y:Q'
)



데이터에 기반한 크기 지정은 아래와 같이 수행할 수 있습니다.

chart = alt.Chart(df).mark_line().encode(
    x='x:Q',
    y='y:Q',
    size=alt.Size('y:Q', scale=alt.Scale(range=[5, 50]))
)



위 코드에서는 size 속성의 값으로 'y:Q'를 지정하고, 스케일을 지정하여 그래프에서 마커의 크기가 어떻게 표현될 지 정의합니다. 스케일의 range 속성으로 크기의 최소값과 최대값을 지정할 수 있습니다.

마커의 형태는 shape 속성으로 지정할 수 있습니다. 제공되는 형태는 'circle', 'square', 'cross', 'diamond', 'triangle-up', 'triangle-down' 중 하나를 지정할 수 있습니다.

chart = alt.Chart(df).mark_line().encode(
    x='x:Q',
    y='y:Q',
    shape='label:N'
)


데이터에 기반한 형태 지정은 아래와 같이 수행할 수 있습니다.

chart = alt.Chart(df).mark_line().encode(
    x='x:Q',
    y='y:Q',
    shape=alt.Shape('label:N', scale=alt.Scale(range=['circle', 'square']))
)



위 코드에서는 shape 속성의 값으로 'label:N'을 지정하고, 스케일을 지정하여 그래프에서 마커의 형태가 어떻게 표현될 지 정의합니다. 스케일의 range 속성으로 형태의 최소값과 최대값을 지정할 수 있습니다.

Altair에서는 차트를 그리기 위한 다양한 옵션을 제공합니다. 자세한 옵션은 Altair 문서를 참고하시기 바랍니다.

반응형