ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Plotly Express 이용한 데이터 시각화
    plotly 시각화 2021. 12. 2. 21:44

    Plotly Express 이용한 데이터 시각화

    이번에는 plotly express 라이브러리를 사용해 보자. 이거 또한 그래프가 마우스만 올리면 정보가 나오는 같은 거다. 다음에 배울거( plotly.graph_objects)와 비교를 하자면 plotly.express는 한번에 전체 그림을 그릴수 잇다? 이정도로만 알고있도록 하자. 다음에 배울  plotly.graph_objects는 좀더 자세하고 상세하게 그래프를 그릴수 있다고 한다. 아래 링크에서 자세한 내용을 알 수 있다.

    - ploty.express

     

    Plotly Express

    Plotly Express is a terse, consistent, high-level API for creating figures.

    plotly.com

    라이브러리 불러오기

    import plotly.express as px
    import pandas as pd

    1. bar chart

    1-1 기본 bar chart

    data_canda = px.data.gapminder().query("country == 'Canada'")
    data_canda

     

    fig = px.bar(data_canda, x='year', y='pop')
    fig.show()

     

    1-2 wide_df bar chart

    wide_df = px.data.medals_wide()
    wide_df

    fig = px.bar(wide_df, x="nation", y=["gold","silver","bronze"], title="Wide-Form Input")
    fig.show()

    1-3 long_data bar chart

    long_df = px.data.medals_long()
    long_df

    # color = medal에 따른 색상 추가 * 범주형 데이터 기억해두자. 밑에 보기를 보면 이해가 될것이다.
    fig = px.bar(long_df, x = "nation", y= "count", color='medal', title = "Long-Form input") 
    fig.show()

    1-4 hover_data 추가 및 color 연속형 데이터 추가

    data_canda

    fig = px.bar(data_canda, x='year', y='pop',
        # color = lifeExp에 대한 색상 연속성 데이터는 위 범주형과 다르기만 이해하자, hover_data = lifeExp,gdpPercap 참고할 데이터 추가
                hover_data=['lifeExp', 'gdpPercap'], color='lifeExp', 
                 #height= 그래프 높이, width= 그래프 너비  pop제목 대신 : population of Canada
                 labels={'pop':'population of Canada', 'year' :'년도'},width=800,height=500) 
    fig.show()

    1-5 group 이용 bar chart

    df = px.data.tips()
    df

    fig = px.bar(df, x='sex', y='total_bill',
              color = 'smoker', barmode='group', height=400) # barmode = group 누적 막대 차트를 그룹화로 변경
    fig.show()

    2. Scatter shart

    2-1 기본적인 scatter start

    iris_df = px.data.iris()
    iris_df

    fig = px.scatter(iris_df, x = 'sepal_width', y = 'sepal_length')
    fig.show()

    2-2 column 이용한 size 설정 scatter chart

    fig = px.scatter(iris_df, x = 'sepal_width', y = 'sepal_length', color = 'species',
                     # size = 컬럼 추가하여 사이즈를 추가 , hover_data = 칼럼을 추가하여 데이터 추가
                    size = 'petal_length', hover_data = ['petal_width'])
    fig.show()

    2-3 color = 연속형 데이터 사용 scatter chart

    fig = px.scatter(iris_df, x = 'sepal_width', y = 'sepal_length', color = 'petal_length')
    fig.show()

    2-4 양측 분포 파악 scatter chart

    fig = px.scatter(iris_df, x="sepal_length", y="sepal_width", marginal_x="histogram", marginal_y="rug")
    fig.show()

    2-5 Facetting scatter chart

    df

    fig = px.scatter(df, x="total_bill", y="tip", color="smoker", facet_col="sex", facet_row="time")
    fig.show()

    3. line chart

    3-1 기본적인 line chart

    data_canda

    fig = px.line(data_canda, x = 'year', y = 'lifeExp')
    fig.show()

    3-2 color 추가한 line chart

    df_Oceania = px.data.gapminder().query("continent=='Oceania'")
    df_Oceania

    fig = px.line(df_Oceania, x = 'year', y = 'lifeExp', color = 'country')
    fig.show()

    3-3 sort_values 이용한 line chart

    df_number = pd.DataFrame({'x' : [1,3,2,4],
                             'y' : [1,2,3,4]})
    df_number

    fig = px.line(df_number, x = 'x', y = 'y', title = "정렬 적용하지않은 그래프")
    fig.show()
    
    df_number = df_number.sort_values(by='x')
    fig = px.line(df_number, x = 'x', y = 'y', title = "정렬 적용한 그래프")
    fig.show()

     

    3-4 text 추가 위치 설정 line chart

    fig = px.line(df_Oceania, x="lifeExp", y="gdpPercap", color="country", text="year") # year 그래프에 text생성
    fig.update_traces(textposition="bottom right") # 우측 하단에 년도 표기
    fig.show()

    3-5 marke 생성 line chart

    fig = px.line(df_Oceania, x="year", y="lifeExp", color="country", markers = True) # marker = True 생성
    fig.show()

    3-6 datetime line chart

    df_stocks = px.data.stocks()
    df_stocks

    fig = px.line(df_stocks, x='date', y="GOOG")
    fig.show()

    여기까지 bar, scatter, line 차트를 알아보았다. 여러 문법이 있는데 사이트에서 보고 배우는거라 아직 많은 문법을 찾지는 못했다. 더많은 예상 문제들이 있지만 필요한거로만 간단하게 시각화 해보았다. 설명을 알아보기 쉽게 쓰고 싶었지만 아직 부족한게 많은거 같다. 더 자세한 문법이나 정보를 찾으면 자세하게 한번더 올리도록 하겠다. 그다음은 plotly.graph_objects 라는 것도 알아보고 한번 블로그에 올려보도록 하겠다. plotly.graph_objects는 plotly.pxpress 보다 손이 많이 가지만 좀더 다양하게 만지며 상세하게 할 수 있다는 장점이 있다고 한다. 빠른시일내에 올려보겠다!

    - 참고

    - plotly 자세한 자료 링크

    출처 : "plotly"

    'plotly 시각화' 카테고리의 다른 글

    plotly를 이용한 데이터 시각화  (0) 2021.11.29

    댓글

Designed by Tistory.