python-269Đọc toàn bộ đề miễn phí

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

PythonCơ bản12 phút

Tiến độ của tôi ở bài này

Điểm và code bạn nộp được lưu vào tài khoản sau khi chấm bài.

Đang tải điểm của bạn…

Kiến thức và chủ đề

matplotlibbar-chartfigure-inspectionentry-ramp

Kiến thức tiên quyết: python-basics, python-lists.

Nội dung đề bài

Mô tả bài toán

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 thử cho phần vẽ hình, ta thường phải đọc ngược lại từ đối tượng hình vẽ: hình có bao nhiêu cột, cột cao nhất là bao nhiêu, tổng chiều cao là bao nhiêu. Bài này luyện đúng vòng đó — vẽ thật bằng Matplotlib rồi trả về phần tóm tắt.

Yêu cầu

Viết hàm bar_chart_summary(values):

  • Nếu values rỗng thì ném ValueError.
  • Tạo hình vẽ bằng plt.subplots(), gọi ax.bar để vẽ một cột cho mỗi giá trị và đặt

tiêu đề cùng nhãn cho hai trục.

  • Đọc lại chiều cao của từng cột từ đối tượng mà ax.bar trả về, rồi trả về dict

{"bars": số cột, "tallest": chiều cao lớn nhất, "total": tổng chiều cao}.

Quy ước nộp bài

Nộp hàm bar_chart_summary trong solution.py. Hệ thống gọi hàm trực tiếp theo tên đối số, chạy ở chế độ hình vẽ không cửa sổ, so giá trị trả về với sai số 1e-6; không đọc dữ liệu từ stdin và không in ra stdout.

Input

  • values: danh sách từ 1 đến 20 số nguyên hoặc số thực, cho phép giá trị âm và giá

trị bằng 0.

Output

Dict có đúng ba khoá bars, tallest, total. bars là số cột đã vẽ, tallest là chiều cao lớn nhất trong các cột, total là tổng chiều cao của tất cả các cột.

Ràng buộc

  • Danh sách rỗng phải ném ValueError, không được trả về bộ số 0.
  • Số liệu tóm tắt phải lấy từ hình vẽ vừa tạo, không sao chép lại từ values.
  • Không trả về Figure hay Axes; chỉ trả về dict chứa số.

Ví dụ 1

Input

bar_chart_summary(values=[3, 7, 5])

Output

{"bars": 3, "tallest": 7, "total": 15.0}

Ví dụ 2

Input

bar_chart_summary(values=[4])

Output

{"bars": 1, "tallest": 4, "total": 4.0}

Giải thích

Với values = [3, 7, 5] hình vẽ có 3 cột, cột cao nhất cao 7, tổng chiều cao là 3 + 7 + 5 = 15, nên hàm trả về {"bars": 3, "tallest": 7, "total": 15.0}.

3 cấp độ gợi ýMở dần khi bạn thật sự cần hỗ trợ.
Phân tích lời giảiGiải thích hướng tư duy và thuật toán.
Code tham khảoDùng để đối chiếu sau khi tự làm.

Gợi ý và lời giải chỉ mở sau khi bạn bấm Nộp bài. Giáo viên và quản trị viên mở được ngay.

Nhóm Zalo