Menu
CoddyTech

Biểu đồ phân tán

Thuộc phần Dữ liệu và biểu đồ trong hành trình Machine Learning của Coddy. Bài học 21 trên 60.

Mười cây trồng trong nhà: số giờ có nắng mỗi ngày và mức độ phát triển của từng cây. Nối các điểm bằng một đường, ta được một mớ rối. Khi biểu diễn bằng các chấm, một quy luật hiện ra:

Hai biểu đồ của cùng mười cây, số giờ nắng trên trục ngang và mức độ phát triển trên trục dọc. Bên trái, plt.plot nối các điểm thành một mớ rối ngoằn ngoèo. Bên phải, plt.scatter cho thấy các chấm đi lên về phía bên phải

plt.scatter(x, y) vẽ một chấm cho mỗi cặp giá trị, không có đường nối:

sun = [2, 6, 3, 8, 5, 1, 7, 4, 6, 3]
growth = [4, 10, 7, 12, 6, 2, 9, 8, 7, 3]
plt.scatter(sun, growth)
plt.xlabel("Sun (hours a day)")
plt.ylabel("Growth (cm)")
plt.show()

Nhiều ánh nắng hơn, cây phát triển nhiều hơn. Biểu đồ phân tán cho thấy mối liên hệ giữa hai phép đo của các mẫu riêng biệt: cái nhìn ban đầu trước khi mô hình dự đoán phép đo này từ phép đo kia.

Các giá trị theo thứ tự, như các ngày trong tuần, vẫn dùng plt.plot.

challenge icon

Thử thách

Trung bình

Một người câu cá ghi lại từng con cá theo thứ tự bắt được: mỗi hàng ứng với một con, gồm chiều dài (cm) rồi đến cân nặng (g). Mã khởi đầu nối chúng bằng plt.plot, khiến đường biểu đồ ngoằn ngoèo và che khuất quy luật.

  1. Vẽ mỗi con cá thành một chấm riêng: chiều dài theo trục ngang, cân nặng theo trục dọc.
  2. Không vẽ đường nối nào.
  3. Giữ nguyên tiêu đề, nhãn và plt.show().

Biểu đồ của bạn sẽ trông giống biểu đồ này, từ một chuyến đi khác:

Biểu đồ phân tán có tiêu đề Fish Catch: chín chấm tăng dần từ 18 cm và 90 g lên 42 cm và 980 g, không có đường nối

Chương trình của bạn không in ra gì. Coddy mô tả biểu đồ trong đầu ra.

Tự làm thử

import numpy as np
import matplotlib.pyplot as plt

# Mỗi hàng là một con cá, theo thứ tự đánh bắt: chiều dài (cm), khối lượng (g)
fish = np.array([[22, 180], [30, 390], [25, 250], [35, 620],
                 [28, 330], [40, 870], [19, 120], [33, 510]])

# Sửa biểu đồ bên dưới
plt.plot(fish[:, 0], fish[:, 1])

# Đừng thay đổi các dòng bên dưới
plt.title("Fish Catch")
plt.xlabel("Length (cm)")
plt.ylabel("Weight (g)")
plt.show()
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Dữ liệu và biểu đồ

Tự luyện tập: Trình biên dịch Python online