【MAC】Bar Chart Raceをで動かしてみた
この記事ではMACでBar Chart Raceを動かす方法について説明していきます。
この記事を読めば「Bar Chart RaceをMAC上で動かす方法」が分かります。
1.事前準備
ここでは「Bar Chart RaceをMAC上で動かす」に必要な環境を紹介していきます。
■「Bar Chart Raceの指定ファイル出力」のために必要な環境は次の5点です。
□Homebrew:パッケージ管理システム。masOSまたはLinux用のPythonなどのパッケージを利用したいパソコンにインストールするためのツール。Bar Chart Raceを動かすベースとなるPythonをインストールするために必要。
□Python:Bar Chart Raceを動かす要となるパッケージ。Bar Chart Raceを動かすベースとなる。
□ffmpeg:Bar Chart Raceが利用するツール。Bar Chart Raceがアニメーションを作成したアニメーションを出力するために必要。Bar Chart Raceではアニメーションを mp4/m4v/mov/etc... ファイルとして保存することができ、そのためにインストールする。ffmpegはさまざまな形式のビデオとオーディオに変換できる。ffmpegはMITライセンスで、商用プロジェクトでも無料。
□PIP:Pyhonのライブラリの一つであるbar_chart_raceをインストールするためのツール。Bar Chart Raceをインストールするために必要。
□bar chart race:pythonのライブラリの一種。Bar Chart Raceを動かすために必要。
Bar Chart Race では、matplotlib と pandas の両方がインストールされている必要があります。
こちらを参考にしました。
Bar Chart Raceの本家のページ
2.Homebrewのインストール
本家のホームページにアクセスする。
次のような画面が表示される。(2022/8/28時点)画面下部のインストールと表示されたところをコピーする。
MACのデフォルトのアプリである「ターミナル」を開き、コピーした文字列をペーストする。MACのパスワードの入力を求められるので、パスワードを入力する。※画像は一部グレーで伏せられてる。
次のようなログが表示される。このログのまま10分くらい動かないが、内部で処理されているので、そのまま放置する。※画像は一部グレーで伏せられてる。
次のログが出力され、再びMACのパスワードの入力を求められるので入力する。
5分くらい経過すると、ダウンロードは終了し、最後が次のようになっているログが表示される。(これよりも前には様々な長いログが出力されている。)
「brew -v」と打ち込むとbrewのバージョンが表示されることで、正しくbrewをインストールできたか確認できる。
ーーー 備考 ーーー
【homebrewのパスについて】
なお、「Warning: /opt/homebrew/bin is not in your PATH.」という警告がhomebrewをインストール中に表示され、「brew -v」とターミナルに打ち込んでも「-bash: brew: command not found」とログが出ない場合、パスが通っていないため、次のようにターミナルに打ち込み、パスを設定する。
export PATH="$PATH:/opt/homebrew/bin"
しかしこのままではターミナルを再起動するとbrew コマンドを利用できなくなるため、パスを追加し保存する手続きが必要。
***
【ターミナルのパスについて】
「ターミナル」のパスを変更している場合は次のようにターミナルに打ち込み、パスを変更する必要がある。ユーザ名と書いてあるところは、自身のユーザ名に変更すること。taroやhanakoなど。
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/ユーザ名/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"
3. Pythonのインストール
「ターミナル」で次のように打ち込む。
brew install python3
ログが表示される。
※ログは割愛する。
「ターミナル」で次のように打ち込む。
python --version
バージョンが表示されれば、正しくpyhonがインストールされている。
ーーー備考ーーー
ここでは「pythonのデフォルトバージョンの設定について」と「pyenvでpythonのバージョンが切り替わらない場合」について追記していく。
【pythonのデフォルトバージョンの設定について】
ターミナルに「python --version 」と打ち込んだ際、Python2系がログに表示される場合、デフォルトのバージョンをPython3系にアップグレードする必要がある。
アップグレードのためにはpyenvを利用する。pyenvはhomebrew経由でインストールできる。インストールした後pyenvを利用してPython3に切り替えていく流れとなる。ここでは、pyenvのインストール方法及びその確認方法とpyenvでのpythonのバージョン切り替え方法及びその確認方法を紹介する。
□pyenvのインストール方法及びその確認方法
・pyenvのインストール
ターミナルで次のように打ち込む。
brew install pyenv
・pyenvのインストール確認
ターミナルで次のように打ち込む。
pyenv -v
pyenvのバージョンが表示されれば、pyenvがインストールされている。
............................
□pyenvでのpythonのバージョン切り替え方法とその確認方法
pyenvでのpythonのバージョン切り替えには、6つの手順を追う必要があり、それぞれ「pyenvのpythonのバージョン確認」、「pyenvに管理されているpythonのバージョンを確認」、「pyenvの管理するpythonのインストール」、「pyenvによるpythonの切り替え」、「pyenvによるpythonの切り替え確認」、「pythonコマンドによるpythonの切り替え確認」である。これらを順に紹介していく。
・pyenvのpythonのバージョン確認
ターミナルに次のように打ち込む。
pyenv versions
すると次のようにログが表示される。「* system」と表示されている場合、pythonが設定されていないので、設定していく流れとなる。
仮に設定されている場合、次のようにpyenv内で設定したPythonのバージョンが表示される。
・pyenvに管理されているpythonのバージョンを確認
pyenvに管理されているpythonのバージョンを確認する。ターミナルに次のように打ち込む。
pyenv install --list
次のように長いログが表示される。(ログの初めのみの画像)ログの初めに表示される数値がpythonのバージョンとなるが、切り替えたいログがなければ、インストールする必要がある。その方法を下記に紹介する。
・pyenvの管理するpythonのインストール
ターミナルに次のように打ち込む。数値部分は設定したいpythonの任意のバージョンを設定すること。
pyenv install 3.9.6
次のようなログが表示される。
・pyenvによるpythonの切り替え
ターミナルに次のコマンドを打ち込む。どのディレクトリ(フォルダ)でpythonコマンドを実行しても、ここで指定したpythonが動作するようになる。
pyenv global 3.9.6
仮に特定のディレクトリでのpythonで動作させる場合、次のコマンドを実行する。
pyenv local 3.9.6
・pyenvによるpythonの切り替え確認
ターミナルに次のように打ち込む。
python --version
次のようにpyenvで設定されたpythonのバージョンが表示される。
・pythonコマンドによるpythonの切り替え確認
ターミナルに次のように打ち込む。
python --version
次のようにpythonのバージョンが3.9.6(または任意で設定したpythonのバージョン)であることが確認できる。
***
【pyenvでpythonのバージョンが切り替わらない場合】
ターミナルで変更したいpythonのバージョンが3.9.6である場合、「 pyenv global 3.9.6」や「pyenv local 3.9.6 」と打ち込んだ後、「python --version 」でpythonのバージョンを確認しても、pythonバージョン3.9.6でpythonが切り替わらない場合がある。
その場合はHomeフォルダで作業しており、そのlocal環境により切り替わらないため、次のコマンドをターミナルに打ち込みフォルダを削除する。
rm ~/.python-version
それでも反映されない場合は、ターミナルに次のコマンドを打ち込むことで解決する。
eval "$(pyenv init -)"
4. ffmpegのインストール
「ターミナル」で次のように打ち込む。
brew install ffmpeg
次のようなログが表示される。終了まで5分程度かかる。
インストールが終わったときの様子。
「ターミナル」ので次のように打ち込み、ffmpegのバージョンを確認する。
brew info ffmpeg
次のようなログが表示されていれば、ffmpegをインストールできたか確認できる。
5.PIPのインストール
「ターミナル」で次のように打ち込み、PIPをインストールするためのファイルを取得する。
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
「ターミナル」で「ls」と打ち込むと次のように表示され、「get-pip.py」が取得できていることが確認できる。
「ターミナル」ので次のように打ち込み、PIPをインストールする。
python3 get-pip.py
「ターミナル」で次のように打ち込む
pip -v
次のようにバージョンが表示されれば、PIPのインストール完了
ーーー備考ーーー
python -m ensurepip --upgrade
6.Bar Chart Raceのインストール
「ターミナル」で次のように打ち込む
pip install bar_chart_race
次のようにログが表示され、最後に「Successfully」と記載があれば、bar chart raceのインストール完了。
最後にBar Chart Raceで必要なライブラリであるmatplotlib と pandasライブラリ有無を確認する。ターミナルに次のように打ち込む。
pip listす
するとpipでインストールしたライブラリのバージョンであるmatplotlib と pandasが確認できる。
7. グラフを表示させてみる
適当なテキストエディタでファイルをつくる。ここではテキストエディタはVisual Studioを利用し、次の内容を下記にあるbar chart raceから引用し、コピー&ペーストした。
import bar_chart_race as bcr
df = bcr.load_dataset('covid19_tutorial')
bcr.bar_chart_race(
df=df,
filename='covid19_horiz.mp4',
orientation='h',
sort='desc',
n_bars=6,
fixed_order=False,
fixed_max=True,
steps_per_period=10,
interpolate_period=False,
label_bars=True,
bar_size=.95,
period_label={'x': .99, 'y': .25, 'ha': 'right', 'va': 'center'},
period_fmt='%B %d, %Y',
period_summary_func=lambda v, r: {'x': .99, 'y': .18,
's': f'Total deaths: {v.nlargest(6).sum():,.0f}',
'ha': 'right', 'size': 8, 'family': 'Courier New'},
perpendicular_bar_func='median',
period_length=500,
figsize=(5, 3),
dpi=144,
cmap='dark12',
title='COVID-19 Deaths by Country',
title_size='',
bar_label_size=7,
tick_label_size=7,
shared_fontdict={'family' : 'Helvetica', 'color' : '.1'},
scale='linear',
writer=None,
fig=None,
bar_kwargs={'alpha': .7},
filter_column_colors=False)
その時のVisual Studioでの様子がこちら。
次にファイルを保存する。拡張子は「.py」にすること。ここではtestという名前をつけた。その時のVisual Studioでの名前をつけた時の様子とその時のフォルダの様子は次の通りである。
次にターミナルで作成したtest.pyを実行する。ターミナルに次のように打ち込む。
python test.py
その時の様子がこちら。
「test.py」を格納したフォルダに「covid19_horiz.mp4」が生成される。
MACにデフォルトで搭載されている「Quick Time Player」で確認した時の様子は次の通り。
ーーー備考ーーー
ここではわかりやすいためMACのトップのディレクトリでtest.pyを実行したが、デスクトップなどに「Bar_Chart_Race」などの名前のフォルダを作成し、そこにtest.pyを格納しpythonを実行することをオススメする。「Bar_Chart_Race」などの任意のディレクトリに移動したい場合はTerminalで次のコマンドを打つことで可能である。
cd Desktop
自分が今いる場所にどのようなフォルダがあるかは「ls」と打ち込めば次のように表示されわかる。
「cd Desktop」を行い、デスクトップに移動してきた時のターミナルの様子