Lesson 12 の 12.3〜12.5 では Matplotlib を使ったグラフ描画、つまりデータの可視化を行います。Matplotlib は Python では極めてポピュラーな可視化ツール(グラフ描画ツール)ですが、標準的な Python 環境には含まれておらず、ユーザがインストールする必要があります。
Matplotlib プロジェクトのページは https://matplotlib.org/ です。トップページを以下に示しますが、赤い矢印部分のリンクなどを見ると、どのようなグラフの描画ができるか分かると思います。こんな形のグラフで出したい、どんな形で出せるだろう、と思った時は参照すると良いです。
様々なインストール方法があるとは思いますが、ここでは Python 環境にデフォルトで入っていて、最もシンプルな pip コマンドによるインストール方法を示します。
多様な環境管理ツール |
---|
Python には pyenv や anaconda など多様な環境管理ツールが並立している上に、それらを一つのマシンにインストールして切り替えながら使うようなことが困難、という状況にあります。便利なツールがあることは事実ですが、例えばこんな記事 など、いろいろ難しいことがある(=不慣れな人には荷が重い)と分かる資料を見つけられるでしょう。 |
利用するコマンドは pip3 です。pip3 list とコマンド入力することで、現在インストールされているパッケージの一覧を見ることができます。
黄緑色の WARNING (警告)が気になりますね。
WARNING: You are using pip version 21.2.4; however, version 23.3.1 is available. You should consider upgrading via the ‘/Library/Developer/CommandLineTools/usr/bin/python3 -m pip install –upgrade pip’ command.**
これは macOS 標準の Python 環境は最新版に比べていくらか前のものがインストールされており、そこに含まれていた pip3 コマンドのバージョン(21.2.4)が古いもので、現在は 23.3.1 が利用可能だから、アップグレードを検討すべきだ、というものです。
この教材を作成している教員は過去にこの pip のバージョンを無思慮に上げてしまい、各種パッケージのバージョン不整合に悩まされた経験があるため、この科目では pip や pyhon そのもののバージョンは macOS 標準のものからあまりアップグレードしない方向で運用します。この警告はpipを使う度に出るでしょうが、気にしないでください。
まず matplotlib がインストールされていないことを確認しましょう。インタラクティブモードで Python を起動して、matplotlib を import してください。インストールされていることの確認だけならコマンドは import matplotlib だけでも良いのですが、教科書 p.347 に合わせて、import matplotlib.pyplot as plt としましょうか。
まだインストールされていない状態であれば、以下のようにエラーとなるはずです。
yasuda@Slack 14 % python3
....(メッセージ略)
>>> import matplotlib.pyplot as plt <<< コマンド入力
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'matplotlib' <<< モジュールが見つからない、とエラー
>>>
もしエラーメッセージが出なかった場合は、何らかの理由で既に matplotlib が入っています。
(心当たりがない場合は「自分の環境をコントロールできないままイジっている」可能性が高いです。そのうちに Python 実行環境を壊してしまいそうで怖いです、、、)
pip3 install --prefer-binary matplotlib とコマンド実行すると、Matplotlib がダウンロードされ、インストールされます。実行時のログのはじめの方をつけておきます。ダウンロード作業を含めて何分か時間が掛かるかもしれません。
yasuda@Lily 04 % pip3 install --prefer-binary matplotlib
Defaulting to user installation because normal site-packages is not writeable
Collecting matplotlib
Downloading matplotlib-3.8.1-cp39-cp39-macosx_11_0_arm64.whl (7.5 MB)
|████████████████████████████████| 7.5 MB 4.2 MB/s
Collecting importlib-resources>=3.2.0
Downloading importlib_resources-6.1.1-py3-none-any.whl (33 kB)
Collecting fonttools>=4.22.0
..... 続く
最後に以下のように Successfully installed… と表示されておればインストールは成功です。
様々なパッケージがインストールされたことがレポートされていますが、そこに matplotlib が含まれていることがわかります。
pip3 list とコマンド入力して、インストールされているパッケージの一覧を再確認します。先ほど(Matplotlib のインストール前)に比べてずいぶん増えていますね。
yasuda@Lily 04 % pip3 list
Package Version
------------------- -------
altgraph 0.17.2
contourpy 1.2.0
cycler 0.12.1
fonttools 4.44.3
future 0.18.2
importlib-resources 6.1.1
kiwisolver 1.4.5
macholib 1.15.2
matplotlib 3.8.1
numpy 1.26.2
packaging 23.2
Pillow 10.1.0
pip 21.2.4
pyparsing 3.1.1
python-dateutil 2.8.2
setuptools 58.0.4
six 1.15.0
wheel 0.37.0
zipp 3.17.0
yasuda@Lily 04 %
matplotlib はもちろん含まれていますが、numpy など多くのパッケージが追加されたことがわかります。
インタラクティブモードで Python を起動して、matplotlib を import してください。インストールされていることの確認だけならコマンドは import matplotlib だけでも良いのですが、教科書 p.347 に合わせて、import matplotlib.pyplot as plt としましょうか。
yasuda@Slack 14 % python3
....(メッセージ略)
>>> import matplotlib.pyplot as plt <<< コマンド入力
>>> <<< 何も言わず次のコマンドプロンプトが出たらOK
注意:初回の起動は Matplotlib is building the font cache; this may take a moment. と表示されて1分程度待たされるかも知れません。
もし matplotlib が適切にインストールされていない場合は、以下のようなエラーメッセージが出ます。
yasuda@Slack 14 % python3
....(メッセージ略)
>>> import matplotlib.pyplot as plt <<< コマンド入力
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'matplotlib' <<< モジュールが見つからない、とエラー
>>>
pip3 によるインストール作業が「Successfully」で完了しており、かつコマンドのタイプミスでないことが確認できれば、あまり変なことをせずに担当教員と相談するのが良いでしょう。
import できたら、それに続けて以下のように入力して動作確認をしましょう。小さな棒グラフを作る手続きです。
>>> x = ["a", "b", "c", "d"] <<< x に横軸のラベルを用意(第一要素のラベルは "a")
>>> height = [10, 20, 30, 40] <<< height に縦軸の値を用意(第一要素の値は10)
>>> plt.bar(x, height) <<< x と height を使って棒グラフを作成
<BarContainer object of 4 artists> <<< オブジェクトができた、という報告
>>>
この plt.bar(x, height) が正しく実行できたときは、Mac の Dock (Finder 画面の下にあるアプリケーションのアイコンが並んでいるところ)の右端あたりに、以下のような Matplotlib のアイコンが現れます。
そうではなく、plt.bar(x, height) を実行した時に以下のようなエラーが出たら、import の手続きを確認してください。タイプミスか、あるいは Matplotlib のインストールに失敗しています。
>>> plt.bar(x, height)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'plt' is not defined
>>>
続けて plt.show() とします。
>>> plt.show()
すると画面上にグラフが新しいウィンドウとして開くでしょう。このグラフ・ウィンドウの左下隅のアイコンをクリックすると、保存や拡大・調整などが可能です。
このウィンドウが開いている間、インタラクティブモードでは plt.show() 処理の実行中となっているため、Python インタプリタのプロンプト「 >>> 」は表示されず、次の入力もできません。グラフ・ウィンドウを(左上の赤い「閉じる」ボタンをクリックしてウィンドウを閉じると、ようやくプロンプトが表示されます。
>>> plt.show()
>>>
これで Matplotlib がインストールされ、正常に動作することが確認できました。