คุณต้องเพิ่มมันเข้าไปในแกน A Circle
เป็นคลาสย่อยของArtist
และaxes
มีadd_artist
วิธีการ
นี่คือตัวอย่างของการทำเช่นนี้:
import matplotlib.pyplot as plt
circle1 = plt.Circle((0, 0), 0.2, color='r')
circle2 = plt.Circle((0.5, 0.5), 0.2, color='blue')
circle3 = plt.Circle((1, 1), 0.2, color='g', clip_on=False)
fig, ax = plt.subplots() # note we must use plt.subplots, not plt.subplot
# (or if you have an existing figure)
# fig = plt.gcf()
# ax = fig.gca()
ax.add_artist(circle1)
ax.add_artist(circle2)
ax.add_artist(circle3)
fig.savefig('plotcircles.png')
ผลลัพธ์นี้ในรูปต่อไปนี้:
วงกลมแรกคือที่จุดกำเนิด แต่โดยปกติclip_on
เป็นดังนั้นวงกลมถูกตัดเมื่อเคยขยายเกินTrue
axes
ที่สาม (สีเขียว) Artist
แสดงให้เห็นวงกลมสิ่งที่เกิดขึ้นเมื่อคุณไม่ได้คลิป มันขยายออกไปเกินกว่าแกน (แต่ไม่เกินรูปนั่นคือขนาดของรูปจะไม่ถูกปรับโดยอัตโนมัติเพื่อพล็อตศิลปินของคุณทั้งหมด)
หน่วยสำหรับ x, y และรัศมีสอดคล้องกับหน่วยข้อมูลตามค่าเริ่มต้น ในกรณีนี้ฉันไม่ได้พล็อตสิ่งใดบนแกนของฉัน ( fig.gca()
คืนค่าแกนปัจจุบัน) และเนื่องจากไม่เคยมีการตั้งค่าขีด จำกัด จึงมีค่าเริ่มต้นเป็น x และ y ตั้งแต่ 0 ถึง 1
ต่อไปนี้เป็นตัวอย่างที่แสดงให้เห็นว่าหน่วยมีความสำคัญ:
circle1 = plt.Circle((0, 0), 2, color='r')
# now make a circle with no fill, which is good for hi-lighting key results
circle2 = plt.Circle((5, 5), 0.5, color='b', fill=False)
circle3 = plt.Circle((10, 10), 2, color='g', clip_on=False)
ax = plt.gca()
ax.cla() # clear things for fresh plot
# change default range so that new circles will work
ax.set_xlim((0, 10))
ax.set_ylim((0, 10))
# some data
ax.plot(range(11), 'o', color='black')
# key data point that we are encircling
ax.plot((5), (5), 'o', color='y')
ax.add_artist(circle1)
ax.add_artist(circle2)
ax.add_artist(circle3)
fig.savefig('plotcircles2.png')
ซึ่งผลลัพธ์ใน:
คุณสามารถดูวิธีที่ฉันตั้งค่าการเติมวงกลมที่ 2 False
ซึ่งเป็นประโยชน์สำหรับการล้อมรอบผลลัพธ์หลัก (เช่นจุดข้อมูลสีเหลืองของฉัน)