我在 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')
Before the patches:
After the patches:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)