Data ScienceThời lượng: ~20 giờCấp độ: Nâng cao

Dự án 02: Trực quan hóa Dữ liệu Khoa học (Matplotlib & Plotly)

Khai phá và chuyển hóa dữ liệu số thành biểu đồ trực quan, phân tích thời tiết CSV, bản đồ động đất GeoJSON và Web APIs

Tiến độ các Chặng kiểm tra:0/8 (0%)
Kiến thức cần biết trước (Prerequisites)
  • Chương 01 - 05: Kiểu dữ liệu, Danh sách Lists, Cắt lát & Tuples
  • Chương 06: Từ điển Dictionaries & Xử lý Key-Value
  • Chương 10: Tệp tin (Files), Xử lý chuỗi JSON, CSV và Ngoại lệ (Exceptions)
Mục tiêu đầu ra của dự án
  • Thành thạo thư viện khoa học Matplotlib để tạo biểu đồ đường (Line Plot) và phân tán (Scatter Plot).
  • Ứng dụng thư viện biểu đồ tương tác Plotly Express hiển thị trực tiếp trên trình duyệt Web.
  • Mô phỏng toán học quá trình ngẫu nhiên Random Walk áp dụng trong vật lý hạt và tài chính.
  • Kỹ năng phân tích và làm sạch dữ liệu bảng tính CSV thực tế (Data Cleansing) với module csv và datetime.
LƯU Ý VỀ MÔI TRƯỜNG THỰC THI: - Trong trình duyệt CodeCoBUG: Toàn bộ quá trình tính toán khoa học, phân tích mảng số liệu, xử lý chuỗi CSV, JSON, tính toán tần suất và làm sạch dữ liệu đều chạy 100% trên Pyodide WebAssembly. - Matplotlib và Plotly trên máy cá nhân: Để mở cửa sổ biểu đồ tương tác trên máy tính hoặc xuất file HTML/PNG, bạn chỉ cần cài đặt pip theo hướng dẫn bên dưới.
Hướng dẫn thiết lập và chạy trên máy tính cá nhân (Local Guide)

Để trải nghiệm đầy đủ giao diện gốc (cửa sổ đồ họa Pygame 60 FPS hoặc máy chủ Web Django cục bộ), bạn chỉ cần mở Terminal trên máy cá nhân và thực thi các câu lệnh sau:

# 1. Tạo thư mục và môi trường ảo khoa học dữ liệu
mkdir data_visualization && cd data_visualization
python3 -m venv .venv
source .venv/bin/activate
# 2. Cài đặt các thư viện khoa học dữ liệu
pip install matplotlib plotly pandas requests
$ python sitka_highs.py
📁 Cấu trúc thư mục dự án khuyến nghị:
data_visualization/
  ├── data/
  │   ├── sitka_weather_2021_simple.csv
  │   ├── death_valley_2021_simple.csv
  │   └── eq_data_30_day_m1.geojson
  ├── random_walk.py
  ├── die.py
  └── sitka_highs.py

Danh sách Chặng kiểm tra (Checkpoints)

Hoàn thành từng chặng để mở khóa tiếp
1

Checkpoint 1: Giới thiệu Dữ liệu số & Xử lý Dữ liệu có cấu trúc

Làm quen với tư duy khoa học dữ liệu, cấu trúc mảng 1D, 2D và kỹ thuật List Comprehension để tính toán nhanh hàng ngàn điểm dữ liệu.

Mục tiêu chặng:
  • Hiểu bản chất của dữ liệu số và quy trình trích xuất thông tin từ mảng thô.
  • Sử dụng List Comprehension để sinh tọa độ x, y cho các hàm toán học (như y = x^2, y = x^3).
  • Tách bạch dữ liệu đầu vào (data series) và giao diện hiển thị biểu đồ.

Checkpoint 2: Giới thiệu Matplotlib & Vẽ đồ thị đường cơ bản

Làm quen với thư viện Matplotlib (module pyplot), cấu trúc đối tượng Figure và Axes, thiết lập nhãn trục X/Y, tiêu đề và kích thước nét vẽ.

Cần xong Chặng 1

Checkpoint 3: Biểu đồ phân tán (Scatter Plot) & Bước đi ngẫu nhiên (Random Walk)

Xây dựng lớp RandomWalk mô phỏng chuyển động Brown trong vật lý, vẽ 5.000 điểm bước đi ngẫu nhiên với bảng màu chuyển sắc Colormap.

Cần xong Chặng 2

Checkpoint 4: Giới thiệu Plotly Express & Biểu đồ cột xác suất xúc xắc

Mô phỏng việc tung đồng thời 2 con xúc xắc 1.000 lần, thống kê tần suất tổng số điểm từ 2 đến 12 và vẽ biểu đồ cột tương tác với Plotly.

Cần xong Chặng 3

Checkpoint 5: Đọc & Phân tích tệp CSV thời tiết thực tế & Xử lý ngoại lệ

Sử dụng module csv đọc dữ liệu thời tiết thực tế, trích xuất dòng tiêu đề header, chuyển đổi chuỗi ngày tháng datetime và bắt lỗi khuyết thiếu dữ liệu với try-except.

Cần xong Chặng 4

Checkpoint 6: Trực quan hóa dữ liệu bản đồ nhiệt GeoJSON động đất

Đọc dữ liệu địa chấn toàn cầu từ USGS bằng module json, trích xuất kinh độ, vĩ độ, độ Richter và vẽ bản đồ nhiệt tương tác px.scatter_geo.

Cần xong Chặng 5

Checkpoint 7: Làm việc với Web REST API (GitHub Search) & Phân tích JSON

Sử dụng module urllib/requests gửi truy vấn HTTP GET tới GitHub API, kiểm tra mã trạng thái HTTP 200, phân tích JSON và trích xuất danh sách dự án nhiều sao nhất.

Cần xong Chặng 6

Checkpoint 8: Dự án trực quan hóa dữ liệu hoàn chỉnh (Multi-source Dashboard)

Tổng hợp dữ liệu từ nhiều nguồn, xây dựng báo cáo phân tích khoa học hoàn chỉnh kết hợp biểu đồ cột, biểu đồ đường và bản đồ nhiệt tương tác.

Cần xong Chặng 7