본문으로 바로가기

Chart Race

category Studies/Python 2022. 3. 14. 23:08

Python 에는 Bar Chart Race 라는 재미있는 패키지가 있다.

준비물

1) 데이터가 담긴 DataFrame

다음의 형식이여야 한다.

 

             wakA  wakAh  wakAjd  wakAnha  wakB  wakChok  ...  wakCut  wakLegeno2  wakLpc  wakMs3  wakBj  wakWgt
DATE                                                      ...
2021-11-15   2882    136     219    733.0   122       79  ...     NaN         NaN     NaN     NaN    NaN     NaN 
2021-11-17    360    103      35    303.0    84       46  ...     NaN         NaN     NaN     NaN    NaN     5.0 
2021-11-18   1116    111      14      5.0   138        6  ...     NaN         NaN     NaN     9.0    NaN     NaN 
2021-11-19   1788    253      22    158.0   151       41  ...     NaN         NaN     NaN     NaN    NaN     8.0 
...           ...    ...     ...      ...   ...      ...  ...     ...         ...     ...     ...    ...     ... 
2022-03-10   6658    292      87    501.0    85      190  ...     NaN         1.0     5.0     NaN    NaN     NaN 
2022-03-11  23842    269      82   1039.0   406      634  ...     NaN         NaN    10.0    13.0    2.0     NaN 
2022-03-12   5239    602     159    956.0   208      163  ...     NaN         9.0    16.0     NaN    NaN     NaN 
2022-03-13   3555    305     182     40.0   303       26  ...     NaN         NaN     NaN     NaN   10.0     NaN 
2022-03-14    110      3       4      NaN     2        4  ...     NaN         NaN     NaN     NaN    NaN     NaN

(index 가 row고 value 가 column인 형식 )

 

2) pip install bar-chart-race

주의 , pip install bar-chart-race 를하면 image-label-folder 변수가 없어 이미지라벨을 붙일수가 없다. 대신

pip install git+https://github.com/programiz/bar_chart_race.git@master

 를 사용할 것.

 

전처리를 통해 위의 형식으로 데이터를 만드는데 성공하면, 아래의 코드대로 Chart Race video 를 만들 수 있다.

import bar_chart_race as bcr

# df 변수 생성

bcr.bar_chart_race(
    df=df,
    filename="video.mp4",
    img_label_folder = "bar_image_labels",
    # 바 개수 (Top 순으로 정렬)
    n_bars=7, 
    # smoothness of the animation
    steps_per_period=45,
    # time period in ms for each row
    period_length=1500,
)

dataframe 만 준비해놓고 위의 코드를 실행하기만 하면 비디오 파일이 생성된다.

파이썬은 2022년 현재 가장 핫한 프로그래밍 언어이니 만큼 다양한 라이브러리가 있는데 이러한 라이브러리도 있다는 걸 알 수 있다. 다음은 bar chart race 라이브러리를 통해 생성한 영상파일의 예시다.

 

물론 Flourish  처럼 데이터 시각화 관련 제대로 된 사이트가 없다면 이것을 사용했을 수도 있다.

혹은 Flourish 도 부족하다 느낄 경우 이 패키지를 좀 더 수정하고 개선해서 개인적으로 사용할 수도 있다.

 

예를들어 위 영상에서 좀 거슬리는 세로 그리드 표시를 제거한다든지...

 

언젠가 데이터 시각화 관련해서 무언갈 해야될 때 이 패키지를 수정할 기회가 올 수도 있겠다.

 

이 패키지는 현재 라인 차트는 제대로 사용할 수 없는 등 여러 문제가 있다.

Flourish 라는 훨씬 제대로 된 사이트가 있다.

 

Data Visualization 에 관해 여러 기능들이 아주 잘 갖춰진 사이트인데, 결론은 위처럼 파이썬에는 이런 라이브러리가 있다~ 는 것 정도만 알아두고, Data Visualization 이 필요하면 Flourish 를 이용하도록 하자.

 

아래 예시는 Flourish를 통해 생성한 한 차트의 예시다.