在Matplotlib中剪辑.为什么这不起作用?

Esk*_*kil 5 python matplotlib

我试图使用Matplotlib中的剪辑来剪切圆形和椭圆形等形状,但是必须有一些我缺少的东西..为什么不将圆圈剪成两半?:

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.patches import Circle
from matplotlib.transforms import Bbox

clip_box = Bbox(((-2,-2),(2,0)))
circle = Circle((0,0),1,clip_box=clip_box,clip_on=True)

plt.axes().add_artist(circle)
plt.axis('equal')
plt.axis((-2,2,-2,2))
plt.show()
Run Code Online (Sandbox Code Playgroud)

Fab*_*dre 7

我不知道为什么你的代码不起作用,但是,以下代码段可以按预期工作.

从我的未完成开始,clip_on与将给定剪裁应用于形状无关,但是形状应该在显示区域中剪切.

import matplotlib.pyplot as plt
from matplotlib.patches import Circle, Rectangle

rect = Rectangle((-2,-2),4,2, facecolor="none", edgecolor="none")
circle = Circle((0,0),1)

plt.axes().add_artist(rect)
plt.axes().add_artist(circle)

circle.set_clip_path(rect)

plt.axis('equal')
plt.axis((-2,2,-2,2))
plt.show()
Run Code Online (Sandbox Code Playgroud)