我試圖隱藏或刪除超出“outer_arc_left”和“outer_arc_right”的“outer_rect”部分,以重新創建溜冰場。謝謝你。from matplotlib.patches import Rectangle, Arcdef draw_rink(ax=None, color='black', lw=2, outer_lines=False): if ax is None: ax = plt.gca() outer_rect = Rectangle((-1500, 3000), 3000, 3000, linewidth=lw, color=color, fill=False) outer_arc_left = Arc((-700, 5200), 1600, 1600, theta1=90, theta2=180, linewidth=lw, color=color) outer_arc_right = Arc((700, 5200), 1600, 1600, theta1=0, theta2=90, linewidth=lw, color=color) rink_elements = [outer_rect, outer_arc_left, outer_arc_right] for element in rink_elements: ax.add_patch(element) return ax
1 回答

三國紛爭
TA貢獻1804條經驗 獲得超7個贊
如果沒有明確定義要隱藏的部分,則很難“隱藏補丁的一部分”。您可以創建一條路徑并將其用作clip_path但它的作用更像是一個蒙版,例如矩形的邊緣將被裁剪。定義該路徑將是棘手的一點。
但是我們可以反過來:如果您無論如何需要定義路徑,您可以簡單地使用該路徑作為您想要顯示的形狀。
import matplotlib.pyplot as plt
from matplotlib.path import Path
from matplotlib.patches import PathPatch
x = [1,1,1,2,3,4,4,4,1]
y = [0,1,2,2,2,2,1,0,0]
verts = list(zip(x,y))
codes = [1,2,3,3,2,3,3,2,2]
path = Path(verts,codes)
patch = PathPatch(path)
plt.gca().add_patch(patch)
plt.gca().autoscale()
plt.show()
添加回答
舉報
0/150
提交
取消