Skip to content

Matplotlib Mini Project (EDA charts pack)

Create a reusable set of plots you can apply to any dataset:

  • Histogram (distribution)
  • Bar chart (category counts)
  • Line plot (trend)
  • Scatter plot (relationship)

This mirrors how McKinney approaches exploratory data analysis (EDA) in the book: before modelling anything, look at the shape of your data (histogram), how categories compare (bar chart), how things move over time (line plot), and whether two variables relate (scatter plot). Four charts, four different questions.

diagram An EDA charts pack mermaid
Four standard questions about a dataset, each answered by one chart type.
Sample data
import pandas as pd
 
# Small example you can replace with any CSV
df = pd.DataFrame({
    "date": pd.date_range("2025-01-01", periods=10, freq="D"),
    "orders": [120, 140, 130, 160, 155, 170, 180, 175, 190, 200],
    "city": ["Pune", "Delhi", "Pune", "Delhi", "Pune", "Mumbai", "Pune", "Delhi", "Mumbai", "Pune"],
    "amount": [100, 140, 110, 160, 130, 90, 180, 150, 120, 200],
})
Histogram
import matplotlib.pyplot as plt
 
plt.figure(figsize=(7, 4))
plt.hist(df["amount"], bins=8, edgecolor="black")
plt.title("Amount distribution")
plt.xlabel("Amount")
plt.ylabel("Count")
plt.tight_layout()
plt.show()
Bar counts
import matplotlib.pyplot as plt
 
counts = df["city"].value_counts()
 
plt.figure(figsize=(7, 4))
plt.bar(counts.index, counts.values)
plt.title("Orders count by city")
plt.xlabel("City")
plt.ylabel("Count")
plt.tight_layout()
plt.show()
Trend
import matplotlib.pyplot as plt
 
plt.figure(figsize=(7, 4))
plt.plot(df["date"], df["orders"], marker="o")
plt.title("Orders trend")
plt.xlabel("Date")
plt.ylabel("Orders")
plt.xticks(rotation=20)
plt.tight_layout()
plt.show()
Scatter
import matplotlib.pyplot as plt
 
plt.figure(figsize=(7, 4))
plt.scatter(df["orders"], df["amount"], alpha=0.7)
plt.title("Orders vs amount")
plt.xlabel("Orders")
plt.ylabel("Amount")
plt.tight_layout()
plt.show()

Save some plots with plt.savefig(...) and reuse this structure for your datasets.

You’ve completed the Matplotlib phase — continue to the next phase to bring these charts together with pandas’ own .plot() shortcuts.

Exercise 3 – Trend and relationship together

Section titled “Exercise 3 – Trend and relationship together”

pch.coffeeTagline

pch.coffeeCta

pch.feedbackHeading

pch.feedbackSubheading