Tạo môi trường riêng rồi gọi đúng Python trong môi trường. Không cần kích hoạt bằng một lệnh khác.
BƯỚC 02
Mỗi điểm là một quan sát
Trong ví dụ, mỗi điểm đại diện một mẫu ảnh. Hai trục mô tả kích thước vật thể và độ tương phản. Màu thể hiện mức lỗi giả lập, còn diện tích marker thể hiện độ lớn của mẫu.
Không nên đưa quá nhiều thông tin vào một biểu đồ khi người xem không giải mã được. Ta giữ bảng dữ liệu có cùng số hàng và ghi rõ từng kênh hiển thị.
s của scatter là diện tích marker theo point vuông. Tăng s gấp đôi không làm đường kính tăng gấp đôi.
Điểm cần nhớ
Chọn ý nghĩa của từng kênh trước khi chọn màu và cỡ điểm.
BƯỚC 03
Màu liên tục cần colorbar
Lỗi là đại lượng liên tục nên ta dùng colormap tuần tự và colorbar. Nếu màu biểu thị loại đối tượng rời rạc, cần dùng màu phân loại và legend thay vì colorbar liên tục.
Giảm độ đục giúp nhìn vùng có nhiều điểm chồng nhau. Tuy nhiên màu sau khi chồng có thể thay đổi, nên không đọc giá trị chính xác chỉ từ màu của cụm dày.
Hình thứ hai bỏ bớt kênh mã hóa để kiểm tra mối liên hệ. Một hình nhiều biến cần đi cùng cách nhìn đơn giản hơn khi dùng để giải thích.
Điểm cần nhớ
Colorbar chỉ hợp với đại lượng có thang liên tục.
BƯỚC 04
Gắn nhãn mẫu cần kiểm tra
Ta đánh dấu mẫu có lỗi lớn nhất để nối từ tổng quan sang kiểm tra một trường hợp cụ thể. Không đánh dấu mọi điểm vì chữ sẽ che dữ liệu.
Mối tương quan trong dữ liệu mô phỏng do công thức tạo ra. Với dữ liệu thật, scatter không tự chứng minh quan hệ nhân quả. Cần kiểm tra các yếu tố khác như lớp, nguồn chụp và điều kiện ánh sáng.
matplotlib_scatter.pyPhần 3/3
worst = int(np.argmax(error))
axes[1].annotate(f"Sample {worst}", (size[worst], error[worst]), xytext=(12, -25), textcoords="offset points", arrowprops={"arrowstyle": "->"})
for ax in axes:
ax.grid(alpha=0.18)
handles = [axes[0].scatter([], [], s=25+v*1.8, color="#90ae99", label=f"Size {v} px") for v in [20, 70]]
axes[0].legend(handles=handles, fontsize=9, loc="lower left")
assert error[worst] == error.max()
fig.savefig(FIGURE, dpi=100)
plt.close(fig)
print("Saved:", FIGURE.name)
Ý nghĩa đoạn mã
Các marker rỗng trong legend minh họa quan hệ diện tích với size. Chúng không thêm điểm giả vào dữ liệu đang phân tích.
Điểm cần nhớ
Dùng chú thích chọn lọc để chỉ ra bước kiểm tra tiếp theo.
BƯỚC 05
Chạy thử và đọc kết quả
80 quan sát được giữ nguyên. Mẫu được đánh dấu phải có lỗi lớn nhất. Trục, colorbar và legend ghi rõ biến được biểu diễn.
Hình tạo từ chính chương trình của bài. Dữ liệu và phạm vi kiểm tra được mô tả trong nội dung.Xem hình lớn ↗
powershell
.\.venv\Scripts\python.exe matplotlib_scatter.py
Ý nghĩa đoạn mã
Lệnh chạy toàn bộ tệp vừa tải. Nếu một assert không đúng, dừng lại và kiểm tra dữ liệu cùng bước tương ứng trước khi diễn giải hình.
Điểm cần nhớ
Kiểm tra số liệu in ra trước, sau đó mới dùng hình để giải thích.
ĐẾN LƯỢT BẠN
Thử một thay đổi nhỏ
Thay màu liên tục bằng hai nhóm nguồn camera và tạo legend tương ứng.
Giữ riêng colorbar cho lỗi ở một biểu đồ khác để tránh dùng một màu cho hai ý nghĩa.