Python基礎

Python「ワードクラウド」で遊んでみた【人口の多い国TOP15】

みなさん、「ワードクラウド」をご存知でしょうか?

ワードクラウドは、Pythonのライブラリのひとつで、「出現頻度の多い言葉を大きい文字にして画像を作成する」という感じのライブラリです

画像を見て下さい。

アイドルグループの「嵐」が歌っている曲の歌詞をすべて読み込ませて、出現頻度の多い言葉を大きい文字にしたものです。

 

ワードクラウドでできること

このようにワードクラウドでは、、

①文章を入力する。

②画像を出力してくれる。

という感じのお遊びにも使えるライブラリなのです。

 

ワードクラウドで遊んでみた

さっそく、ワードクラウドで遊んでみました。

今回は「人口の多い国TOP15」を作成してみました。

完成した画像がこちらです。

人口の多い順がちょっとわかりづらい画像になってしまったかもしれませんが、まず何よりカラフルでかわいい。と思ったオイラです。

ワードクラウドで遊んだつもりが、意外な結果にテンションが上がってしまったオイラです。インドネシアとパキスタンの人口って多いんですね。

 

ワードクラウドの画像に設定できること

ワードクラウドで出力する画像には各種の設定ができます。

以下のようなことができます。

  • 文字のフォント
  • 文字色のパターン
  • 文字の並び方(縦並びか横並びか混合か)
  • 背景色
  • 画像のサイズ

 

完成したプログラム

作ったプログラムコードも載せておきます。駆け出しエンジニアの皆さん、ぜひコピペで遊んでみてください。改良したらもっと面白いと思います。

Paizaというサイトでプログラムを実行することができます。左上の言語選択のところでPython3を選択して実行してみてください。

from wordcloud import WordCloud
import matplotlib.pyplot as plt

# 世界の人口ランキング15
a = ['中国','インド','アメリカ','インドネシア','パキスタン','ブラジル','ナイジェリア','バングラデシュ','ロシア','メキシコ', '日本', 'エチオピア', 'フィリピン','エジプト', 'ベトナム']

count = len(a)

b = []
text= ''

for num in range(len(a)):
    b = (a[num]+' ') * count
    text = text + b
    count = count - 1

#日本語に対応しているフォントを指定する、背景色を指定、重複を防ぐ、縦文字をやめる
word_cloud = WordCloud(font_path="/System/Library/Fonts/ヒラギノ丸ゴ ProN W4.ttc", collocations=False, prefer_horizontal=1)
word_cloud.generate(text)

#表示する
plt.figure(figsize=(10,8)) #画像のサイズを変える
plt.imshow(word_cloud)
plt.axis("off") #目盛りを消す
plt.show()

 

参考サイト

参考にさせてもらったサイトを紹介します。