Закрепите изображение с помощью нескольких патчей в matplotlib

У меня есть сюжет в pylab, который я хочу закрепить на границах карты Великобритании.

Я также сделал серию патчей, которые содержат очертания каждой страны: одну для Англии, одну для Уэльса и т. Д.

Обрезая сюжет, один патч работает блестяще:

fig = plt.figure() ax = fig.add_subplot(111) im = ax.scatter(x,y,c = z) ax.add_patch(patch) im.set_clip_path(patch) 

Но если я попытаюсь сделать это несколько раз, это оставляет меня ни с чем – понятно, потому что ни одна часть сюжета не находится внутри каждой страны одновременно.

Кто-нибудь знает, как я могу обрезать, используя оператор типа «OR»? (т. е. не зажимать, если внутри этого патча или этого и т. д.).

    Я думаю, вы можете сделать это, сделав несколько диаграмм разброса, отсекая каждый с уникальным патчем (например, в Англии есть Ирландия, и т. Д.). Хотя это может и не быть тем, о чем вы просили, т. Е. «Кто-нибудь знает, как я могу обрезать, используя инструкцию типа« OR »?», Он должен иметь тот же эффект:

     import numpy as np import matplotlib.pyplot as plt import matplotlib.patches as patches np.random.seed(101) x = np.random.random(100) y = np.random.random(100) fig = plt.figure() ax = fig.add_subplot(111) imForEngland = ax.scatter(x,y) fig.savefig('beforeclip.png') imForWales = ax.scatter(x,y) england = patches.Circle((.75,.75),radius=.25,fc='none') wales = patches.Circle((.25,.25),radius=.25,fc='none') ax.add_patch(england) ax.add_patch(wales) imForEngland.set_clip_path(england) imForWales.set_clip_path(wales) fig.savefig('afterclip.png') 

    Перед патчами: введите описание изображения здесь После патчей: введите описание изображения здесь