ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 파이썬 시각화 막대그래프 그리기 Matplotlib.pyplot - bar
    Data Science/시각화 2021. 10. 13. 10:18
    반응형

    Matplotlib의 pyplot은 다양한 시각화 기법(그래프)를 지원합니다.

    그중에서 plot을 통해서 막대그래프(bar chart)를 그려보겠습니다.

     

    import matplotlib.pyplot as plt
    
    x_lst = [1,2,3,4,5]
    y_lst = [3,4,5,2,1]
    
    plt.bar(x_lst, y_lst, width=0.8)
    
    plt.show()

    1. x_lst, y_lst

    그래프의 X축/Y축 좌표, 두 리스트의 길이는 동일해야합니다.

    2. width

    width는 막대그래프의 두께를 나타냅니다.

    해당 파라미터를 지정하지 않아도 0.8로 기본 설정됩니다.

    1로 지정시 막대간의 여백이 없어집니다.

    3. 그외의 속성, 누적 막대그래프 그리기

    기준값(bottom), 막대정렬기준(align), 막대 색(color) 등 다양한 속성을 지정할 수 있습니다.

    또한 legend, xlabel, ylabel, title 등을 통해서 그래프를 꾸밀 수 있습니다. (Matplotlib.pyplot 공통)

    import matplotlib.pyplot as plt
    
    x_lst = [1,2,3,4,5]
    y_lst = [3,4,5,2,1]
    y_lst2 = [1,2,3,1,1]
    
    
    plt.bar(x_lst, y_lst, width=0.5, bottom=5, align='edge', color='#AB1212')
    plt.bar(x_lst, y_lst2, width=0.5, bottom=5)
    
    
    plt.show()

    누적 막대그래프는 bottom 파라미터를 사용하여 그릴 수 있습니다.

    import matplotlib.pyplot as plt
    
    x_lst = [1,2,3,4,5]
    y_lst = [3,4,5,2,1]
    y_lst2 = [1,2,3,1,1]
    
    
    plt.bar(x_lst, y_lst, width=0.5, color='#AB1212')
    plt.bar(x_lst, y_lst2, width=0.5, bottom=y_lst)
    
    
    plt.show()

    Matplotlib.pyplot - plot의 모든 속성의 종류는 아래와 같습니다.

    속성 설명
    agg_filter a filter function, which takes a (m, n, 3) float array and a dpi value, and returns a (m, n, 3) array
    alpha scalar or None
    animated bool
    antialiased or aa unknown
    capstyle CapStyle or {'butt', 'projecting', 'round'}
    clip_box Bbox
    clip_on bool
    clip_path Patch or (Path, Transform) or None
    color color
    contains unknown
    edgecolor or ec color or None or 'auto'
    facecolor or fc color or None
    figure Figure
    fill bool
    gid str
    hatch {'/', '\', '|', '-', '+', 'x', 'o', 'O', '.', '*'}
    in_layout bool
    joinstyle JoinStyle or {'miter', 'round', 'bevel'}
    label object
    linestyle or ls {'-', '--', '-.', ':', '', (offset, on-off-seq), ...}
    linewidth or lw float or None
    path_effects AbstractPathEffect
    picker None or bool or float or callable
    rasterized bool
    sketch_params (scale: float, length: float, randomness: float)
    snap bool or None
    transform Transform
    url str
    visible bool
    zorder float

     

    누적 막대그래프 또는 여러 막대그래프를 한 그래프 안에 그리는 부분에서 matplot은 불편함이 있습니다.

    따라서 matplot을 꼭 쓰셔야 하는게 아니라면 seaborn 등 그외의 라이브러리를 추천드립니다.

     

    참고문헌

    https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.bar.html#matplotlib.pyplot.bar

    반응형

    댓글

Designed by Tistory.