Skip to content

How to Solve 'No Module Named Matplotlib' Error

Updated on

There you are, sipping on your freshly brewed coffee, all set for another day of Python-ing, when suddenly, your code halts, staring back at you with the dreaded 'No Module Named Matplotlib' error. Instead of letting this ruin your day, let's take a deep dive into what this error means, why it occurs, and how to fix it.

But remember, in the grand scheme of programming, such hurdles are merely stepping stones that lead us to become better coders. So, let's conquer this error together, and in the process, become more proficient Pythonistas!

Understanding 'No Module Named Matplotlib' Error

Before we dive into the solutions, it's crucial to understand why this error is surfacing. As the name suggests, 'No Module Named Matplotlib' error occurs when Python cannot locate the Matplotlib module. The reasons can range from the module not being installed, Python checking the wrong location, multiple Python versions causing confusion, to using the incorrect command to run your script.

Let's break down these issues and explore their solutions:

Issue 1: Matplotlib Not Installed

One of the primary reasons for encountering the 'No Module Named Matplotlib' error is the absence of the Matplotlib library itself. It's as simple as it sounds - if the library isn't installed, Python won't be able to find it.

Solution: Install Matplotlib

To install Matplotlib, you can use pip, the de facto package installer for Python. In your terminal, type:

pip install matplotlib

For Python3 users, the command is slightly different:

pip3 install matplotlib

This simple command prompts pip to fetch the Matplotlib library from PyPi (Python Package Index) and install it into your Python environment.

Issue 2: Multiple Python Versions

Another common cause of this error is the existence of multiple Python versions on your machine. You might have Matplotlib installed for Python2, but you're trying to import it using Python3, or vice versa.

Solution: Align Python and Matplotlib Versions

Firstly, verify which Python version you're using. In your terminal, type:

python --version

For Python3:

python3 --version

Depending on your Python version, ensure you're installing Matplotlib for the corresponding Python version.

Running Python Scripts: Hashbang to the Rescue

Now, let's discuss a scenario mentioned in the example that inspired this article. The user was able to run their script using python ./plot_test.py successfully but encountered the 'No Module Named Matplotlib' error while running ./plot_test.py.

The difference lies in the way these two commands work. When you explicitly use python or python3 before your script, it will use the Python interpreter you specified (python2 or python3). However, when you're trying to run the script as ./plot_test.py, your system checks the 'hashbang' (#!) at the start of the script to determine which interpreter to use.

If your hashbang is #!/usr/bin/python, it will use Python2. However, if it's #!/usr/bin/env python3, it will use Python3. Misalignment between the Python version

and the version for which Matplotlib is installed can lead to our infamous 'No Module Named Matplotlib' error.

Solution: Correct Hashbang

To avoid this issue, ensure your hashbang matches the Python version for which Matplotlib is installed. If it's installed for Python2, use #!/usr/bin/python. If for Python3, use #!/usr/bin/env python3.

As we continue our exploration, let's dive deeper into more complex scenarios that might lead to the 'No Module Named Matplotlib' error. We'll also answer some frequently asked questions about this error towards the end of the article.

Issue 3: Python Checking the Wrong Location

Python, when looking for installed modules, searches in specific directories defined in its PATH. If your Matplotlib module is installed in a location not included in the PATH, Python won't be able to find it, resulting in our error.

Solution: Add Matplotlib's Path to Python's Path

You can use the sys module to add the path where Matplotlib is installed to Python's path. Here's a small snippet to illustrate how:

import sys
sys.path.append('path_to_matplotlib')

Replace 'path_to_matplotlib' with the actual path of your Matplotlib installation.

Issue 4: Corrupted or Incomplete Matplotlib Installation

At times, a corrupted or incomplete installation of Matplotlib can cause the 'No Module Named Matplotlib' error. This might occur due to a faulty installation process, network issues during installation, or system crashes.

Solution: Reinstall Matplotlib

In this case, it's best to uninstall Matplotlib and then reinstall it. You can uninstall using the pip uninstall command and reinstall it as we've discussed earlier.

pip uninstall matplotlib
pip install matplotlib

Replace pip with pip3 if you're using Python3.

Alternative to Matplotlib: Visualize Data with PyGWalker

Besides using Matplotlib to visualize your pandas dataframe, here is an alternative, Open Source python library that can help you create data visualization with ease: PyGWalker (opens in a new tab).

PyGWalker for Data visualization (opens in a new tab)

No need to complete complicated processing with Python coding anymore, simply import your data, and drag and drop variables to create all kinds of data visualizations! Here's a quick demo video on the operation:


Here's how to use PyGWalker in your Jupyter Notebook:

pip install pygwalker
import pygwalker as pyg
gwalker = pyg.walk(df)

Alternatively, you can try it out in Kaggle Notebook/Google Colab:

Run PyGWalker in Kaggle Notebook (opens in a new tab)Run PyGWalker in Google Colab (opens in a new tab)Give PyGWalker a ⭐️ on GitHub (opens in a new tab)
Run PyGWalker in Kaggle Notebook (opens in a new tab)Run PyGWalker in Google Colab (opens in a new tab)Run PyGWalker in Google Colab (opens in a new tab)

PyGWalker is built on the support of our Open Source community. Don't forget to check out PyGWalker GitHub (opens in a new tab) and give us a star!

FAQ Section

  1. Why do I encounter the 'No Module Named Matplotlib' error even after a successful installation?

It's possible that you're trying to run the script using a different Python version than the one for which Matplotlib is installed. Check your Python version and ensure it aligns with the Matplotlib installation.

  1. Why does the error persist even after correcting the Python version?

You might be experiencing this due to a corrupted or incomplete Matplotlib installation, or Python might be checking the wrong location for installed modules. You can try reinstalling Matplotlib or add Matplotlib's path to Python's PATH.

  1. Can I avoid the 'No Module Named Matplotlib' error by installing Matplotlib in a specific directory?

Python searches for installed modules in specific directories defined in its PATH. As long as the directory where Matplotlib is installed is included in Python's PATH, Python should be able to find it.