CDF фактически рисуется как многоугольник, который в matplotlib
определяется как path .Путь в свою очередь определяется вершинами (куда идти) и кодами (как туда добраться).В документах говорится, что мы не должны напрямую изменять эти атрибуты, но мы можем создать новый полигон, полученный из старого, который соответствует нашим потребностям.
poly = ax.findobj(plt.Polygon)[0]
vertices = poly.get_path().vertices
# Keep everything above y == 0. You can define this mask however
# you need, if you want to be more careful in your selection.
keep = vertices[:, 1] > 0
# Construct new polygon from these "good" vertices
new_poly = plt.Polygon(vertices[keep], closed=False, fill=False,
edgecolor=poly.get_edgecolor(),
linewidth=poly.get_linewidth())
poly.set_visible(False)
ax.add_artist(new_poly)
plt.draw()
Вы должны получить что-то вродерисунок ниже:
![CDF with offending points removed](https://i.stack.imgur.com/MbVpf.png)