차밍이

[Python] Plotly 그래프 사용법 - Bar Plot 본문

파이썬/데이터 시각화

[Python] Plotly 그래프 사용법 - Bar Plot

2023. 1. 21. 09:00
반응형

목차

     

    Plotly 그래프 중 Bar Graph 그리는 방법에 대해 소개하겠습니다.
    express와 graph_objects 두 가지 방식을 모두 알아보겠습니다.
    두 개의 차이가 궁금하다면 아래 글을 참고 해주세요.
    [Plotly] express와 graph_objects의 차이 / px와 go 차이

     

    [Plotly] express와 graph_objects의 차이 / px와 go 차이

    목차 Plotly를 사용해서 그래프를 그리는 방법은 2가지가 있습니다. 한 가지는 express를 사용하는 방법과 graph_objects를 사용하는 방법입니다. 저는 어떨때 express를 쓰고 어떨때 graph_objects를 쓰는 것

    chancoding.tistory.com

     

    예시 데이터

    아래 예시에서 사용할 기본 데이터입니다.

    import pandas as pd
    
    # 예시 데이터
    data = [['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I'],
        [638, 11, 35, 18, 1, 57, 81, 365, 36],
        [774, 16, 38, 19, 2, 68, 96, 411, 34],
        [807, 16, 58, 26, 2, 62, 99, 415, 20],
        [817, 20, 60, 20, 1, 70, 104, 429, 27],
        [768, 18, 53, 22, 6, 67, 108, 404, 46],
        [898, 24, 63, 27, 2, 64, 119, 431, 46],
        [926, 29, 64, 22, 5, 63, 129, 438, 34],
        [928, 17, 53, 29, 7, 59, 127, 458, 49],
        [891, 19, 53, 24, 6, 61, 138, 458, 69],
        [1029, 20, 58, 37, 11, 69, 149, 492, 62]]
    
    df = pd.DataFrame(data[1:], columns=data[0])

     

    plotly.express를 사용한 bar 그래프

    기본 막대그래프

    fig = px.bar(x=["a", "b", "c"], y=[1, 2, 3])
    
    fig.show()

    기초적인 막대그래프를 그리는 방식입니다.

    기본 막대 그래프

     

    DataFrame 형식 Bar Graph

    fig = px.bar(df, title="판매량 그래프")
    
    fig.show()

    데이터프래임을 사용해도 쉽게 그래프를 그릴 수 있습니다.

    데이터프래임을 사용한 그래프

     

    특정 Column만 선택한 막대그래프

    fig = px.bar(df, y=['B', 'G', 'I'], title="판매량 그래프", height=310)
    
    fig.show()

    특정 column만 선택하려면 y=을 통해서 원하는 column을 선택하면 됩니다.

    추가적으로 그래프 높이를 조절하려면 height 옵션을 통해 원하는 크기 값을 넣어줍니다.

    그래프 높이 조정

     

    unstack Bar 그래프 : plotly bar stack 된 것 풀기

    fig = px.bar(df, y=['B', 'G', 'I'], title="판매량 그래프", barmode='group')
    
    fig.show()

    express를 사용해서 그래프를 그리면 기본적으로 stack되는 것이 default 옵션입니다.

    따라서 unstack 해서 각각의 막대그래프를 그리고 싶으면 barmode 옵션을 group으로 설정해 주면 됩니다.

    plotly unstack bar graph

     

    수평 막대그래프 그리기 Horizontal bar graph

    fig = px.bar(df, x=['B', 'G', 'I'], title="판매량 그래프", orientation='h')
    fig.show()

    수평 막대를 그리려면 orientation 옵션을 h로 설정하면 됩니다.

    수평 막대 그래프

     

    plotly.graph_objects를 사용한 막대그래프

    기본 그래프

    fig = go.Figure()
    
    fig.add_trace(
        go.Bar(x=df.index, y=df['A'], name="A")
    )
    
    fig.add_trace(
        go.Bar(x=df.index, y=df['H'], name="H")
    )
    
    fig.show()

    graphg_objects를 사용한 기본적인 그래프 그리는 방식입니다.

    x, y 축 값에 들어갈 값을 직접 지정을 해줘야 합니다.

    df형식의 경우 직접 추가할 column들을 선택해줘야 하는 번거로움이 있습니다.

    그리고 기본 형식이 group 막대그래프입니다.

    graph objects를 사용한 bar graph

     

    막대그래프 쌓기

    fig = go.Figure()
    
    fig.add_trace(
        go.Bar(x=df.index, y=df['A'], name="A")
    )
    
    fig.add_trace(
        go.Bar(x=df.index, y=df['H'], name="H")
    )
    
    fig.update_layout(
        barmode='stack'
    )
    
    fig.show()

    막대그래프가 쌓여있는 스택 막대 그래프를 그리려면 fig객체에서 layout 형식을 바꿔야 합니다.

    막대 그래프 쌓기

     

    수평 막대 그래프

    fig = go.Figure()
    
    fig.add_trace(
        go.Bar(y=df.index, x=df['A'], name="A", orientation='h')
    )
    
    fig.add_trace(
        go.Bar(y=df.index, x=df['H'], name="H", orientation='h')
    )
    
    fig.update_layout(
        barmode='stack',
    )
    
    fig.show()

    orientation 옵션을 h로 바꿔주면 되므로 쉽습니다.

    대신 수평 막대그래프이므로 x축과 y축에 들어가는 값이 바뀌게 됩니다.

    x, y 자리를 기존에서 바꿔주어야 한다는 것을 잊지 마세요.

    horizontal bar graph

     

     

    지금까지 Plotly를 사용해 막대그래프를 그리는 방법에 대해서 알아보았습니다.

    Bar Chart 심화 버전

    [Python] Plotly 누적 그룹 막대 그래프 그리기 - Stack and Group Bar Chart

     

    Scatter Plot과 Line Plot도 한 번 알아보세요ㅎ

     

    [Python] Plotly 그래프 사용법 - Scatter Plot

    Plotly는 매우 쉽고 예쁘고 반응적인 그래프를 그릴 수 있는 라이브러리입니다. 기본적으로 JavaScript를 기반으로 하고 있는 것 같습니다. 파이썬에서 라이브러리를 import해와서 쉽게 사용할 수 있

    chancoding.tistory.com

     

    [Python] Plotly 그래프 사용법 - Line Plot

    Plotly를 사용해서 Line plot을 그려보겠습니다. 1. Plotly Express - Lineplot express 객체를 통해서 lineplot을 그릴 수 있습니다. plotly에 있는 기본 데이터를 가져와서 그려보겠습니다. import plotly.express as px df

    chancoding.tistory.com

     

    [Python] Plotly : subplot 만들기의 모든것 - subtitle, type 설정 포함

    목차 Subplot 기본 구조 그리기 make_subplots 함수를 사용해서 서브플롯 생성 rows와 cols 값을 통해서 몇 행, 몇 열로 그래프를 그릴지 설정하면 됨 import plotly.graph_objects as go from plotly.subplots import make_sub

    chancoding.tistory.com

     

    반응형

    관련된 글 보기

    Comments