🎨 Matplotlib Foundations: Getting Started
Imagine you have a magic paintbrush that turns numbers into beautiful pictures. That’s Matplotlib!
🌟 What is Matplotlib?
Think of Matplotlib like a coloring book for data.
You know how you use crayons to draw pictures? Well, computers have lots of numbers, but numbers alone are boring. Matplotlib is like giving your computer crayons so it can turn those boring numbers into colorful charts and graphs!
The Story of Matplotlib
Once upon a time, a scientist named John Hunter was tired of looking at endless rows of numbers. He thought, “What if I could see these numbers as pictures?”
So he created Matplotlib in 2003 – a tool that transforms data into visual stories.
graph TD A[📊 Boring Numbers] --> B[🎨 Matplotlib] B --> C[📈 Beautiful Charts!]
Why Use Matplotlib?
| Benefit | What It Means |
|---|---|
| Free | Costs nothing! |
| Powerful | Makes any chart you can imagine |
| Popular | Used by millions of people |
| Works Everywhere | Python on any computer |
🔧 Installing Matplotlib
Before you can paint, you need to buy the paintbrush!
Installing Matplotlib is like downloading an app on your phone. You ask Python’s “app store” (called pip) to get it for you.
How to Install
Open your terminal (the black screen where you type commands) and type:
pip install matplotlib
That’s it! Python goes to the internet, downloads Matplotlib, and sets it up for you.
Check If It Worked
After installing, test it:
import matplotlib
print(matplotlib.__version__)
If you see a number like 3.7.1, you’re ready to go!
📦 Importing Matplotlib
Installing is like buying the paintbrush. Importing is like taking it out of the box to use it.
Every time you want to use Matplotlib, you need to tell Python: “Hey, I want to use that painting tool!”
The Magic Words
import matplotlib.pyplot as plt
Let’s break this down:
| Part | What It Means |
|---|---|
import |
“I want to use…” |
matplotlib.pyplot |
“…the plotting part of Matplotlib…” |
as plt |
“…and I’ll call it ‘plt’ for short” |
Why “plt”?
Imagine if your friend’s name was “Bartholomew.” You’d probably call him “Bart” for short, right?
Same idea! matplotlib.pyplot is long, so everyone calls it plt.
# Long way (works but annoying)
matplotlib.pyplot.plot([1, 2, 3])
# Short way (everyone uses this!)
plt.plot([1, 2, 3])
🎯 Pyplot Module Basics
Pyplot is like a remote control for making charts. It has buttons for everything you need!
What Can Pyplot Do?
graph TD A[plt - Your Remote Control] --> B[📈 Make Line Charts] A --> C[📊 Make Bar Charts] A --> D[🥧 Make Pie Charts] A --> E[🔵 Make Scatter Plots] A --> F[🎨 Add Colors & Labels]
Common Pyplot Commands
Think of these as buttons on your remote:
| Command | What It Does |
|---|---|
plt.plot() |
Draw lines |
plt.show() |
Display the picture |
plt.title() |
Add a title |
plt.xlabel() |
Label the bottom |
plt.ylabel() |
Label the side |
Simple Example
import matplotlib.pyplot as plt
# Press the "draw" button
plt.plot([1, 2, 3, 4])
# Press the "show" button
plt.show()
This draws a line going up from 1 to 4. Simple!
📊 Creating and Displaying Plots
Now let’s make our first real picture!
Your First Plot - Step by Step
Imagine you tracked how many cookies you ate each day:
- Monday: 2 cookies
- Tuesday: 4 cookies
- Wednesday: 1 cookie
- Thursday: 5 cookies
Let’s turn this into a picture!
import matplotlib.pyplot as plt
# Your data (days and cookies)
days = [1, 2, 3, 4]
cookies = [2, 4, 1, 5]
# Draw the line
plt.plot(days, cookies)
# Add labels so people understand
plt.title('My Cookie Diary')
plt.xlabel('Day')
plt.ylabel('Cookies Eaten')
# Show the picture!
plt.show()
What Each Line Does
graph TD A[plt.plot] --> B[Draws the line] C[plt.title] --> D[Adds title at top] E[plt.xlabel] --> F[Labels bottom axis] G[plt.ylabel] --> H[Labels left axis] I[plt.show] --> J[Displays everything!]
Making It Prettier
Add colors and markers like stickers!
import matplotlib.pyplot as plt
days = [1, 2, 3, 4]
cookies = [2, 4, 1, 5]
# 'ro-' means: red, circles, line
plt.plot(days, cookies, 'ro-')
plt.title('My Cookie Diary')
plt.xlabel('Day')
plt.ylabel('Cookies Eaten')
plt.show()
Color & Style Cheat Sheet
| Code | Meaning |
|---|---|
r |
Red |
b |
Blue |
g |
Green |
o |
Circle markers |
s |
Square markers |
- |
Solid line |
-- |
Dashed line |
🔢 NumPy Array Integration
NumPy is Matplotlib’s best friend. They work together like peanut butter and jelly!
What is NumPy?
NumPy is a tool for working with lots of numbers quickly. Think of it as a super-fast calculator that can handle millions of numbers at once.
Why Use NumPy with Matplotlib?
Regular Python lists work fine for small data. But for big data (thousands of numbers), NumPy is 100x faster!
import matplotlib.pyplot as plt
import numpy as np
# NumPy creates 100 numbers from 0 to 10
x = np.linspace(0, 10, 100)
# Calculate y = sin(x) for all 100 numbers!
y = np.sin(x)
# Plot the smooth wave
plt.plot(x, y)
plt.title('A Beautiful Sine Wave')
plt.show()
NumPy Functions You’ll Love
| Function | What It Does |
|---|---|
np.linspace(0, 10, 100) |
Makes 100 evenly spaced numbers from 0 to 10 |
np.sin(x) |
Calculates sine for every number |
np.cos(x) |
Calculates cosine for every number |
np.random.rand(10) |
Makes 10 random numbers |
Example: Random Scatter Plot
import matplotlib.pyplot as plt
import numpy as np
# Make 50 random points
x = np.random.rand(50)
y = np.random.rand(50)
# Scatter plot (dots instead of lines)
plt.scatter(x, y)
plt.title('Random Dots!')
plt.show()
🐼 Pandas DataFrame Plotting
Pandas is another friend of Matplotlib. Pandas is amazing at organizing data in tables (like Excel).
What is a DataFrame?
A DataFrame is like a spreadsheet. It has rows and columns with labels.
import pandas as pd
# Create a simple table
data = {
'Day': ['Mon', 'Tue', 'Wed', 'Thu'],
'Cookies': [2, 4, 1, 5],
'Milk': [1, 2, 1, 3]
}
df = pd.DataFrame(data)
print(df)
Output:
Day Cookies Milk
0 Mon 2 1
1 Tue 4 2
2 Wed 1 1
3 Thu 5 3
Plotting Directly from Pandas
The magic: DataFrames can plot themselves!
import pandas as pd
import matplotlib.pyplot as plt
data = {
'Day': ['Mon', 'Tue', 'Wed', 'Thu'],
'Cookies': [2, 4, 1, 5]
}
df = pd.DataFrame(data)
# One line to plot!
df.plot(x='Day', y='Cookies', kind='bar')
plt.title('Cookie Chart')
plt.show()
Types of Pandas Plots
kind= |
What You Get |
|---|---|
'line' |
Line chart |
'bar' |
Bar chart |
'barh' |
Horizontal bars |
'pie' |
Pie chart |
'scatter' |
Scatter plot |
Example: Multiple Lines
import pandas as pd
import matplotlib.pyplot as plt
data = {
'Day': [1, 2, 3, 4],
'Cookies': [2, 4, 1, 5],
'Milk': [1, 2, 1, 3]
}
df = pd.DataFrame(data)
# Plot both Cookies and Milk
df.plot(x='Day', y=['Cookies', 'Milk'])
plt.title('Snack Tracker')
plt.legend()
plt.show()
🎉 Putting It All Together
You’ve learned the whole foundation! Here’s a complete example:
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
# Create data with NumPy
x = np.array([1, 2, 3, 4, 5])
y = x ** 2 # Square each number
# Put in a Pandas DataFrame
df = pd.DataFrame({'X': x, 'Y Squared': y})
# Plot with Matplotlib
plt.figure(figsize=(6, 4))
plt.plot(df['X'], df['Y Squared'],
'b^-', linewidth=2, markersize=10)
plt.title('Numbers and Their Squares')
plt.xlabel('Number')
plt.ylabel('Squared')
plt.grid(True)
plt.show()
🗺️ Your Learning Journey
graph TD A[1. What is Matplotlib?] --> B[2. Install It] B --> C[3. Import It] C --> D[4. Learn Pyplot Basics] D --> E[5. Create Plots] E --> F[6. Use NumPy Arrays] F --> G[7. Plot from Pandas] G --> H[🎨 You're Ready!]
💡 Quick Reference
| Task | Code |
|---|---|
| Import | import matplotlib.pyplot as plt |
| Basic plot | plt.plot(x, y) |
| Show plot | plt.show() |
| Add title | plt.title('My Title') |
| Label X axis | plt.xlabel('X Label') |
| Label Y axis | plt.ylabel('Y Label') |
| NumPy array | import numpy as np |
| Pandas plot | df.plot(x='col1', y='col2') |
You did it! 🎊 You now understand the foundations of Matplotlib. Go make some beautiful visualizations!