python - 如何绘制复杂的多边形?

标签 python matplotlib

我正在从 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')

以上结果

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

关于python - 如何绘制复杂的多边形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8919719/

相关文章:

python - plt.figure.Figure.show() 在不交互执行时不执行任何操作

python - 如何绘制样本的 PMF?

python - 如何在 IPython 中弹出交互式 matplotlib 图?

python - Django TypeError 'QueryDict' 对象不可调用

python - 如何迭代tensorflow,python中每个嵌套张量的第一个元素?

python - 如果API URL需要将API key 集成到URL中,如何开发API?

python - 如何将没有符号/颜色的图例条目添加到现有图例中?

python - 使用 statsmodels 线性回归拟合下降趋势(负斜率)

python - Python 中的点语法是什么意思?

python - SVM决策函数: visualizing class separation