Trực Quan Hóa Dữ Liệu Bằng Python: Matplotlib Và Seaborn Từ Cơ Bản
Chia sẻ
"Hướng dẫn tạo biểu đồ chuyên nghiệp bằng Matplotlib và Seaborn — bar chart, line chart, scatter plot, heatmap, histogram — với code Python dễ hiểu."
1. Tại Sao Cần Trực Quan Hóa Dữ Liệu?
Một bảng số liệu 1000 dòng không ai muốn đọc, nhưng một biểu đồ đẹp thì ai cũng hiểu ngay. Python cung cấp 2 thư viện mạnh mẽ để trực quan hóa dữ liệu:
Matplotlib: Thư viện gốc, linh hoạt cao, tuỳ biến mọi chi tiết
Seaborn: Xây dựng trên Matplotlib, tự động đẹp và thống kê
2. Cài Đặt
pip install matplotlib seaborn pandas3. Matplotlib Cơ Bản
3.1. Bar Chart — Biểu đồ cột
import matplotlib.pyplot as plt
categories = ["Q1", "Q2", "Q3", "Q4"]
revenue = [150, 230, 180, 310]
plt.figure(figsize=(8, 5))
plt.bar(categories, revenue, color="#16a34a", edgecolor="white")
plt.title("Doanh Thu Theo Quý", fontsize=16, fontweight="bold")
plt.xlabel("Quý")
plt.ylabel("Doanh thu (triệu VND)")
plt.tight_layout()
plt.savefig("doanh_thu.png", dpi=150)
plt.show()3.2. Line Chart — Biểu đồ đường
months = range(1, 13)
sales = [120, 135, 150, 142, 165, 190, 210, 195, 220, 240, 260, 310]
plt.figure(figsize=(10, 5))
plt.plot(months, sales, marker="o", color="#2563eb", linewidth=2)
plt.fill_between(months, sales, alpha=0.1, color="#2563eb")
plt.title("Xu Hướng Doanh Thu 12 Tháng")
plt.xlabel("Tháng")
plt.ylabel("Doanh thu")
plt.grid(True, alpha=0.3)
plt.show()4. Seaborn — Biểu Đồ Thống Kê Đẹp
4.1. Heatmap — Bản đồ nhiệt
import seaborn as sns
import pandas as pd
import numpy as np
# Tạo dữ liệu correlation
df = pd.DataFrame(np.random.randn(100, 5), columns=["Sales", "Profit", "Cost", "Marketing", "Customers"])
plt.figure(figsize=(8, 6))
sns.heatmap(df.corr(), annot=True, cmap="RdYlGn", center=0, fmt=".2f")
plt.title("Ma Trận Tương Quan")
plt.tight_layout()
plt.show()4.2. Box Plot — Phân Phối Dữ Liệu
df = pd.DataFrame({
"Phòng ban": ["Sales"]*30 + ["Marketing"]*30 + ["IT"]*30,
"Lương": np.concatenate([
np.random.normal(15, 3, 30),
np.random.normal(12, 2, 30),
np.random.normal(20, 5, 30)
])
})
plt.figure(figsize=(8, 5))
sns.boxplot(data=df, x="Phòng ban", y="Lương", palette="Set2")
plt.title("Phân Phối Lương Theo Phòng Ban")
plt.ylabel("Lương (triệu VND)")
plt.show()5. So Sánh Matplotlib vs Seaborn
Tiêu chí | Matplotlib | Seaborn |
|---|---|---|
Độ tuỳ biến | Rất cao, kiểm soát mọi chi tiết | Trung bình, ưu tiên đẹp mặc định |
Đẹp mặc định | Cần tuỳ chỉnh nhiều | Đẹp ngay khi vẽ |
Biểu đồ thống kê | Phải tự tính toán | Tích hợp sẵn (boxplot, violin) |
Dùng khi | Cần kiểm soát hoàn toàn | Phân tích khám phá nhanh |
6. Kết Luận
Matplotlib + Seaborn là bộ đôi không thể thiếu cho Data Analyst dùng Python. Nắm vững 2 thư viện này, bạn có thể tạo mọi loại biểu đồ từ đơn giản đến phức tạp.
Bình luận
Đăng nhập để tham gia bình luận
Đăng nhậpNhận bài viết mới nhất
Đăng ký để nhận thông báo khi có bài viết mới. Không spam, chỉ kiến thức chất lượng.
Bài viết liên quan
Khám phá thêm các bài viết cùng chủ đề


