Computer >> Máy Tính >  >> Lập trình >> Python

Làm thế nào để tạo một mũi tên lặp lại trong Matplotlib?

Để tạo một mũi tên lặp lại trong Matplotlib, chúng ta có thể thực hiện các bước sau -

  • Đặt kích thước hình và điều chỉnh phần đệm giữa và xung quanh các ô phụ.
  • Để tạo vòng lặp mũi tên trong matplotlib, chúng ta có thể sử dụng make_loop () phương pháp.
  • Tạo một bản sao hình nêm với tâm, bán kính, theta1, theta2 và chiều rộng.
  • Để đặt đầu mũi tên của vòng lặp, hãy sử dụng PathCollection.
  • Thêm bộ sưu tập bản vá vào các trục hiện tại.
  • Để hiển thị hình này, hãy sử dụng show () phương pháp.

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()

Đầu ra

Làm thế nào để tạo một mũi tên lặp lại trong Matplotlib?