Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

จะสร้างลูกศรที่วนซ้ำใน Matplotlib ได้อย่างไร?


ในการสร้างลูกศรที่วนใน Matplotlib เราสามารถทำตามขั้นตอนต่อไปนี้ -

  • กำหนดขนาดรูปและปรับช่องว่างภายในระหว่างและรอบๆ แผนผังย่อย
  • ในการสร้างลูกศรวนใน matplotlib เราสามารถใช้ make_loop() วิธีการ
  • สร้างอินสแตนซ์ลิ่มด้วย กึ่งกลาง, รัศมี, theta1, theta2 และความกว้าง
  • หากต้องการวางลูกศรไว้บนสุดของลูป ให้ใช้ PathCollection
  • เพิ่มคอลเลกชั่นแพตช์ให้กับแกนปัจจุบัน
  • หากต้องการแสดงรูป ให้ใช้ show() วิธีการ

ตัวอย่าง

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

ผลลัพธ์

จะสร้างลูกศรที่วนซ้ำใน Matplotlib ได้อย่างไร?