Python グラフ描画のプログラム実行でエラー

概要

<発生問題>
PythonのプログラムをIDLEで実行したところエラーが表示された。
<原因>
グラフ描画ライブラリ「matplotlib」が実行PCにインストールされていないため。
<対応>
Pythonパッケージをインストールする pip を使用して「matplotlib」をインストールした。

発生問題の内容

IDLEで以下の内容のファイルを作成し実行したところ,エラーが表示された。
Pythonコード

import matplotlib.pyplot as plt

idx = ['A','B','C']
height = [10,20,15]

plt.bar(idx,height)
plt.show()

エラー内容(実行結果)

============ RESTART: C:\test\sample.py ============
Traceback (most recent call last):
File "C:\test\sample.py", line 1, in
import matplotlib.pyplot as plt
ModuleNotFoundError: No module named 'matplotlib'

「No module named 'matplotlib'」なので,グラフ描画に利用するモジュールがないことによるエラー

matplotlib のインストール

実行PCはインターネットに接続できる環境だったため,以下の手順で matplotlib をインストールした。

  1. Windowsコマンドプロンプトを起動
    コマンドプロンプトの起動方法>
    Windowsの検索ウィンドウ(スタートボタン横の虫眼鏡)にcmdを入力して,検索結果から「コマンドプロンプト」を選択

  2.  
  3. コマンドプロンプトに「pip install matplotlib」を入力

    コマンドプロンプトの入力内容>
    ※ C:\Users\xxxxx> の次が入力したコマンド(赤文字箇所)

#
# パッケージの確認コマンド(インストール前)
#
C:\Users\xxxxx>pip list
Package Version
−--------- --------
pip 21.1.1
setuptools 56.0.0
    
#
# パッケージのインストールコマンド
#
C:\Users\xxxxx>pip install matplotlib
Collecting matplotlib
 :
(インストール処理が行われるので,プロンプト " > " が戻ってくるまで待つ)
 :
Successfully installed cycler-0.11.0 fonttools-4.32.0 kiwisolver-1.4.2 matplotlib-3.5.1 numpy-1.22.3 packaging-21.3 pillow-9.1.0 pyparsing-3.0.8 python-dateutil-2.8.2 six-1.16.0
    
#
# パッケージの確認コマンド(インストール後)
#
C:\Users\xxxxx>pip list
Package Version
−-------------- --------
cycler 0.11.0
fonttools 4.32.0
kiwisolver 1.4.2
matplotlib 3.5.1
numpy 1.22.3
packaging 21.3
Pillow 9.1.0
pip 22.0.4
pyparsing 3.0.8
python-dateutil 2.8.2
setuptools 56.0.0
six 1.16.0

ここでは,確認コマンド→インストールコマンド→確認コマンドの順に実行し,インストール後にパッケージが増えていることを確認した。

 (2023-01-16追記)pipコマンドが動かない場合は「Python pipが動作しない場合の対応 - 勉強ボックス管理者ブログ」を参照してください。
 



オフライン環境でのインストール

<準備>
オンライン環境で「pip download -d 保存先 matplotlib」によりファイル取得
 インストール対象のPCと同じ機種で実施するのが確実

<オフラインのPCでインストール>

  1. 取得したファイルをフォルダごと対象PCの任意のフォルダにコピー
  2. Windowsコマンドプロンプトを起動
  3. コマンドプロンプトで手順1でコピーしたフォルダに移動(現在のディレクトリを変更)
    ディレクトリ変更コマンド: cd 例)> cd C:\work\libfiles
  4. 依存関係を無視するオプションをつけてインストールコマンドをファイル分実行

    pip install --no-deps ファイル名
     ※ ファイル名は取得したものに合わせること

    pip install --no-deps cycler-0.11.0-py3-none-any.whl
    pip install --no-deps fonttools-4.33.3-py3-none-any.whl
    pip install --no-deps kiwisolver-1.4.2-cp310-cp310-win_amd64.whl
    pip install --no-deps matplotlib-3.5.2-cp310-cp310-win_amd64.whl
    pip install --no-deps numpy-1.22.3-cp310-cp310-win_amd64.whl
    pip install --no-deps packaging-21.3-py3-none-any.whl
    pip install --no-deps Pillow-9.1.0-cp310-cp310-win_amd64.whl
    pip install --no-deps pyparsing-3.0.8-py3-none-any.whl
    pip install --no-deps python_dateutil-2.8.2-py2.py3-none-any.whl
    pip install --no-deps six-1.16.0-py2.py3-none-any.whl

インストール対象のPCが多い場合は,コマンドを記載したバッチファイルを作成して実行すると手間が省ける。
(バッチファイル:中身は通常のテキストファイルで,拡張子を .bat または .cmd に変更して使う)



Matplotlib ドキュメント
Matplotlib documentation — Matplotlib 3.6.2 documentation

 

関連記事

kinutani.hateblo.jp