Để tạo vùng tô bóng hợp lý cho một đường cong trong Matplotlib, bạn có thể thực hiện theo các bước sau:
Các bước thực hiện
- Thiết lập kích thước hình vẽ và điều chỉnh khoảng cách giữa các subplot.
- Tạo các điểm dữ liệu t, s1 và s2 bằng NumPy.
- Tạo một figure và một tập hợp các subplot.
- Vẽ đường cong với dữ liệu t và s1; thêm một đường ngang qua trục tọa độ.
- Tạo một tập hợp các thanh ngang trải dài theo yrange với một chuỗi xranges.
- Thêm Collection vào các collection của axes; trả về collection.
- Sử dụng phương thức show() để hiển thị hình vẽ.
Ví dụ minh họa
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.collections as collections
plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True
t = np.arange(0.0, 2, 0.01)
s1 = np.sin(2 * np.pi * t)
s2 = 1.2 * np.sin(4 * np.pi * t)
fig, ax = plt.subplots()
ax.plot(t, s1, color='black')
ax.axhline(0, color='black', lw=2)
collection = collections.BrokenBarHCollection.span_where(
t, ymin=0, ymax=1, where=s1 > 0, facecolor='green', alpha=0.5
)
ax.add_collection(collection)
collection = collections.BrokenBarHCollection.span_where(
t, ymin=-1, ymax=0, where=s1 < 0, facecolor='red', alpha=0.5
)
ax.add_collection(collection)
plt.show()
Kết quả đầu ra
Chương trình sẽ tạo ra biểu đồ với các vùng tô bóng xanh lá (khi s1 > 0) và đỏ (khi s1 < 0) dưới đường cong sin.