본문 바로가기
프로그램

[파이썬] 문제 : 많이 언급된 단어 리스트로 막대그래프 그리기

by 오디세이99 2022. 12. 5.
728x90
반응형

(문제)

data = [('월드컵', 8), ('전', 6), ('명', 6), ('우루과이', 5), ('한국', 5), ('축구', 4), ('또', 4), ('곳곳', 4), ('골', 4), ('이', 4)]

많이 언급된 단어와 각각 언급된 횟수의 리스트.
많이 언급된 단어 5개를 x축으로 하고 언급된 횟수를 y축으로 막대그래프 그리기

 

 

(방법)

import matplotlib.pyplot as plt

data = [('월드컵', 8), ('전', 6), ('명', 6), ('우루과이', 5), ('한국', 5)
        , ('축구', 4), ('또', 4), ('곳곳', 4), ('골', 4), ('이', 4)]

data.sort(key=lambda x:-x[1])               # 2차원 배열에서 정렬. -x로 내림차순 정렬

def add_value_label(x_list,y_list):          # bar chart에 값을 text로 표시
    for i in range(1, len(x_list)+1):
        plt.text(i-1,y_list[i-1],y_list[i-1])


fig = plt.figure(figsize=(10, 6))            # plot 크기 설정
plt.rcParams['font.family'] = 'NanumGothic'  # 한글 가능하도록 폰트 설정
x_column = '단어'
y_column = '횟수'
x = [a[0] for a in data[:5]]       # 상위 5개 이름
y = [a[1] for a in data[:5]]       # 상위 5개 데이터
plt.bar(x, y)                       # bar chart 그리기
add_value_label(x, y)               # 값 표시
plt.title("단어 안급 횟수 상위 5개",fontsize=16)  # 제목 쓰기
plt.show()

728x90
반응형

댓글