Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Matplotlib으로 간단한 롤리팝 플롯(Lollipop Plot) 만드는 방법

Matplotlib에서 롤리팝 플롯 그리기

롤리팝 플롯(lollipop plot)은 막대그래프보다 시각적으로 깔끔하게 여러 항목의 값을 비교할 수 있는 차트입니다. Matplotlib에서는 stem() 함수를 활용해 손쉽게 그릴 수 있으며, 아래 단계를 따라 진행하면 됩니다.

  • 그림(figure) 크기를 설정하고, 서브플롯 사이와 주변의 여백(padding)을 조정합니다.

  • 2차원 표 형태의 데이터를 담는 데이터프레임 df를 생성합니다. pandas의 DataFrame은 크기가 가변적이며 서로 다른 자료형을 함께 저장할 수 있습니다.

  • sort_values() 메서드를 사용해 값을 기준으로 정렬된 데이터프레임을 만듭니다.

  • 데이터프레임 인덱스 길이에 해당하는 범위(range) 리스트를 생성합니다.

  • 정렬된 데이터프레임을 사용해 줄기 플롯(stem plot)을 그립니다.

  • xticks() 메서드로 x축 눈금 위치와 레이블을 설정합니다.

  • show() 메서드를 호출해 최종 그림을 화면에 표시합니다.

예제 코드

import numpy as np
from matplotlib import pyplot as plt
import pandas as pd

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

df = pd.DataFrame({'group': list(map(chr, range(65, 85))), 'values': np.random.uniform(size=20)})

ordered_df = df.sort_values(by='values')

my_range = range(1, len(df.index) + 1)

plt.stem(ordered_df['values'])

plt.xticks(my_range, ordered_df['group'])

plt.show()

코드 설명

위 예제에서는 A부터 T까지 20개의 알파벳 그룹에 대해 0과 1 사이의 난수 값을 생성합니다. sort_values(by='values')로 값을 오름차순 정렬하면, 줄기 플롯이 값이 작은 순서부터 큰 순서대로 배치되어 어떤 그룹의 값이 큰지 한눈에 파악할 수 있습니다. 마지막으로 x축 눈금을 알파벳 레이블로 지정해 각 줄기가 어떤 그룹에 해당하는지 명확하게 보여줍니다.

실행 결과

Matplotlib으로 간단한 롤리팝 플롯(Lollipop Plot) 만드는 방법