Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用matplotlib中的多个面片剪裁图像_Python_Matplotlib_Patch_Clip - Fatal编程技术网

Python 使用matplotlib中的多个面片剪裁图像

Python 使用matplotlib中的多个面片剪裁图像,python,matplotlib,patch,clip,Python,Matplotlib,Patch,Clip,我在派拉布有一个情节,我想把它剪辑到英国地图的边界上 我还制作了一系列包含每个国家轮廓的补丁:一个用于英格兰,一个用于威尔士等 将绘图裁剪为一个补丁非常有效: fig = plt.figure() ax = fig.add_subplot(111) im = ax.scatter(x,y,c = z) ax.add_patch(patch) im.set_clip_path(patch) 但是,如果我试图为不止一个国家做这件事,那我就什么也得不到了——这是可以理解的,因为每个国家都没有同时参与

我在派拉布有一个情节,我想把它剪辑到英国地图的边界上

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

将绘图裁剪为一个补丁非常有效:

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')
在补丁之前: 补丁之后:

我没有使用过补丁,但是有没有一种方法可以将它们添加到一起?顺便说一句,如果您正在做需要地图的事情,我想您已经找到了basemap,一个用于绘制地图的matplotlib扩展?谢谢您Thomas-是的,我找到了basemap。它非常适合绘制地理定位点/国家间流量等,在本例中实际效果良好。拜托,我还没有解决如何创建像KDE的情节,它可以与地图边界对齐,我一直在寻找一个更一般的解决方案。“没问题,”hannah fry,如果你认为你的“答案”,那么请在左边检查。否则,希望有人能给你一个更具体的答案。我正在尝试使用熊猫情节,但剪辑没有完成。有人知道为什么吗?我正在做:
imForWales=df.plot(x='x',y='y',kind='scatter')