Biểu đồ Cột Phân loại Kèm Thanh Sai số (Error Bars & Capsize)
Viết hàm plot_benchmark_bar_chart(categories: list[str], means: list[float], errors: list[float], title: str) -> matplotlib.figure.Figure:

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.
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: