본문 바로가기
Python/데이터 시각화

워드 클라우드(Word Cloud) 생성하기(with 파이썬 DataFrame)

by 찐남 2022. 2. 28.

지난 포스팅에서는
R을 활용한 워드 클라우드를 생성해 보았어요.

[R 그래픽스] 워드 클라우드(Word Cloud) 생성하기

워드 클라우드(Word Cloud)는 단어의 빈도수를 구름 형태로 표현하는 그래픽 기법입니다. 통상적으로 단어의 크기는 빈도수에 비례하여 표현합니다. 워드 클라우드를 설명하는 여러 블로그를 보면

zzinnam.tistory.com


이번에는
파이썬의 데이터 프레임을 활용하여
워드 클라우드를 생성해 보겠습니다.

워드 클라우드 생성을 위해 필요한
아주 간단한 설명은
위의 포스팅 글을 참고해 주시면 됩니다.

지난번과 동일한 데이터를 활용할게요.

fruit_vegetable.csv
0.00MB

패키지 설치 및 로딩

기본적으로 필요한 패키지는 아래 5가지입니다.

## 워드 클라우드 생성을 위한 패키지
from wordcloud import WordCloud

## 워드클라우드 모양을 변형시키고자 하는 이미지 활용에 사용 패키지
from PIL import Image

## 그래프 출력 패키지
import matplotlib.pyplot as plt

## 수치 연산 패키지
import numpy as np

## 데이터 핸들링
import pandas as pd

데이터 프레임 생성 및
딕셔너리 변환

워드 클라우드를 생성하는 방법 및 패키지는
매우 매우 많아요.

저는 데이터 분석에 가장 많이 활용되는
데이터 프레임 형태의 자료를
워드 클라우드로 표현하는 방법에 대해서
설명하겠습니다.

최종 워드 클라우드를 생성하기 위해서는
데이터 프레임을 딕셔너리 형태로 변환해야 합니다.

## 데이터 프레임 생성
df = pd.read_csv("D:/Python_apply/fruit_vegetable.csv", encoding = "utf-8")

## 생성된 데이터 프레임을 딕셔너리로 변환
wc = df.set_index("title").to_dict()["count"]

워드 클라우드 생성

wordCloud = WordCloud(
font_path = "malgun", # 폰트 지정
width = 400, # 워드 클라우드의 너비 지정
height = 400, # 워드클라우드의 높이 지정
max_font_size=100, # 가장 빈도수가 높은 단어의 폰트 사이즈 지정
background_color = 'white' # 배경색 지정
).generate_from_frequencies(wc) # 워드 클라우드 빈도수 지정

그래프 출력

그래프로 출력하면 최종 그래프가 완성됩니다.

plt.figure()  
plt.imshow(wordCloud)
plt.axis('off')

워드 클라우드 모양 변경

원하는 이미지를 업로드하여
워드 클라우드 mask 옵션을 이용하면,
다른 모양의 워드 클라우드를 생성할 수 있어요.

img = Image.open('D:/Python_apply/원.png') #이미지 오픈
imgArray = np.array(img) # 이미지의 각 셀을 수치로 변환

wordCloud = WordCloud(
    font_path = "malgun",
    width = 400,
    height = 400,
    max_font_size=100,
    background_color = 'white',
    mask = imgArray    # 사용하고자 하는 이미지 사용
    ).generate_from_frequencies(wc)

plt.figure()
plt.imshow(wordCloud)
plt.axis('off')

이상으로 데이터 프레임을 활용해서
워드 클라우드로 변경해 보았습니다.

재밌고, 이쁘네요^^

반응형

댓글