Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.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 使用底图中的颜色填充shp文件中的多边形_Python_Matplotlib Basemap_Polygons - Fatal编程技术网

Python 使用底图中的颜色填充shp文件中的多边形

Python 使用底图中的颜色填充shp文件中的多边形,python,matplotlib-basemap,polygons,Python,Matplotlib Basemap,Polygons,我已经创建了一个点地图,并使用python basemap在其上覆盖了县边界。我有另一个形状文件,它基于IUCN数据的物种分布图(物种_13143)。我已将该形状文件覆盖到上一张地图上。它工作得很好。但不幸的是,它没有填充与其相关的多边形。我想根据这张地图使用颜色填充这些多边形(我不介意颜色;单色可以) 我在StackOverflow中发现了类似的问题。但这些都不适用于我的情况。代码和相关图片附于此处。。 如果我理解正确的话。。。本质上,你要找的只是用任何颜色填充一个shapefile?这实

我已经创建了一个点地图,并使用python basemap在其上覆盖了县边界。我有另一个形状文件,它基于IUCN数据的物种分布图(物种_13143)。我已将该形状文件覆盖到上一张地图上。它工作得很好。但不幸的是,它没有填充与其相关的多边形。我想根据这张地图使用颜色填充这些多边形(我不介意颜色;单色可以)

我在StackOverflow中发现了类似的问题。但这些都不适用于我的情况。代码和相关图片附于此处。。


如果我理解正确的话。。。本质上,你要找的只是用任何颜色填充一个shapefile?这实际上列在底图中

我是列表理解的粉丝:

from matplotlib.collections import PatchCollection
from matplotlib.patches import Polygon
import numpy as np

fig = plt.figure()
ax  = fig.add_subplot(111)

patches = [Polygon(np.array(shape), True) for info, shape in zip(m.states_info, m.states)]
ax.add_collection(PatchCollection(patches, facecolor= 'green', edgecolor='k', linewidths=1., zorder=2))

希望这有助于我回答您的问题。

通过手动绘制,将输出的图像显示出来……链接不会显示出来。您好,我已经修改了这个问题,提前谢谢:)什么是
目击记录
?非常感谢@Brandon Molyneaux,效果很好。我被困在这个问题上,因为我是basemap的初学者。。再次感谢:)
from matplotlib.collections import PatchCollection
from matplotlib.patches import Polygon
import numpy as np

fig = plt.figure()
ax  = fig.add_subplot(111)

patches   = []

for info, shape in zip(map.comarques_info, map.comarques):
    patches.append( Polygon(np.array(shape), True) )

ax.add_collection(PatchCollection(patches, facecolor= 'm', edgecolor='k', linewidths=1., zorder=2))
from matplotlib.collections import PatchCollection
from matplotlib.patches import Polygon
import numpy as np

fig = plt.figure()
ax  = fig.add_subplot(111)

patches = [Polygon(np.array(shape), True) for info, shape in zip(m.states_info, m.states)]
ax.add_collection(PatchCollection(patches, facecolor= 'green', edgecolor='k', linewidths=1., zorder=2))