[plotly] 파이썬으로 액티비티한 그래프 그리기

반응형
    반응형

    matplotlib는 정적인 그래프를 그려서 줌인이나 줌아웃, 그래프 다운로드 등을 하려면

    코드을 더 쳐서 그래프를 움직이고 변경하는 방식을 반복했습니다. 

    이 기능을 한번에 할 수 있는 plotly를 소개할까 합니다.

    plotly가 기능이 많은데 각 기능은 따로 떼어서 작성하고 이번 포스팅에서는 가장 간단한 기능만 소개하겠습니다.

     

     

    설치

    plotly는 아나콘다에서 기본적으로 설치되는 모듈이 아니라서 따로 설치를 해야합니다.

    plotly를 사용하려면 cufflinks 라는 모듈을 사용해야 그래프가 그려집니다. 

    데이터프레임을 iplot을 해야하는데 cufflinks가 임포트되어 있지 않으면 오류가 발생하고 작동을 안 합니다.

    설치는 pip으로 하면 됩니다.

    저는 쥬피터 노트북을 주로 사용해서 쥬피터 노트북 기준으로 하겠습니다.

    cmd나 파워셀에서는 ! 를 지우고 코드실행하면 잘 작동됩니다.

    !pip install plotly
    !pip install cufflinks

     

    그래프 그리기

    간단한 그래프를 그려보겠습니다.

    ploltly 보통 금융데이터를 다루니 약간 그럴듯하게 만들면 좋을 것 같아서 

    랜덤한 데이터를 다섯개로 나눠서 컬럼을 생성해 만들겠습니다.

     

    import plotly.offline as plyo
    import cufflinks
    data = np.random.standard_normal((150,5)).cumsum(axis=0)
    index = pd.date_range('2021-1-1',freq='B',periods=len(data))
    df = pd.DataFrame(100+5*data,columns=list('abcde'),index=index)
    df.head()

    그래프를 그리겠습니다.

    plyo.iplot(df.iplot(asFigure=True))

     

    간단하게 그려집니다. 컬럼별로 나갈수 있게 해놓은 상황입니다.

     

    기능

    plotly의 장점은 줌인, 줌아웃 그리고 내가 원하는 곳을 찍어서 파일저장이 가능한 점입니다.

    더 다양한 방법들이 많은데 내가 원하는 부분을 캡쳐할 수 있다는게 가장 큰 장점이고 

    좌표값을 자세히 볼 수 있습니다.

     

    원하는 곳 확대

    내가 선택해서 확대가 가능합니다.

     

    줌인, 줌아웃

    zoom in, zoom out 버튼이 있습니다. 버튼을 누르면 확대, 축소를 할 수 있습니다. 

    pan을 이용해 원하는 곳으로 간 후 확대,축소를 하면 되겠습니다.

     

    좌표 확인하기

    좌표 확인도 가능합니다.

    확인만 가능하고 좌표 고정은 안 되는 것 같습니다. 

    compare date on hover 을 누르면 다른 그래프와 좌표비교가 가능합니다.

     

     

    저장

    그래프 저장은 카메라 모양을 누르면 가능합니다. 

    줌인, 줌아웃을 한 상황에서 저장을 하면 그 상태 그대로 저장이 되어서 굉장히 좋습니다.

    아쉽게도 좌표를 찍힌 상태에서 저장은 그냥은 안 되는 것 같습니다. 

    좀 더 연구를 해봐야할 것 같네요.

     

    처음부분을 확대하고 저장해보았습니다.

     

     

    plotly 의 가장 기본적인 기능만 포스팅을 했습니다. 

    자세한 사항은 plotly 가이드 사이트에서 확인해보시기 바랍니다.

     

     

    관련 포스팅

    [Python/Pandas] - [Pandas] 시간데이터 만들기(date_range)

    [Python/Pandas] - [Pandas]DataFrame column 추가,삭제,순서변경

    Plotly Guide

     

    Plotly Python Graphing Library

    Plotly's Python graphing library makes interactive, publication-quality graphs. Examples of how to make line plots, scatter plots, area charts, bar charts, error bars, box plots, histograms, heatmaps, subplots, multiple-axes, polar charts, and bubble chart

    plotly.com

     

     

    댓글

    Designed by JB FACTORY

    ....