首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用matplotlib中的多个补丁裁剪图像

使用matplotlib中的多个补丁裁剪图像
EN

Stack Overflow用户
提问于 2011-11-15 02:17:19
回答 1查看 2.2K关注 0票数 6

我在pylab有一块地块,我想把它裁剪到英国地图的边界上。

我还制作了一系列包含每个国家轮廓的补丁:一个用于英格兰,一个用于威尔士等。

裁剪图一个补丁效果很好:

代码语言:javascript
复制
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‘类型的语句来裁剪吗?(即如果在这个补丁或这个补丁中,不要裁剪)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-15 04:33:12

我认为你可以通过制作多个散点图,用一个独特的补丁来裁剪每个散点图(例如,一个有英格兰,一个有爱尔兰,等等)。虽然这可能不是你想要的,比如“有人知道如何使用'OR‘类型的语句来裁剪吗?”,但它应该有相同的效果:

代码语言:javascript
复制
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')

在打补丁之前:

在补丁之后:

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8126151

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档