为了账号安全,请及时绑定邮箱和手机立即绑定

matplotlib 隐藏矩形的某些部分

matplotlib 隐藏矩形的某些部分

LEATH 2021-12-08 16:08:12
我试图隐藏或删除超出“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()

//img1.sycdn.imooc.com//61b068070001756b03990268.jpg

查看完整回答
反对 回复 2021-12-08
  • 1 回答
  • 0 关注
  • 233 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信