Vẽ biểu đồ cột rồi tóm tắt lại số liệu của hình vẽ
Biểu đồ cột là cách nhanh nhất để so sánh vài giá trị rời rạc. Khi viết thư viện kiểm

Biến các con số khô khan thành hình ảnh trực quan sinh động. Khám phá các mối quan hệ ẩn trong dữ liệu qua biểu đồ chuẩn xuất bản khoa học.
bài tập có chấm code
Bài tập theo chuyên đề, có đề bài, ví dụ và starter code riêng.
cơ bản
Củng cố nền tảng và làm quen với kỹ thuật cốt lõi.
trung bình
Kết hợp nhiều bước suy luận để vận dụng kiến thức.
nâng cao
Thử thách tối ưu, cấu trúc dữ liệu và thuật toán chuyên sâu.
Vẽ line chart, scatter plot và bar chart với tiêu đề, nhãn trục, chú giải.
Vẽ histogram và boxplot để quan sát phân phối và các điểm ngoại lai outliers.
Tạo lưới nhiều biểu đồ trên cùng một hình bằng plt.subplots().
Không gán nhãn trục (xlabel, ylabel) khiến biểu đồ không rõ đơn vị đo lường.
Nhầm lẫn giữa giao diện chức năng plt và giao diện hướng đối tượng ax.
Trong mỗi mức độ, bài tập được xếp từ dễ nhất đến khó nhất — hãy đi theo số bước.
Biểu đồ cột là cách nhanh nhất để so sánh vài giá trị rời rạc. Khi viết thư viện kiểm
Một chuỗi giá trị được vẽ bằng ax.plot: mỗi cặp (x, y) là một điểm và các điểm liền
Biểu đồ tần suất chia miền giá trị thành các khoảng bằng nhau (bin) rồi đếm xem mỗi
Viết hàm plot_benchmark_bar_chart(categories: list[str], means: list[float], errors: list[float], title: str) -> matplotlib.figure.Figure:
Viết hàm plot_distribution_histogram(samples: list[float], bins: int = 20, density: bool = True) -> matplotlib.figure.Figure:
Viết hàm plot_multiseries_trends(data: dict[str, list[float]], x_coords: list[float], title: str, xlabel: str, ylabel: str) -> matplotlib.figure.Figure:
Dùng một kỹ thuật quen thuộc: sắp xếp, tìm kiếm, đếm, ngăn xếp.
Viết hàm plot_dual_axis_economic_indicators(dates: list[str], gdp: list[float], cpi: list[float]) -> tuple:
Viết hàm plot_quarterly_stacked_revenue(quarters: list[str], product_a: list[float], product_b: list[float]) -> matplotlib.figure.Figure:
Viết hàm plot_experiment_boxplots(groups_data: list[list[float]], labels: list[str], show_means: bool = True) -> matplotlib.figure.Figure:
1. Trục hoành X.
Phối hợp hai kỹ thuật trong cùng một lời giải.
Viết hàm plot_correlation_matrix_masked(corr_matrix: list[list[float]], feature_names: list[str], cmap: str = "coolwarm") -> matplotlib.figure.Figure:
Viết hàm format_timeseries_axis(dates: list[str], values: list[float], major_interval_days: int = 7) -> matplotlib.figure.Figure:
Viết hàm plot_multimodal_violin_chart(dataset: list[list[float]], labels: list[str], show_medians: bool = True) -> matplotlib.figure.Figure:
Viết hàm annotate_max_min_peaks(x: list[float], y: list[float]) -> matplotlib.figure.Figure:
Viết hàm plot_candlestick_chart(dates: list[str], opens: list[float], highs: list[float], lows: list[float], closes: list[float]) -> matplotlib.figure.Figure:
Viết hàm plot_confusion_matrix_heatmap(cm: list[list[int]], class_names: list[str], cmap: str = "Blues") -> matplotlib.figure.Figure:
Viết hàm build_analytics_dashboard_gridspec(timeseries: list[float], category_counts: dict[str, int], scatter_x: list[float], scatter_y: list[float]) -> matplotlib.figure.Figure:
Viết hàm plot_loss_contour_surface(x_grid: list[list[float]], y_grid: list[list[float]], z_loss: list[list[float]], levels: int = 5) -> matplotlib.figure.Figure:
Viết hàm render_figure_to_rgba_array(fig: matplotlib.figure.Figure) -> numpy.ndarray: