我正在从 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')
以上结果
关于python - 如何绘制复杂的多边形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8919719/