Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Cách tạo mũi tên vòng lặp (loop arrow) trong Matplotlib?

Để tạo mũi tên vòng lặp trong Matplotlib:

  • Thiết lập kích thước hình và điều chỉnh khoảng đệm subplot.
  • Dùng hàm make_loop() để tạo vòng lặp.
  • Tạo instance Wedge với center, radius, theta1, theta2 và width.
  • Đặt đầu mũi tên lên đỉnh vòng lặp bằng PathCollection.
  • Thêm patch collection vào axes hiện tại.
  • Hiển thị hình bằng show().

Ví dụ

from matplotlib import pyplot as plt, patches, collections
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
def make_loop(center, radius, theta1=-30, theta2=180):
    rwidth = 0.02
    ring = patches.Wedge(center, radius, theta1, theta2, width=rwidth)
    offset = 0.02
    xcent = center[0] - radius + (rwidth / 2)
    left = [xcent - offset, center[1]]
    right = [xcent + offset, center[1]]
    bottom = [(left[0] + right[0]) / 2., center[1] - 0.05]
    arrow = plt.Polygon([left, right, bottom, left])
    p = collections.PatchCollection(
        [ring, arrow],
        edgecolor='orange',
        facecolor='red'
    )
    ax.add_collection(p)
fig, ax = plt.subplots()
make_loop(center=(.5, .7), radius=.1)
plt.show()

Kết quả

Cách tạo mũi tên vòng lặp (loop arrow) trong Matplotlib?