Skip to main content
 首页 » 编程设计

python之如何绘制复杂的多边形

2025年05月04日11傻小

我正在从 GIS 数据库读取数据并使用 mpl_toolkits.basemap 和 matplotlib 创建 map 。一些数据会创建复杂的多边形(由外环和内环定义)。但是,我无法找到如何创建带孔的多边形。这甚至可以用 matplotlib 实现吗?是否有另一种方法来创建此图像?

请您参考如下方法:

您实际上可以在 matplotlib 中绘制带孔的多边形。诀窍是使用 Path 和 PathPatch。例如:

import matplotlib.pyplot as plt 
from matplotlib.patches import PathPatch 
from matplotlib.path import Path 
 
axes = plt.gca() 
 
path = Path([(2,2)      ,(2,-2)     ,(-2,-2)    ,(-2,2)     ,(0,0)         ,(1,0)      ,(-1,1)     ,(-1,-1)    ,(0,0)         ], 
            [Path.MOVETO,Path.LINETO,Path.LINETO,Path.LINETO,Path.CLOSEPOLY,Path.MOVETO,Path.LINETO,Path.LINETO,Path.CLOSEPOLY]) 
patch = PathPatch(path) 
axes.set_xlim(-3,3) 
axes.set_ylim(-3,3) 
axes.add_patch(patch) 
 
plt.savefig('example.png') 
plt.close('all') 

以上结果

请注意,缠绕顺序似乎很重要。