Skip to content

tempusoneps/easy-visualize

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📊 EasyVisualize - Trực quan hóa Dữ liệu Đặc trưng & Nhãn (Phiên bản Chuyên nghiệp)

Ứng dụng web được tái cấu trúc theo kiến trúc mô-đun chuyên nghiệp, tách biệt các khối xử lý dữ liệu, vẽ biểu đồ và giao diện UI, hỗ trợ kiểm thử tự động bằng pytest.


📂 Cấu trúc Thư mục Dự án

easy-visualize/
├── .streamlit/
│   └── config.toml           # Cấu hình Theme giao diện Streamlit (Dark slate & Purple)
├── app/
│   ├── __init__.py
│   ├── config.py             # Cấu hình UI, các hằng số CSS & phong cách premium
│   ├── data_loader.py        # Quét thư mục, phân tích dữ liệu & các bộ giả lập mẫu
│   └── charts.py             # Hàm vẽ biểu đồ chuyên sâu (Plotly & Seaborn)
├── datasets/
│   ├── phan_khuc_khach_hang.csv  # Dữ liệu mẫu phân khúc khách hàng
│   └── gia_nha_dat.csv           # Dữ liệu mẫu dự báo giá nhà
├── tests/
│   ├── __init__.py
│   └── test_data_loader.py   # Các kịch bản kiểm thử tự động (Unit test)
├── main.py                   # Điểm khởi chạy chính (Orchestrator tập hợp UI và luồng dữ liệu)
├── pyproject.toml            # Khai báo thư viện và cấu hình dự án (uv/pip)
└── README.md                 # Tài liệu hướng dẫn dự án

✨ Điểm Nâng Cấp Chuyên Nghiệp

  1. 🧱 Kiến trúc Mô-đun (Modular Architecture):

    • app/config.py: Tập trung hóa toàn bộ định nghĩa CSS và hằng số cấu hình trang.
    • app/data_loader.py: Tách biệt toàn bộ logic I/O, kiểm tra định dạng file, điền/khử NaN và phát hiện kiểu nhãn.
    • app/charts.py: Đóng gói các hàm vẽ đồ thị riêng lẻ, trả về đối tượng Figure thuần túy giúp dễ dàng tái sử dụng hoặc kiểm thử.
    • main.py: Vai trò điều phối gọn nhẹ, chỉ chịu trách nhiệm tổ chức giao diện hiển thị (View).
  2. 🎨 Streamlit Theme Customization:

    • Định nghĩa giao diện tối (Dark slate và Purple accents) thông qua tệp cấu hình chuẩn hóa của Streamlit tại .streamlit/config.toml. Không còn phụ thuộc hoàn toàn vào việc tiêm CSS thủ công.
  3. 🧪 Kiểm thử tự động (Unit Testing):

    • Tích hợp khung kiểm thử pytest nhằm bảo đảm độ tin cậy của các hàm xử lý dữ liệu trước khi đưa lên UI.
  4. 📁 Chuẩn hóa Thư mục Dữ liệu:

    • Toàn bộ dữ liệu được quản lý tập trung trong thư mục datasets/ thay vì để tràn lan ở thư mục gốc.

🚀 Hướng dẫn Cài đặt & Khởi chạy

1. Khởi chạy Ứng dụng Web

Sử dụng uv để chạy trực tiếp ứng dụng:

uv run streamlit run main.py

Hoặc chạy chỉ định sẵn các file dữ liệu qua đối số CLI:

uv run streamlit run main.py -- datasets/phan_khuc_khach_hang.csv datasets/gia_nha_dat.csv

2. Chạy Kiểm thử Unit Test

Để chạy toàn bộ các ca kiểm thử trong thư mục tests/ để đảm bảo code hoạt động hoàn hảo:

PYTHONPATH=. uv run pytest

📊 Chi tiết 8 Biểu đồ hiển thị đồng thời

  • 1. Biểu đồ phân tán 2D (2D Scatter Plot): Quan sát mối liên quan giữa 2 features.
  • 2. Biểu đồ phân tán 3D (3D Scatter Plot): Không gian 3D tương tác.
  • 3. Đường đồng mức mật độ 2D (2D Density Contour): Biểu diễn mật độ đồng mức.
  • 4. Phân phối mật độ 1D (Seaborn KDE): Biểu đồ mật độ xác suất 1D tĩnh.
  • 5. Biểu đồ cột tổng hợp (Grouped Bar Chart): Tổng hợp thống kê của features theo nhãn.
  • 6. Biểu đồ hộp & Violin (Box & Violin): Phân phối phân vị.
  • 7. Ma trận tương quan Pearson: Tương quan giữa các biến số.
  • 8. Bản đồ nhiệt mật độ lưới 2D (2D Density Heatmap): Bản đồ mật độ ô lưới.

About

Auto visualize by selecting 2 features and 1 label from 2 datasets

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors