Technology • 2024-07-28

Python Data Visualization for Beginners: Matplotlib & Seaborn Guide

Learn Python data visualization from scratch — line charts, bar graphs, heatmaps, and scatter plots using Matplotlib and Seaborn.

PythonData VisualizationMatplotlibTechnology
⏱ 1 min read

Why Data Visualization Matters

Data visualization transforms raw numbers into visual insights. Python's Matplotlib and Seaborn are the most widely used libraries for data viz — in data science, finance, research, and business analytics. Used extensively in Indian IT companies and analytics roles.

Setting Up

pip install matplotlib seaborn pandas numpy

import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
import numpy as np

Line Chart with Matplotlib

months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun']
sales = [12000, 15000, 13500, 18000, 21000, 19000]

plt.figure(figsize=(10, 6))
plt.plot(months, sales, marker='o', color='royalblue', linewidth=2)
plt.title('Monthly Sales 2024', fontsize=16)
plt.xlabel('Month')
plt.ylabel('Sales (₹)')
plt.grid(True, alpha=0.3)
plt.tight_layout()
plt.show()

Bar Chart

categories = ['Electronics', 'Fashion', 'Food', 'Books', 'Home']
values = [45000, 32000, 28000, 15000, 38000]

plt.figure(figsize=(10, 6))
plt.bar(categories, values, color=['#2196F3', '#4CAF50', '#FF9800', '#9C27B0', '#F44336'])
plt.title('Sales by Category')
plt.ylabel('Revenue (₹)')
plt.show()

Seaborn Heatmap

# Correlation heatmap
df = pd.DataFrame(np.random.randn(100, 5), columns=['A','B','C','D','E'])
correlation = df.corr()

plt.figure(figsize=(8, 6))
sns.heatmap(correlation, annot=True, cmap='coolwarm', center=0)
plt.title('Correlation Matrix')
plt.show()

Scatter Plot

x = np.random.normal(170, 10, 200)  # Height
y = np.random.normal(65, 8, 200)    # Weight

plt.figure(figsize=(8, 6))
plt.scatter(x, y, alpha=0.6, color='steelblue')
plt.xlabel('Height (cm)')
plt.ylabel('Weight (kg)')
plt.title('Height vs Weight Scatter Plot')
plt.show()

Saving Charts

# Save as PNG (for reports) or SVG (for web)
plt.savefig('chart.png', dpi=300, bbox_inches='tight')
plt.savefig('chart.svg', format='svg')