Skip to content

matplotlibのModuleNotFoundError: 'matplotlib.backends.registry' 解決法

問題の背景

Pythonのデータ可視化ライブラリであるmatplotlibを使用中に、以下のエラーが発生するケースがあります:

python
ModuleNotFoundError: No module named 'matplotlib.backends.registry'

このエラーは通常、以下の状況で発生します:

  • 古いバージョンのmatplotlibを使用している
  • インストールが破損している
  • seaborn-whitegridなど非推奨のスタイル設定を試みている

原因分析

エラーが発生する主な要因は3つあります:

  1. matplotlibのインストール破損
    パッケージのインストールに失敗し、重要なモジュールが欠損状態になる

  2. スタイル名の非推奨化
    plt.style.use('seaborn-whitegrid')は新しいバージョンで利用不可に

    python
    # 無効な記述例
    plt.style.use('seaborn-whitegrid')  # 非推奨
  3. パッケージの残存ファイル
    不完全なアンインストールにより~atplotlib等の残存ファイルがエラーの原因に

解決手順

方法1: 強制再インストール(推奨)

  1. 既存パッケージのアンインストール

    bash
    pip uninstall -y matplotlib seaborn
  2. 依存関係なしで再インストール

    bash
    pip install --force-reinstall --no-cache-dir --no-deps matplotlib
    pip install --force-reinstall --no-cache-dir --no-deps seaborn
  3. 依存関係を追加インストール

    bash
    pip install numpy pillow pyparsing cycler python-dateutil

方法2: 手動で残存ファイル削除(方法1が失敗する場合)

  1. Pythonのパッケージディレクトリを開く

    • 通常のパス: C:\Users\<ユーザー名>\AppData\Local\Programs\Python\<バージョン>\Lib\site-packages\
  2. 以下のファイル/フォルダを削除:

    • matplotlib(フォルダ全体)
    • mpl_toolkits(フォルダ)
    • ~atplotlib(チルダ付きファイル)
    • matplotlib-*.dist-info(メタデータファイル)

警告

削除操作は注意して行ってください。他のパッケージファイルを誤って削除しないようご注意ください

方法3: 新しいスタイル設定方法の適用

インストール修正後、最新のスタイル設定方法を使用:

python
# 推奨される方法
%matplotlib inline
import matplotlib.pyplot as plt
import seaborn as sns

# Seabornを使用したスタイル設定
sns.set_theme(style="whitegrid")  # 最新のテーマ設定API

# またはMatplotlibネイティブの設定
plt.style.use('seaborn-v0_8-whitegrid')  # v0.8互換モード

動作確認コード

正しくインストールできたか確認するテストコード:

python
%matplotlib inline
import matplotlib.pyplot as plt
import seaborn as sns
sns.set_theme(style="whitegrid")
import numpy as np

# サンプルプロットの生成
fig, ax = plt.subplots()
x = np.linspace(0, 10, 100)
ax.plot(x, np.sin(x))
ax.set_title("動作確認プロット")
plt.show()

補足事項

  • Jupyterユーザー向け注意点
    環境によっては追加で以下が必要:

    bash
    pip install --upgrade ipython jupyter
  • バージョン互換性
    Python 3.13では以下のバージョン確認を推奨:

    python
    import matplotlib
    print(matplotlib.__version__)  # 3.8.0以上が必要
  • インストール確認方法
    正しいスタイルが適用できているか確認:

    python
    print(plt.style.available)  # 有効スタイル一覧表示

::: success ベストプラクティス

  1. パッケージ管理にvirtualenvcondaを使用する
  2. seaborn.set_theme()でスタイル設定を行う
  3. 定期的にpip list --outdatedで更新確認を ::>

結果例

正常に動作すると以下のような出力が得られます:

動作確認サンプル図形白色グリッド背景のサイン波形