If you are working with Python and trying to use the matplotlib library, you may encounter the “NameError: name ‘plt’ is not defined” error. In this tutorial, we will explore why this error occurs and the steps required to fix it such that your Python code can successfully run without errors.
We will cover common causes of the error and provide solutions to help you get your code up and running quickly. So, let’s get started!
Why does the NameError: name 'plt' is not defined
error occur?
This error occurs when you try to use the pyplot module from Matplotlib which is generally imported as plt
, but Python does not recognize it. This error can be frustrating, but it is usually easy to fix. In this tutorial, we will go through the steps to fix this error. The following can be the possible scenarios that may lead to this error.
- You have not imported the pyplot module from Matplotlib.
- You have imported the pyplot module using a different name.
How to fix the NameError: name 'plt' is not defined
?
Before we proceed with the above scenario and their solutions, make sure that you have the matplotlib
module installed. If matplolib
is not installed and you try to import it, you’ll get a ModuleNotFoundError
. Make sure that you have installed Matplotlib correctly and that it is up to date. You can check your installation by running the following command in your terminal or command prompt:
pip show matplotlib
This command will show you information about your Matplotlib installation, including the version number.
If you are using a virtual environment or a different Python environment, make sure matplotlib is installed in that environment.
Let’s now look at the above scenarios in detail that could result in the above error.
The plt
module is not imported
It can happen that you are trying to use the pyplot
module from Matploltib without even importing it. This is because Python does not recognize the a given library and its functions until it is imported into the code.
Introductory ⭐
- Harvard University Data Science: Learn R Basics for Data Science
- Standford University Data Science: Introduction to Machine Learning
- UC Davis Data Science: Learn SQL Basics for Data Science
- IBM Data Science: Professional Certificate in Data Science
- IBM Data Analysis: Professional Certificate in Data Analytics
- Google Data Analysis: Professional Certificate in Data Analytics
- IBM Data Science: Professional Certificate in Python Data Science
- IBM Data Engineering Fundamentals: Python Basics for Data Science
Intermediate ⭐⭐⭐
- Harvard University Learning Python for Data Science: Introduction to Data Science with Python
- Harvard University Computer Science Courses: Using Python for Research
- IBM Python Data Science: Visualizing Data with Python
- DeepLearning.AI Data Science and Machine Learning: Deep Learning Specialization
Advanced ⭐⭐⭐⭐⭐
- UC San Diego Data Science: Python for Data Science
- UC San Diego Data Science: Probability and Statistics in Data Science using Python
- Google Data Analysis: Professional Certificate in Advanced Data Analytics
- MIT Statistics and Data Science: Machine Learning with Python - from Linear Models to Deep Learning
- MIT Statistics and Data Science: MicroMasters® Program in Statistics and Data Science
🔎 Find Data Science Programs 👨💻 111,889 already enrolled
Disclaimer: Data Science Parichay is reader supported. When you purchase a course through a link on this site, we may earn a small commission at no additional cost to you. Earned commissions help support this website and its team of writers.
For example, let’s try to use pyplot
module without importing it and see what we get.
import numpy as np # note that plt is not imported # Generating synthetic data x = np.random.rand(50) y = x + np.random.rand(50)*0.2 # Creating scatter plot plt.scatter(x, y) plt.xlabel('X') plt.ylabel('Y') plt.title('Scatter plot of X and Y') plt.show()
Output:
--------------------------------------------------------------------------- NameError Traceback (most recent call last) Cell In[1], line 9 6 y = x + np.random.rand(50)*0.2 8 # Creating scatter plot ----> 9 plt.scatter(x, y) 10 plt.xlabel('X') 11 plt.ylabel('Y') NameError: name 'plt' is not defined
We get a NameError
stating that the name plt
is not defined. This is because we are trying to use plt
which is not imported. Use import matplotlib.pyplot as plt
to import the pyplot module with the name plt
.
import numpy as np import matplotlib.pyplot as plt # Generating synthetic data x = np.random.rand(50) y = x + np.random.rand(50)*0.2 # Creating scatter plot plt.scatter(x, y) plt.xlabel('X') plt.ylabel('Y') plt.title('Scatter plot of X and Y') plt.show()
Output:
Here, we are importing the pyplot module with the name plt first and then using it. You can see that we did not get any errors here.
The plt
module is imported using a different name
In the import statement import matplotlib.pyplot as plt
we are importing the pyplot module from matplotlib with the name plt
. Now, if you’re using a different name or just importing the pyplot
module without the name plt
. You’ll also run into the NameError: name 'plt' is not defined
if you try to use plt
in your code.
Let’s look at an example.
import numpy as np import matplotlib.pyplot as plot # Generating synthetic data x = np.random.rand(50) y = x + np.random.rand(50)*0.2 # Creating scatter plot plt.scatter(x, y) plt.xlabel('X') plt.ylabel('Y') plt.title('Scatter plot of X and Y') plt.show()
Output:
--------------------------------------------------------------------------- NameError Traceback (most recent call last) Cell In[1], line 9 6 y = x + np.random.rand(50)*0.2 8 # Creating scatter plot ----> 9 plt.scatter(x, y) 10 plt.xlabel('X') 11 plt.ylabel('Y') NameError: name 'plt' is not defined
We get a NameError: name 'plt' is not defined
. This is because we have imported the pyplot
module with the name plot
but we’re trying to use it using the name plt
.
To fix this error, you can either use the name that you have used in the import statement or import pyplot with the name plt. It is recommended that you use import matplotlib.pyplot as plt
as this is the syntax that is generally used and following this convention makes the code easier to read and debug.
Conclusion
In conclusion, the “NameError: name ‘plt’ is not defined” error is a common issue that can occur when using the Matplotlib library in Python. This error typically occurs when the user forgets to import the library or incorrectly imports it. To fix this error, you can simply import the Matplotlib library using the correct syntax and ensure that it is installed in your Python environment. By following the steps outlined in this tutorial, you should now be able to resolve the “NameError: name ‘plt’ is not defined” error and continue working with Matplotlib in your Python projects.