バーチャートレースの作り方を解説【Pythonで無料作成可能】

★悩み★
・SNSでよく見かけるバーチャートレースの作り方を知りたいな。
・興味のあるデータを用いたバーチャートレースの作り方を知りたいな。



こういった「悩み」に答えます。

★本記事の内容★
① 「バーチャートレース(BarChartRace)とは?」をご紹介
② バーチャートレース(BarChartRace)の作り方をご紹介



これからご紹介する「バーチャートレース(BarChartRace)の作り方」を実践したことで、筆者は60分以内で以下のバーチャートレース(BarChartRace)を作成できました。

【可視化】日本各地における新型コロナウィルスの感染者数(累計)



記事の前半では「バーチャートレース(BarChartRace)とは何か?」を解説します。
記事の後半では「興味のあるデータを用いたバーチャートレース(BarChartRace)の作り方」をご紹介します。

この記事を読み終えることで、「お好きなデータを用いたバーチャートレース(BarChartRace)の作り方」と「バーチャートレース(BarChartRace)とは何か」を把握した状態になります。
 


 

バーチャートレース(BarChartRace)とは?

「バーチャートレース(BarChartRace)とは、何か?」に関しては、以下の記事をご覧ください。
 

 

上の記事で、バーチャートレース(BarChartRace)の以下を解説しています。
・定義と事例
・利用場面
・作成ツール



以上が、「バーチャートレース(BarChartRace)とは?」に関してでした。

データさえ揃えば、誰しも簡単にバーチャートレースを作成できます。
以降で、お好きなデータを用いたバーチャートレースの作り方を説明します。


 

バーチャートレース(BarChartRace)の作り方

「バーチャートレース(BarChartRace)の作り方」に関してご説明します。
 

★バーチャートレース(BarChartRace)の作り方の流れ★
手順1:バーチャートレースで表現したい内容を考える
手順2:バーチャートレースで表現したい内容のデータを集める
手順3:集めたデータをバーチャートレースに適する形式に整形する
手順4:バーチャートレースを作成する環境を整える
手順5:バーチャートレースで可視化する



上記の流れで、好きなデータを用いて、バーチャートレース(BarChartRace)を作れます。

以降で、「バーチャートレース(BarChartRace)の作り方の流れ」の各手順に関してご紹介します。
 

手順1:バーチャートレースで表現したい内容を考える

「手順1:バーチャートレースで表現したい内容を考える」に関してご説明します。
 

バーチャートレース(BarChartRace)を作るためには、「どのようなデータを可視化したいか」を考える必要があります。



SNSなどでよく見かける題材としては、以下となります。
 

★バーチャートレース(BarChartRace)の題材★
・芸能人のTwitterフォロワー数の推移
・コロナ感染者数の推移
・各企業の年間売上ランキング



モチベーションを持続させるためにも、題材として、「趣味に関するもの」や「自身が気になること」を選ぶことをオススメします。
 

今回は、「日本のコロナ感染者数の推移」を題材として以降の手順をご説明します。



以上で、「手順1:バーチャートレースで表現したい内容を考える」は完了です。
 

手順2:バーチャートレースで表現したい内容のデータを集める

「手順2:バーチャートレースで表現したい内容のデータを集める」に関してご説明します。
 

バーチャートレース(BarChartRace)を作るために「データ」が必要です。まずは、データを集めましょう。



「日本のコロナ感染者数の推移」に関するデータを取得するために、以下にアクセスしましょう。

>>日本のコロナ感染者数の推移
 

「データのダウンロードはこちら」(下図の赤枠)をクリックし、「日本のコロナ感染者数の推移」のデータをダウンロードしましょう。
 



以上で、「手順2:バーチャートレースで表現したい内容のデータを集める」は完了です。
 

手順3:集めたデータをバーチャートレースに適する形式に整形する

「手順3:集めたデータをバーチャートレースに適する形式に整形する」に関してご紹介します。
 

バーチャートレース(BarChartRace)を作るためにデータを整形しましょう。



手順2で取得した「日本のコロナ感染者数の推移」データは、以下の形式をしています。
 



バーチャートレース(BarChartRace)を作るために、以下の形式にデータを整形しましょう。
 



Excelを用いてデータ整形は可能ですが、時間がかかるためPythonを利用しましょう。
 

データ整形する時間がない方は、「日本のコロナ感染者数の推移」データを整形した以下の「バーチャートレース向けデータ」をダウンロードしてください。

 


 

Pythonのインストール

以下の記事を参考にし、お使いのパソコンやサーバーにPythonをインストールしましょう。

>> 【ubuntu向け】pyenvでPythonをインストールする手順【簡単】

>> 【コピペOK】pyenvでPythonをインストールする手順【Linux用】

>> 【最短5分】PyAutoGUIをWindowsにインストールする手順の「手順1:Pythonのインストール」を参照

>> 【環境構築】インストーラーでMacOSにPythonをインストール
 

Pythonでデータ整形

以下のPythonプログラムを実行することで、「日本のコロナ感染者数の推移」データをバーチャートレース(BarChartRace)向けのデータに整形できます。

# データ読み込み
nhk_data = open("nhk_news_covid19_prefectures_daily_data.csv", "r")
data_dict = {} # key: date value: {region:day_num}
region_set = set()
read_header = False
for line in nhk_data:
  if read_header == False:
    read_header = True
    continue
  data = line.replace('\n','').split(",")
  date = data[0]
  region = data[2]
  total_num = data[4]

  if date not in data_dict.keys():
    data_dict[date] = {}
  data_dict[date][region] = total_num
  region_set.add(region)

nhk_data.close()
region_list = list(region_set)

# 整形したデータの作成
header_str = "日付," + (",").join(region_list) # ヘッダーの作成
f = open('shaped_nhk_news_covid19_prefectures_daily_data.csv', 'w', encoding='UTF-8')
f.write(header_str+"\n")
for date, value_dict in data_dict.items():
  data_line = date
  for region in region_list:
    data_line += "," + value_dict[region]
  f.write(data_line + "\n")
f.close()



以上で、「手順3:集めたデータをバーチャートレースに適する形式に整形する」は完了です。
 

手順4:バーチャートレースを作成する環境を整える

「手順4:バーチャートレースを作成する環境を整える」関してご説明します。
 

バーチャートレースを作成できる無料ツール「bar_chart_race」をインストールしましょう。



「bar_chart_race」のインストールに関しては、以下の記事をご覧ください。
 



以上で、「手順4:バーチャートレースを作成する環境を整える」は完了です。
 

手順5:バーチャートレースで可視化する

「手順5:バーチャートレースで可視化する」に関してご説明します。
 

最後に、整形したデータをバーチャートレースで可視化しましょう。



以下のプログラムを「create_barchartrace.py」のファイル名で保存しましょう。

import pandas as pd
import bar_chart_race as bcr

# 整形したデータの読み込み
index_col = "日付"
parse_dates = [index_col] if index_col else None
df = pd.read_csv("shaped_nhk_news_covid19_prefectures_daily_data.csv", index_col=index_col, parse_dates=parse_dates)

# 整形したデータを元にバーチャートレースを作成
bcr.bar_chart_race(
    df=df,
    filename='covid19_japan.mp4',
    orientation='h',
    sort='desc',
    n_bars=15,
    label_bars=True,
    steps_per_period=10,
    period_length=500,
    figsize=(6.5, 3.5),
    cmap='dark24',
    title='各地の感染者数(累計)',
    bar_label_size=7,
    tick_label_size=7,
    shared_fontdict={'family' : 'IPAGothic', 'weight' : 'bold', 'color' : '.1'},
    fig=None)



「create_barchartrace.py」を実行するために、以下のコマンドを実行しましょう。

# python create_barchartrace.py



上記コマンドが正常に終了した場合、「covid19_japan.mp4」(冒頭でお見せしたYoutubeの動画)のファイルが生成されます。
 

動画内の日本語が「◻︎◻︎◻︎◻︎」となる場合は、日本語フォントをインストールするために以下を実施しましょう。
# yum install ipa-gothic-fonts ipa-mincho-fonts ipa-pgothic-fonts ipa-pmincho-fonts
# rm -f /home/hadoop/.cache/matplotlib/fontlist-v330.json



以上で、「手順5:バーチャートレースで可視化する」は完了です。
 

上記の手順が、「好きなデータを用いてバーチャートレース(BarChartRace)の作り方」となります。


 

【まとめ】SNSで話題なバーチャートレースの作り方【Python】

今回の記事を通して、バーチャートレースの作り方」をご紹介することで、以下の悩みを解消しました。
 

★悩み★
・SNSでよく見かけるバーチャートレースの作り方を知りたいな。
・興味のあるデータを用いたバーチャートレースの作り方を知りたいな。



「好きなデータを用いてバーチャートレース(BarChartRace)の作り方は?」で悩んでいるあなたにこの記事が少しでも役に立てれば幸いです。
 


 

コメント

タイトルとURLをコピーしました